You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否通过Python SDK使用查询加速查询ADLS中的Parquet文件

问题答案

完全可以通过Python SDK调用查询加速(query acceleration)能力查询Azure Data Lake Storage(ADLS)中的Parquet文件,可直接复用查询CSV时的SQL语法,仅需调整输入格式相关参数即可。

核心使用要点

  • 依赖要求:需安装12.10.0及以上版本的azure-storage-blob官方SDK包,ADLS Gen2的查询加速能力复用Blob存储的查询接口实现,无需单独安装其他SDK。
  • 配置差异:和查询CSV文件的代码逻辑几乎一致,仅需在调用查询接口时,将入参里的CSV格式配置(DelimitedTextDialect)替换为Parquet专属的ParquetDialect配置。
  • SQL兼容性:支持的SQL语法和查询CSV时完全一致,可直接写列裁剪、行过滤逻辑,所有计算在存储侧完成,仅返回符合条件的结果数据,无需下载全量Parquet文件。

最小实现代码示例

from azure.storage.blob import BlobServiceClient, ParquetDialect
from azure.identity import DefaultAzureCredential

# 替换为实际的存储账户、容器、文件路径信息
storage_account = "<你的ADLS Gen2存储账户名>"
container = "<目标容器名称>"
parquet_blob_path = "<Parquet文件在容器内的相对路径>"

# 初始化存储客户端
service_client = BlobServiceClient(
    account_url=f"https://{storage_account}.dfs.core.windows.net",
    credential=DefaultAzureCredential()
)
blob_client = service_client.get_blob_client(container=container, blob=parquet_blob_path)

# 执行查询,SQL写法和查询CSV完全相同
query_sql = "SELECT user_id, order_amount FROM BlobStorage WHERE order_time >= '2024-01-01'"
with blob_client.query_blob(
    query=query_sql,
    blob_format=ParquetDialect()
) as resp_stream:
    # 读取返回的结果流做后续处理
    query_result = resp_stream.readall()

注意事项:使用前需提前在存储账户配置页开启查询加速功能,Parquet格式的查询加速仅支持已开启分层命名空间的ADLS Gen2账户,不支持未开启分层命名空间的普通Blob存储账户。

内容的提问来源于stack exchange,提问作者Rebe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 15:54:31