你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

教程:使用专用 SQL 池分析数据

在本教程中,使用纽约市出租车数据来探索专用 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 服务器上进行。

将纽约市出租车数据加载到 SQLPOOL1

  1. 在 Synapse Studio 中,导航到“开发”中心,选择“+”按钮以添加新资源,然后新建 SQL 脚本

  2. 在脚本上方的“连接到”下拉列表中选择“SQLPOOL1”池(在本教程的步骤 1 中创建的池)。

  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 Entra ID”。
    3. 选择“设置管理员”并设置 Microsoft Entra ID 管理员。
  4. 选择“运行”按钮以执行脚本。

  5. 此脚本会在 60 秒内完成。 它将 2 百万行纽约市出租车数据加载到一个名为 dbo.NYCTaxiTripSmall 的表中。

浏览专用 SQL 池中的纽约市出租车数据

  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;
    

    此查询会创建包含 trip_distance 字段中聚合数据的表 dbo.PassengerCountStats,然后查询新表。 此数据显示总行程距离和平均行程距离与乘客数之间的关系。

  7. 在“SQL 脚本结果”窗口中,将“视图”更改为“图表”,从而以折线图形式查看结果的可视化效果 。 将“Category 列”更改为 PassengerCount

清理

暂停专用 SQL 池以降低成本。

  1. 导航到 synapse 工作区中的“管理”。
  2. 选择“SQL 池”。
  3. 将鼠标悬停在 SQLPOOL1 上,然后选择“暂停”按钮。
  4. 确认暂停。

下一步