教學課程:使用專用 SQL 集區分析數據
在本教學課程中,使用 NYC 計程車數據來探索專用 SQL 集區的功能。
- [部署專用 SQL 集區]
- [將數據載入集區]
- [探索您已載入的數據]
必要條件
- 本教學課程假設您已完成其餘快速入門中的步驟。 具體而言,它會使用在建立 Synapse 工作區快速入門中 建立的 'contosodatalake' 資源。
建立專用 SQL 集區
- 在 Synapse Studio 的左側窗格中,選取 [分析集區] 下的 [管理>SQL 集區]。
- 選取新增。
- 針對 [專用 SQL 集區名稱 ] 選取
SQLPOOL1
。 - 針對 [效能等級 ] 選擇 [DW100C]。
- 選取 [檢閱 + 建立]>[建立]。 您的專用 SQL 集區將在幾分鐘內準備就緒。
您的專用 SQL 集區會與也稱為 SQLPOOL1
的 SQL 資料庫相關聯。
- 流覽至 [數據>工作區]。
- 您應該會看到名為 SQLPOOL1 的資料庫。 如果您的畫面中並未顯示該訊息,請選取重新整理。
專用 SQL 集區只要作用中,就會耗用可計費的資源。 您可以稍後暫停集區以降低成本。
注意
在工作區中建立新的專用 SQL 集區(先前稱為 SQL DW)時,將會開啟專用 SQL 集區布建頁面。 布建會在邏輯 SQL 伺服器上進行。
將 NYC 計程車數據載入SQLPOOL1
在 Synapse Studio 中,流覽至 [開發] 中樞,選取+按鈕以新增資源,然後建立新的 SQL 腳本。
在 [連線到腳本] 上方的下拉式清單中,選取 [在本教學課程的步驟 1 中建立的集
SQLPOOL1
區]。輸入下列程式碼:
IF NOT EXISTS (SELECT * FROM sys.objects O JOIN sys.schemas S ON O.schema_id = S.schema_id WHERE O.NAME = 'NYCTaxiTripSmall' AND O.TYPE = 'U' AND S.NAME = 'dbo') CREATE TABLE dbo.NYCTaxiTripSmall ( [VendorID] bigint, [store_and_fwd_flag] nvarchar(1) NULL, [RatecodeID] float NULL, [PULocationID] bigint NULL, [DOLocationID] bigint NULL, [passenger_count] float NULL, [trip_distance] float NULL, [fare_amount] float NULL, [extra] float NULL, [mta_tax] float NULL, [tip_amount] float NULL, [tolls_amount] float NULL, [ehail_fee] float NULL, [improvement_surcharge] float NULL, [total_amount] float NULL, [payment_type] float NULL, [trip_type] float NULL, [congestion_surcharge] float NULL ) WITH ( DISTRIBUTION = ROUND_ROBIN, CLUSTERED COLUMNSTORE INDEX -- HEAP ) GO COPY INTO dbo.NYCTaxiTripSmall (VendorID 1, store_and_fwd_flag 4, RatecodeID 5, PULocationID 6 , DOLocationID 7, passenger_count 8,trip_distance 9, fare_amount 10, extra 11, mta_tax 12, tip_amount 13, tolls_amount 14, ehail_fee 15, improvement_surcharge 16, total_amount 17, payment_type 18, trip_type 19, congestion_surcharge 20 ) FROM 'https://contosolake.dfs.core.windows.net/users/NYCTripSmall.parquet' WITH ( FILE_TYPE = 'PARQUET' ,MAXERRORS = 0 ,IDENTITY_INSERT = 'OFF' ,AUTO_CREATE_TABLE ='ON' )
提示
如果您收到讀取
Login failed for user '<token-identified principal>'
的錯誤,您必須設定 Entra Id 管理員。- 在 Azure 入口網站中,搜尋您的 synapse 工作區。
- 在 [設定] 底下,選取 [Microsoft [項目標識符]。
- 選取 [ 設定系統管理員 ],然後設定 Microsoft Entra ID 管理員。
選取 [執行] 按鈕以執行指令碼。
此腳本會在 60 秒內完成。 它會將 200 萬個 NYC 計程車數據列載入名為
dbo.NYCTaxiTripSmall
的數據表。
探索專用 SQL 集區中的 NYC 計程車數據
在 Synapse Studio 中,移至 [數據中樞]。
移至 [SQLPOOL1>數據表]。 (如果您沒有在功能表中看到它,請重新整理頁面。
以滑鼠右鍵按兩下 dbo。NYCTaxiTripSmall 數據表,然後選取 [新增 SQL 腳本>選取前 100 個數據列]。
等候建立並執行新的SQL腳本。
SQL 腳稿 [連線到 ] 頂端會自動設定為名為 SQLPOOL1 的 SQL 集區。
以此程式代碼取代 SQL 腳本的文字並加以執行。
SELECT passenger_count as PassengerCount, SUM(trip_distance) as SumTripDistance_miles, AVG(trip_distance) as AvgTripDistance_miles INTO dbo.PassengerCountStats FROM dbo.NYCTaxiTripSmall WHERE trip_distance > 0 AND passenger_count > 0 GROUP BY passenger_count; SELECT * FROM dbo.PassengerCountStats ORDER BY PassengerCount;
此查詢會建立數據表
dbo.PassengerCountStats
,其中包含來自字段的trip_distance
匯總數據,然後查詢新的數據表。 數據顯示總車程距離和平均車程距離與乘客人數的關係。在 [SQL 腳本結果] 視窗中,將 [ 檢視 ] 變更為 [圖表 ],以折線圖顯示結果的視覺效果。 將 [類別] 資料行變更為
PassengerCount
。
清理
暫停專用 SQL 集區以降低成本。
- 流覽至 Synapse 工作區中的 [ 管理 ]。
- 選取 [ SQL 集區]。
- 將滑鼠停留在SQLPOOL1上,然後選取 [ 暫停] 按鈕。
- 確認暫停。