你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
教程:使用专用 SQL 池分析数据
在本教程中,使用纽约市出租车数据来探索专用 SQL 池的功能。
- [部署专用 SQL 池]
- [将数据加载到池中]
- [浏览已加载的数据]
先决条件
- 本教程假设你已完成其余快速入门中的步骤。 具体而言,它将使用在创建 Synapse 工作区快速入门中创建的“contosodatalake”资源。
创建专用 SQL 池
- 在 Synapse Studio 的左窗格中的“分析池”下,选择“管理”>“SQL 池” 。
- 选择“新建”。
- 对于“专用 SQL 池名称”,请选择“
SQLPOOL1
”。 - 对于“性能级别”,请选择“DW100C”。
- 选择“查看 + 创建”>“创建”。 你的专用 SQL 池将在几分钟内准备就绪。
你的专用 SQL 池与同样名为 SQLPOOL1
的 SQL 数据库相关联。
- 导航到数据>工作区。
- 应看到名为 SQLPOOL1 的数据库。 如果没看到它,请选择“刷新”。
只要专用 SQL 池处于活动状态,就会使用计费资源。 你可以在稍后暂停池以降低成本。
注意
在工作区中新建专用 SQL 池(之前称为 SQL DW)时,将打开专用 SQL 池预配页面。 预配将在逻辑 SQL 服务器上进行。
将纽约市出租车数据加载到 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 门户中,搜索 synapse 工作区。
- 在“设置”下,选择“Microsoft Entra ID”。
- 选择“设置管理员”并设置 Microsoft Entra ID 管理员。
选择“运行”按钮以执行脚本。
此脚本会在 60 秒内完成。 它将 2 百万行纽约市出租车数据加载到一个名为
dbo.NYCTaxiTripSmall
的表中。
浏览专用 SQL 池中的纽约市出租车数据
在 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;
此查询会创建包含
trip_distance
字段中聚合数据的表dbo.PassengerCountStats
,然后查询新表。 此数据显示总行程距离和平均行程距离与乘客数之间的关系。在“SQL 脚本结果”窗口中,将“视图”更改为“图表”,从而以折线图形式查看结果的可视化效果 。 将“Category 列”更改为
PassengerCount
。
清理
暂停专用 SQL 池以降低成本。
- 导航到 synapse 工作区中的“管理”。
- 选择“SQL 池”。
- 将鼠标悬停在 SQLPOOL1 上,然后选择“暂停”按钮。
- 确认暂停。