如何将容器独立文件夹中存储的Blob读取到Stream Analytics作业中
Azure Stream Analytics 读取Blob多级目录数据配置方案
Azure Stream Analytics(简称ASA)默认仅扫描Blob容器根目录下的文件,不会自动递归遍历多级子目录,这是按时间分层存储的Blob数据无法被读取的最常见原因,按以下步骤配置即可解决:
- 配置Blob输入的路径模式
在ASA作业的输入配置界面找到「路径模式」配置项,写入支持递归匹配的通配符规则:
如果你需要读取容器下所有层级子目录的所有文件,直接填写**/*即可,双通配符**会匹配所有层级的子目录,*匹配任意文件名。如果只需要读取特定后缀的遥测文件(比如JSON格式),可以填写**/*.json缩小匹配范围。如果你的目录是按固定时间规则生成的,例如目录结构为
年/月/日/时/,也可以将路径模式写为{date}/{time},再对应配置下方的「日期格式」为yyyy/MM/dd、「时间格式」为HH,这种配置可以让ASA自动识别时间分区,大幅提升数据查询和处理效率。 - 验证序列化格式配置
确认输入配置中的序列化规则和你Blob存储的实际数据格式完全一致:- 若存储的是JSON格式遥测数据,序列化格式选择
JSON,编码选择UTF-8 - 若存储的是CSV格式,要对应配置分隔符、是否包含表头行等参数
序列化配置错误会导致ASA无法解析文件内容,即使成功读取到文件也会返回空结果,和未读取到文件的表现完全一致
- 若存储的是JSON格式遥测数据,序列化格式选择
- 调整测试查询的时间范围
使用ASA自带的测试查询功能时,手动选择的时间范围需要覆盖你已存入Blob的文件的生成时间,默认的短时间范围可能没有覆盖到你的数据存储时段,也会返回空结果。 - 检查Blob容器读取权限
确认ASA作业使用的身份(连接字符串、系统托管身份等)拥有对应Blob容器的Storage Blob Data Reader及以上权限,权限不足也会导致无法读取数据且无明确报错。
内容的提问来源于stack exchange,提问作者vishruti
相关产品推荐
相关产品推荐

