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

Azure Blob存储Python查询技术咨询:SQL变体与CSV逐行查询

关于Azure Blob存储查询CSV/文本文件的问题解答

1. Blob查询使用的SQL变体及文档

Azure Blob查询使用的是Azure Blob Query Language,它是基于ANSI SQL的精简子集,专门适配Blob存储里的半结构化、非结构化数据查询场景。

核心支持特性包括:

  • 基础SELECT语句(指定列或全量内容查询)
  • WHERE子句数据过滤
  • 常用字符串函数(LIKE、CONTAINS、LEN、SUBSTRING等)
  • CSV格式的字段分隔符、行终止符自定义配置
  • 跳过表头行(FIRSTROW参数)
  • 基础聚合函数(COUNT、SUM等)

相关语法细节和特性说明可在Azure官方文档中查阅。

2. 逐行查询CSV/文本文件的支持情况

完全支持逐行查询CSV或普通文本文件,可实现你需要的类似查询逻辑:

普通文本文件(每行作为单条记录)

将换行符设为字段分隔符和行终止符,把每行内容当作单个字段过滤,示例SQL:

SELECT _col1 AS line
FROM OPENROWSET(BULK 'your-container/your-text-file.txt', FORMAT = 'CSV', FIELDTERMINATOR = '\n', ROWTERMINATOR = '\n') AS file_content
WHERE _col1 LIKE '%search_string%'

_col1指代每行内容,LIKE可实现包含指定字符串的过滤;若需精确匹配,也可使用CONTAINS函数(需确保存储账户配置支持对应特性)。

CSV文件

若CSV含表头,可通过FIRSTROW = 2跳过表头,针对整行或指定列过滤:

-- 过滤包含指定字符串的整行
SELECT *
FROM OPENROWSET(BULK 'your-container/your-csv-file.csv', FORMAT = 'CSV', FIELDTERMINATOR = ',', ROWTERMINATOR = '\n', FIRSTROW = 2) AS csv_data
WHERE CONCAT(_col1, _col2, _col3) LIKE '%search_string%'

-- 针对某一列过滤
SELECT _col2 AS target_column
FROM OPENROWSET(BULK 'your-container/your-csv-file.csv', FORMAT = 'CSV', FIELDTERMINATOR = ',', ROWTERMINATOR = '\n', FIRSTROW = 2) AS csv_data
WHERE _col2 LIKE '%search_string%'

在Python SDK中,可通过BlobClient.query_blob()方法执行上述SQL,无需下载完整Blob即可获取过滤结果,能有效节省带宽和处理资源。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 20:25:04