共用方式為


教學課程:使用專用 SQL 集區分析數據

在本教學課程中,使用 NYC 計程車數據來探索專用 SQL 集區的功能。

  • [部署專用 SQL 集區]
  • [將數據載入集區]
  • [探索您已載入的數據]

必要條件

建立專用 SQL 集區

  1. 在 Synapse Studio 的左側窗格中,選取 [分析集區] 下的 [管理>SQL 集區]。
  2. 選取新增
  3. 針對 [專用 SQL 集區名稱 ] 選取 SQLPOOL1
  4. 針對 [效能等級 ] 選擇 [DW100C]。
  5. 選取 [檢閱 + 建立]>[建立]。 您的專用 SQL 集區將在幾分鐘內準備就緒。

您的專用 SQL 集區會與也稱為 SQLPOOL1的 SQL 資料庫相關聯。

  1. 流覽至 [數據>工作區]。
  2. 您應該會看到名為 SQLPOOL1 的資料庫。 如果您的畫面中並未顯示該訊息,請選取重新整理

專用 SQL 集區只要作用中,就會耗用可計費的資源。 您可以稍後暫停集區以降低成本。

注意

在工作區中建立新的專用 SQL 集區(先前稱為 SQL DW)時,將會開啟專用 SQL 集區布建頁面。 布建會在邏輯 SQL 伺服器上進行。

將 NYC 計程車數據載入SQLPOOL1

  1. 在 Synapse Studio 中,流覽至 [開發] 中樞,選取+按鈕以新增資源,然後建立新的 SQL 腳本。

  2. 在 [連線到腳本] 上方的下拉式清單中,選取 [在本教學課程的步驟 1建立的集SQLPOOL1區]。

  3. 輸入下列程式碼:

    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 管理員。

    1. 在 Azure 入口網站中,搜尋您的 synapse 工作區。
    2. 在 [設定] 底下,選取 [Microsoft [項目標識符]。
    3. 選取 [ 設定系統管理員 ],然後設定 Microsoft Entra ID 管理員。
  4. 選取 [執行] 按鈕以執行指令碼。

  5. 此腳本會在 60 秒內完成。 它會將 200 萬個 NYC 計程車數據列載入名為 dbo.NYCTaxiTripSmall的數據表。

探索專用 SQL 集區中的 NYC 計程車數據

  1. 在 Synapse Studio 中,移至 [數據樞]。

  2. 移至 [SQLPOOL1>數據表]。 (如果您沒有在功能表中看到它,請重新整理頁面。

  3. 以滑鼠右鍵按兩下 dbo。NYCTaxiTripSmall 數據表,然後選取 [新增 SQL 腳本>選取前 100 個數據列]。

  4. 等候建立並執行新的SQL腳本。

  5. SQL 腳稿 [連線到 ] 頂端會自動設定為名為 SQLPOOL1 的 SQL 集區

  6. 以此程式代碼取代 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 匯總數據,然後查詢新的數據表。 數據顯示總車程距離和平均車程距離與乘客人數的關係。

  7. 在 [SQL 腳本結果] 視窗中,將 [ 檢視 ] 變更為 [圖表 ],以折線圖顯示結果的視覺效果。 將 [類別] 資料行變更PassengerCount

清理

暫停專用 SQL 集區以降低成本。

  1. 流覽至 Synapse 工作區中的 [ 管理 ]。
  2. 選取 [ SQL 集區]。
  3. 將滑鼠停留在SQLPOOL1上,然後選取 [ 暫停] 按鈕。
  4. 確認暫停。

後續步驟