mirror of
https://github.com/Microsoft/sql-server-samples.git
synced 2025-12-08 14:58:54 +00:00
Merge branch 'master' of https://github.com/Microsoft/sql-server-samples
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
-- CTAS statement to create Trip table with hashed distribution on DateID column
|
||||
CREATE TABLE dbo.TripHashed
|
||||
WITH
|
||||
(
|
||||
DISTRIBUTION = Hash(DateID),
|
||||
CLUSTERED COLUMNSTORE INDEX
|
||||
)
|
||||
AS SELECT * FROM dbo.Trip;
|
||||
@@ -0,0 +1,79 @@
|
||||
-- CTAS (Create Table as Select) Creates tables in the SQL DW from external tables
|
||||
|
||||
CREATE TABLE [dbo].[Date]
|
||||
WITH
|
||||
( DISTRIBUTION = ROUND_ROBIN
|
||||
, CLUSTERED COLUMNSTORE INDEX
|
||||
)
|
||||
AS
|
||||
SELECT *
|
||||
FROM [ext].[Date]
|
||||
OPTION (LABEL = 'CTAS : Load [dbo].[Date]')
|
||||
;
|
||||
|
||||
|
||||
CREATE TABLE [dbo].[Geography]
|
||||
WITH
|
||||
( DISTRIBUTION = ROUND_ROBIN
|
||||
, CLUSTERED COLUMNSTORE INDEX
|
||||
)
|
||||
AS
|
||||
SELECT *
|
||||
FROM [ext].[Geography]
|
||||
OPTION (LABEL = 'CTAS : Load [dbo].[Geography]')
|
||||
;
|
||||
|
||||
CREATE TABLE [dbo].[HackneyLicense]
|
||||
WITH
|
||||
( DISTRIBUTION = ROUND_ROBIN
|
||||
, CLUSTERED COLUMNSTORE INDEX
|
||||
)
|
||||
AS
|
||||
SELECT *
|
||||
FROM [ext].[HackneyLicense]
|
||||
OPTION (LABEL = 'CTAS : Load [dbo].[HackneyLicense]')
|
||||
;
|
||||
|
||||
CREATE TABLE [dbo].[Medallion]
|
||||
WITH
|
||||
( DISTRIBUTION = ROUND_ROBIN
|
||||
, CLUSTERED COLUMNSTORE INDEX
|
||||
)
|
||||
AS
|
||||
SELECT *
|
||||
FROM [ext].[Medallion]
|
||||
OPTION (LABEL = 'CTAS : Load [dbo].[Medallion]')
|
||||
;
|
||||
|
||||
CREATE TABLE [dbo].[Time]
|
||||
WITH
|
||||
( DISTRIBUTION = ROUND_ROBIN
|
||||
, CLUSTERED COLUMNSTORE INDEX
|
||||
)
|
||||
AS
|
||||
SELECT *
|
||||
FROM [ext].[Time]
|
||||
OPTION (LABEL = 'CTAS : Load [dbo].[Time]')
|
||||
;
|
||||
|
||||
CREATE TABLE [dbo].[Weather]
|
||||
WITH
|
||||
( DISTRIBUTION = ROUND_ROBIN
|
||||
, CLUSTERED COLUMNSTORE INDEX
|
||||
)
|
||||
AS
|
||||
SELECT *
|
||||
FROM [ext].[Weather]
|
||||
OPTION (LABEL = 'CTAS : Load [dbo].[Weather]')
|
||||
;
|
||||
|
||||
CREATE TABLE [dbo].[Trip]
|
||||
WITH
|
||||
( DISTRIBUTION = ROUND_ROBIN
|
||||
, CLUSTERED COLUMNSTORE INDEX
|
||||
)
|
||||
AS
|
||||
SELECT *
|
||||
FROM [ext].[Trip]
|
||||
OPTION (LABEL = 'CTAS : Load [dbo].[Trip]')
|
||||
;
|
||||
@@ -0,0 +1 @@
|
||||
This folder contains the PDF and SQL files in order to complete the SQL Data Warehouse Free Trial lab.
|
||||
@@ -0,0 +1,2 @@
|
||||
-- Adds user XLRCUser to the xlargerc resource class role
|
||||
EXEC sp_addrolemember 'xlargerc', 'XLRCUser'
|
||||
@@ -0,0 +1,9 @@
|
||||
-- Define an external data source
|
||||
-- For accessing non-public external data sources, make sure to setup credentials
|
||||
-- Read more here: https://azure.microsoft.com/en-us/documentation/articles/sql-data-warehouse-get-started-load-with-polybase/#step-2-create-an-external-table-for-the-sample-data
|
||||
CREATE EXTERNAL DATA SOURCE NYTPublic
|
||||
WITH
|
||||
(
|
||||
TYPE = Hadoop
|
||||
, LOCATION = 'wasbs://2013@nytpublic.blob.core.windows.net/'
|
||||
);
|
||||
@@ -0,0 +1,22 @@
|
||||
-- Defines external file format for the NYT data in Azure Blob Storage
|
||||
|
||||
CREATE EXTERNAL FILE FORMAT uncompressedcsv
|
||||
WITH
|
||||
( FORMAT_TYPE = DELIMITEDTEXT
|
||||
, FORMAT_OPTIONS ( FIELD_TERMINATOR = ','
|
||||
, STRING_DELIMITER = ''
|
||||
, DATE_FORMAT = ''
|
||||
, USE_TYPE_DEFAULT = False
|
||||
)
|
||||
);
|
||||
|
||||
CREATE EXTERNAL FILE FORMAT compressedcsv
|
||||
WITH
|
||||
( FORMAT_TYPE = DELIMITEDTEXT
|
||||
, FORMAT_OPTIONS ( FIELD_TERMINATOR = '|'
|
||||
, STRING_DELIMITER = ''
|
||||
, DATE_FORMAT = ''
|
||||
, USE_TYPE_DEFAULT = False
|
||||
)
|
||||
, DATA_COMPRESSION = 'org.apache.hadoop.io.compress.GzipCodec'
|
||||
);
|
||||
@@ -0,0 +1,3 @@
|
||||
-- Creates a schema for the external data
|
||||
CREATE SCHEMA ext;
|
||||
GO
|
||||
@@ -0,0 +1,170 @@
|
||||
-- Creates external tables
|
||||
|
||||
CREATE EXTERNAL TABLE [ext].[Date]
|
||||
(
|
||||
[DateID] int NOT NULL,
|
||||
[Date] datetime NULL,
|
||||
[DateBKey] char(10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
|
||||
[DayOfMonth] varchar(2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
|
||||
[DaySuffix] varchar(4) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
|
||||
[DayName] varchar(9) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
|
||||
[DayOfWeek] char(1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
|
||||
[DayOfWeekInMonth] varchar(2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
|
||||
[DayOfWeekInYear] varchar(2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
|
||||
[DayOfQuarter] varchar(3) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
|
||||
[DayOfYear] varchar(3) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
|
||||
[WeekOfMonth] varchar(1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
|
||||
[WeekOfQuarter] varchar(2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
|
||||
[WeekOfYear] varchar(2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
|
||||
[Month] varchar(2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
|
||||
[MonthName] varchar(9) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
|
||||
[MonthOfQuarter] varchar(2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
|
||||
[Quarter] char(1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
|
||||
[QuarterName] varchar(9) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
|
||||
[Year] char(4) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
|
||||
[YearName] char(7) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
|
||||
[MonthYear] char(10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
|
||||
[MMYYYY] char(6) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
|
||||
[FirstDayOfMonth] date NULL,
|
||||
[LastDayOfMonth] date NULL,
|
||||
[FirstDayOfQuarter] date NULL,
|
||||
[LastDayOfQuarter] date NULL,
|
||||
[FirstDayOfYear] date NULL,
|
||||
[LastDayOfYear] date NULL,
|
||||
[IsHolidayUSA] bit NULL,
|
||||
[IsWeekday] bit NULL,
|
||||
[HolidayUSA] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
|
||||
)
|
||||
WITH
|
||||
(
|
||||
LOCATION = 'Date'
|
||||
, DATA_SOURCE = NYTPublic
|
||||
, FILE_FORMAT = uncompressedcsv
|
||||
, REJECT_TYPE = value
|
||||
, REJECT_VALUE = 0
|
||||
)
|
||||
|
||||
|
||||
CREATE EXTERNAL TABLE [ext].[Geography]
|
||||
(
|
||||
[GeographyID] int NOT NULL,
|
||||
[ZipCodeBKey] varchar(10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
|
||||
[County] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
|
||||
[City] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
|
||||
[State] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
|
||||
[Country] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
|
||||
[ZipCode] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
|
||||
)
|
||||
WITH
|
||||
(
|
||||
LOCATION = 'Geography'
|
||||
, DATA_SOURCE = NYTPublic
|
||||
, FILE_FORMAT = uncompressedcsv
|
||||
, REJECT_TYPE = value
|
||||
, REJECT_VALUE = 0
|
||||
)
|
||||
;
|
||||
|
||||
CREATE EXTERNAL TABLE [ext].[HackneyLicense]
|
||||
(
|
||||
[HackneyLicenseID] int NOT NULL,
|
||||
[HackneyLicenseBKey] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
|
||||
[HackneyLicenseCode] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
|
||||
)
|
||||
WITH
|
||||
(
|
||||
LOCATION = 'HackneyLicense'
|
||||
, DATA_SOURCE = NYTPublic
|
||||
, FILE_FORMAT = uncompressedcsv
|
||||
, REJECT_TYPE = value
|
||||
, REJECT_VALUE = 0
|
||||
)
|
||||
;
|
||||
CREATE EXTERNAL TABLE [ext].[Medallion]
|
||||
(
|
||||
[MedallionID] int NOT NULL,
|
||||
[MedallionBKey] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
|
||||
[MedallionCode] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
|
||||
)
|
||||
WITH
|
||||
(
|
||||
LOCATION = 'Medallion'
|
||||
, DATA_SOURCE = NYTPublic
|
||||
, FILE_FORMAT = uncompressedcsv
|
||||
, REJECT_TYPE = value
|
||||
, REJECT_VALUE = 0
|
||||
)
|
||||
;
|
||||
CREATE EXTERNAL TABLE [ext].[Time]
|
||||
(
|
||||
[TimeID] int NOT NULL,
|
||||
[TimeBKey] varchar(8) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
|
||||
[HourNumber] tinyint NOT NULL,
|
||||
[MinuteNumber] tinyint NOT NULL,
|
||||
[SecondNumber] tinyint NOT NULL,
|
||||
[TimeInSecond] int NOT NULL,
|
||||
[HourlyBucket] varchar(15) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
|
||||
[DayTimeBucketGroupKey] int NOT NULL,
|
||||
[DayTimeBucket] varchar(100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
|
||||
)
|
||||
WITH
|
||||
(
|
||||
LOCATION = 'Time'
|
||||
, DATA_SOURCE = NYTPublic
|
||||
, FILE_FORMAT = uncompressedcsv
|
||||
, REJECT_TYPE = value
|
||||
, REJECT_VALUE = 0
|
||||
)
|
||||
;
|
||||
|
||||
CREATE EXTERNAL TABLE [ext].[Trip]
|
||||
(
|
||||
[DateID] int NOT NULL,
|
||||
[MedallionID] int NOT NULL,
|
||||
[HackneyLicenseID] int NOT NULL,
|
||||
[PickupTimeID] int NOT NULL,
|
||||
[DropoffTimeID] int NOT NULL,
|
||||
[PickupGeographyID] int NULL,
|
||||
[DropoffGeographyID] int NULL,
|
||||
[PickupLatitude] float NULL,
|
||||
[PickupLongitude] float NULL,
|
||||
[PickupLatLong] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
|
||||
[DropoffLatitude] float NULL,
|
||||
[DropoffLongitude] float NULL,
|
||||
[DropoffLatLong] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
|
||||
[PassengerCount] int NULL,
|
||||
[TripDurationSeconds] int NULL,
|
||||
[TripDistanceMiles] float NULL,
|
||||
[PaymentType] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
|
||||
[FareAmount] money NULL,
|
||||
[SurchargeAmount] money NULL,
|
||||
[TaxAmount] money NULL,
|
||||
[TipAmount] money NULL,
|
||||
[TollsAmount] money NULL,
|
||||
[TotalAmount] money NULL
|
||||
)
|
||||
WITH
|
||||
(
|
||||
LOCATION = 'Trip2013'
|
||||
, DATA_SOURCE = NYTPublic
|
||||
, FILE_FORMAT = compressedcsv
|
||||
, REJECT_TYPE = value
|
||||
, REJECT_VALUE = 0
|
||||
)
|
||||
;
|
||||
CREATE EXTERNAL TABLE [ext].[Weather]
|
||||
(
|
||||
[DateID] int NOT NULL,
|
||||
[GeographyID] int NOT NULL,
|
||||
[PrecipitationInches] float NOT NULL,
|
||||
[AvgTemperatureFahrenheit] float NOT NULL
|
||||
)
|
||||
WITH
|
||||
(
|
||||
LOCATION = 'Weather2013'
|
||||
, DATA_SOURCE = NYTPublic
|
||||
, FILE_FORMAT = uncompressedcsv
|
||||
, REJECT_TYPE = value
|
||||
, REJECT_VALUE = 0
|
||||
)
|
||||
;
|
||||
@@ -0,0 +1,3 @@
|
||||
-- Connect to master database and create a login
|
||||
CREATE LOGIN XLRCLogin WITH PASSWORD = ' a123reallySTRONGpassword!';
|
||||
CREATE USER XLRCUser FOR LOGIN XLRCLogin;
|
||||
@@ -0,0 +1,3 @@
|
||||
-- Creates statistics on the Date and Trip DateID columns to check join performance improvements
|
||||
CREATE STATISTICS [dbo.Date DateID stats] ON dbo.Date (DateID);
|
||||
CREATE STATISTICS [dbo.Trip DateID stats] ON dbo.Trip (DateID);
|
||||
@@ -0,0 +1,2 @@
|
||||
-- Connect to SQL DW database and create a database user
|
||||
CREATE USER XLRCUser FOR LOGIN XLRCLogin;
|
||||
Binary file not shown.
@@ -0,0 +1,2 @@
|
||||
-- Grants control of DW db to new user
|
||||
GRANT CONTROL ON DATABASE::NYT to XLRCUser;
|
||||
@@ -0,0 +1,29 @@
|
||||
-- Join Date table and Trip table
|
||||
|
||||
SELECT TOP (1000000) dt.[DayOfWeek]
|
||||
,tr.[MedallionID]
|
||||
,tr.[HackneyLicenseID]
|
||||
,tr.[PickupTimeID]
|
||||
,tr.[DropoffTimeID]
|
||||
,tr.[PickupGeographyID]
|
||||
,tr.[DropoffGeographyID]
|
||||
,tr.[PickupLatitude]
|
||||
,tr.[PickupLongitude]
|
||||
,tr.[PickupLatLong]
|
||||
,tr.[DropoffLatitude]
|
||||
,tr.[DropoffLongitude]
|
||||
,tr.[DropoffLatLong]
|
||||
,tr.[PassengerCount]
|
||||
,tr.[TripDurationSeconds]
|
||||
,tr.[TripDistanceMiles]
|
||||
,tr.[PaymentType]
|
||||
,tr.[FareAmount]
|
||||
,tr.[SurchargeAmount]
|
||||
,tr.[TaxAmount]
|
||||
,tr.[TipAmount]
|
||||
,tr.[TollsAmount]
|
||||
,tr.[TotalAmount]
|
||||
FROM [dbo].[Trip] as tr
|
||||
join
|
||||
dbo.[Date] as dt
|
||||
on tr.DateID = dt.DateID
|
||||
@@ -0,0 +1 @@
|
||||
SELECT TOP(1000000) * FROM dbo.[Trip]
|
||||
@@ -0,0 +1,2 @@
|
||||
-- Shows rows and space used per distribution
|
||||
DBCC PDW_SHOWSPACEUSED ("dbo.Trip")
|
||||
Reference in New Issue
Block a user