チュートリアル: 専用の SQL プールを使用してデータを分析する
このチュートリアルでは、NYC タクシーのデータを使用して、専用 SQL プールの機能を探索します。
- [専用の SQL プールをデプロイする]
- [データをデータ プールに読み込む]
- [読み込んだデータを調べる]
前提条件
- このチュートリアルでは、クイックスタートの残りの部分の手順が完了していることを前提としています。 具体的には、クイックスタートの「Synapse ワークスペースを作成する」で作成した 'contosodatalake' リソースを使用します。
専用 SQL プールを作成する
- Synapse Studio の左側のウィンドウで、 [Analytics プール] の下の [管理]>[SQL プール] を選択します。
- 新規をクリックします。
- [専用 SQL プール名] で
SQLPOOL1
を選択します。 - [パフォーマンス レベル] で [DW100C] を選択します。
- [確認と作成]>[作成] の順に選択します。 専用 SQL プールの準備は数分で完了します。
専用 SQL プールは、SQLPOOL1
とも呼ばれる SQL データベースに関連付けられます。
- [データ]>[ワークスペース] の順に移動します。
- SQLPOOL1 という名前のデータベースが表示されます。 表示されない場合は、[更新する] を選択します。
専用 SQL プールがアクティブである限り、課金対象のリソースが消費されます。 コストを削減するために、後でプールを一時停止できます。
Note
ワークスペースに新しい専用 SQL プール (以前の SQL DW) を作成すると、専用の SQL プールのプロビジョニング ページが開きます。 プロビジョニングは、論理 SQL サーバー上で行われます。
NYC タクシー データを SQLPOOL1 に読み込む
Synapse Studio で [開発] ハブに移動し、新しいリソースを追加するための + ボタンを選択して、新しい SQL スクリプトを作成します。
スクリプトの上にある [接続先] ドロップダウン リストで、プール
SQLPOOL1
(このチュートリアルのステップ 1 で作成したプール) を選択します。次のコードを入力します。
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 portal で、お使いの Synapse ワークスペースを検索します。
- [設定] で [Microsoft Entra ID] を選択します。
- [管理者の設定] を選択し、Microsoft Entra ID 管理者を設定します。
[実行] ボタンを選択して、スクリプトを実行します。
このスクリプトは 60 秒以内に終了します。 200 万行の NYC タクシー データを
dbo.NYCTaxiTripSmall
というテーブルに読み込みます。
専用 SQL プール内の NYC タクシーのデータを探索する
Synapse Studio で、 [データ] ハブに移動します。
[SQLPOOL1]>[テーブル] の順に移動します。 (メニューに表示されない場合は、ページを最新の情報に更新します。)
dbo.NYCTaxiTripSmall テーブルを右クリックし、 [New SQL Script]\(新しい SQL スクリプト\)>[Select TOP 100 Rows]\(上位 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;
このクエリでは、
trip_distance
フィールドの集計データを含むテーブルdbo.PassengerCountStats
を作成し、新しいテーブルに対してクエリを実行します。 このデータは、合計乗車距離と平均乗車距離が乗客数とどのように関係しているかを示します。SQL スクリプトの結果ウィンドウで、 [ビュー] を [グラフ] に変更して、結果を折れ線グラフとして視覚的に表示します。 カテゴリ列を
PassengerCount
に変更します。
クリーンアップ
専用の SQL プールを一時停止して、コストを削減します。
- Synapse ワークスペースで [管理] に移動します。
- [SQL プール] を選択します。
- SQLPOOL1 の上にマウス ポインターを合わせ、[一時停止] ボタンを選択します。
- 一時停止することを確認します。