如何解决Azure 数据资源管理器自动摄取失败,但手动工作
我正在使用 Azure 数据资源管理器和事件中心从 blob 存储中提取 JSON。
我遵循的步骤是:
- 逻辑应用程序创建 Blob JSON,格式为 {"id":"12345","message":"base64String"}
- 在 Azure 数据资源管理器中,我创建了一个表,然后使用了“从 blob 容器中提取数据”。这成功导入了我在容器中已有的数据。
- 然后我点击了链接来设置自动摄取。此自动摄取无法摄取,但出现以下异常:
.show ingestion failures
"OperationId": f533e94f-58f5-4c88-837e-e1b9117850fa,"Database": redacteddb,"Table": redactedtbl,"FailedOn": 2021-04-28T14:19:25.2781929Z,"IngestionSourcePath": https://redactedstore.blob.core.windows.net/attachments/12345.txt.json,"Details": Stream_NoDataToIngest: The input stream produced 0 bytes. This usually means that the input JSON stream was ill formed.,"FailureKind": Permanent,"RootActivityId": guid...,"OperationKind": DataIngestPull,"OriginatesFromUpdatePolicy": 0,"ErrorCode": Stream_NoDataToIngest,"Principal": dstsapp=KustoIngestionProd,"ShouldRetry": 0,"User":,"IngestionProperties": [Format=Json/mandatory,IngestionMapping=[{"column":"id","datatype":"","Path":"$['id']"},{"column":"message","Path":"$['message']"}],ValidationPolicy=[Options=ValidateCsvInputConstantColumns,Implications=BestEffort,IsDetailedErrorReportingEnabled=False],Tags=[ToStringEmpty],IngestIfNotExists=[ToStringEmpty],ZipPattern=[null]],
如果我再次通过 https://dataexplorer.azure.com/ 手动运行摄取,它会起作用。
谁能帮我知道接下来如何进行故障排除?我在设置摄取时做错了什么?
解决方法
尝试重新配置您的数据连接以使用 multijson
/ multilinejson
格式,而不是 json
。
JSON 格式 Azure 数据资源管理器支持两种 JSON 文件格式:
-
json
:行分隔的 JSON。输入数据中的每一行都只有一个 JSON 记录。 -
multijson
:多行 JSON。解析器会忽略行分隔符并读取从前一个位置到有效 JSON 末尾的记录。
有关详细信息,请参阅 JSON Lines。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。