从Event Hub导入Azure Data Explorer后数据不可见问题排查
问题排查与解决步骤
1. 排查数据 ingestion 延迟
ADX从Event Hub拉取数据存在固有延迟,首次配置或低流量场景下,系统不会实时触发数据导入。等待5-10分钟后重新查询表数据,或手动向Event Hub发送一批测试数据触发 ingestion。
2. 验证Ingestion映射准确性
即便导入预览能看到数据,自动生成的ingestion映射仍可能存在字段匹配问题:
- 进入ADX数据库,找到
test表的Ingestion mappings配置项 - 确认映射的字段名、数据类型与发送的JSON结构完全匹配(ADX列名不区分大小写,但字段路径需严格对应JSON层级)
- 若映射有误,手动创建正确的JSON ingestion映射,示例:
.create-or-alter table test ingestion json mapping 'test_mapping' '[{"column":"runId","path":"$.runId"},{"column":"startTime","path":"$.startTime"},{"column":"endTime","path":"$.endTime"},{"column":"elapsedTime","path":"$.elapsedTime"}]'
3. 查看Ingestion错误日志
查询ADX内置的 ingestion 日志表,排查是否存在导入失败记录:
._ingestion_results | where DatabaseName == "<你的数据库名称>" and TableName == "test" | order by Timestamp desc | project Timestamp, OperationStatus, ErrorCode, ErrorMessage, Details
若存在Failed状态的记录,根据错误信息调整配置(比如字段类型不匹配则修改表列类型)。
4. 确认数据源与Ingestion策略配置
- 检查ADX的Event Hub数据源是否正确关联目标Event Hub(连接字符串、Event Hub名称需完全匹配)
- 确认
test表的ingestion策略已启用,且无过滤规则导致数据被丢弃:
若策略异常,重新创建或更新策略:.show table test ingestion policy.alter table test policy ingestion @'{"IsEnabled": true, "StreamingIngestion": true}'
5. 规范发送的数据格式
建议显式将数据序列化为JSON字符串,避免客户端自动序列化带来的格式差异:
修改TypeScript代码中的发送逻辑:
batch.tryAdd({body: JSON.stringify(data)});
内容的提问来源于stack exchange,提问作者Saurav Likhar
相关产品推荐
相关产品推荐

