如何在Synapse Analytics中将查询结果保存至Blob存储?
Synapse Analytics将SQL查询结果保存至Blob存储的连接器选择及操作
你需要使用Azure Blob Storage连接器,根据使用场景可通过两种方式实现:
1. 基于Synapse管道的可视化操作(适合批量/自动化需求)
- 在Synapse Studio切换到「集成」菜单,新建管道并添加「复制数据」活动
- 源配置:选择「Azure Synapse Analytics」作为源数据集,或直接选择「查询」选项,输入你在「开发」菜单中执行的SQL语句
- 目标配置:选择「Azure Blob Storage」作为目标数据集,设置好目标Blob容器路径和文件格式(如Parquet)
- 配置完成后运行管道,即可将查询结果写入指定的Blob存储
2. 基于Synapse SQL池的T-SQL操作(适合交互式查询场景)
如果使用专用SQL池或无服务器SQL池,可通过CREATE EXTERNAL TABLE AS SELECT (CETAS)语句直接写入:
- 先创建指向目标Blob存储的外部数据源(可通过连接字符串或托管标识授权)
- 创建对应文件格式的外部文件格式(例如Parquet)
- 执行CETAS语句,将查询结果写入外部表关联的Blob路径
示例代码:-- 创建外部数据源 CREATE EXTERNAL DATA SOURCE TargetBlobStorage WITH ( LOCATION = 'https://<your-storage-account>.blob.core.windows.net/<target-container>', CREDENTIAL = <your-storage-credential> ); -- 创建外部文件格式(Parquet) CREATE EXTERNAL FILE FORMAT ParquetFormat WITH ( FORMAT_TYPE = PARQUET, DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec' ); -- 执行CETAS写入Blob CREATE EXTERNAL TABLE dbo.QueryResultInBlob WITH ( LOCATION = '<target-folder-path>', DATA_SOURCE = TargetBlobStorage, FILE_FORMAT = ParquetFormat ) SELECT * FROM <your-query>;
内容的提问来源于stack exchange,提问作者Gabriel Padilha
相关产品推荐
相关产品推荐

