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

如何通过.NET(C#)将JSON&Avro事件直接导入ADX(跳过Blob存储)

Azure Event Hub直接导入ADX常见问题及解决

需求背景

需直接通过Azure Event Hub捕获JSON/Avro格式事件,导入Azure Data Explorer(ADX),跳过Blob存储或Event Grid环节。

已执行操作

  • 创建Event Hub命名空间及Event Hub(主题)
  • 在Event Hub Schema Registry中创建对应类型的Schema组及Schema(缺少JSON Schema定义细节)
  • 通过.NET SDK(C#)完成事件的发送、接收验证
  • 尝试ADX一键导入:包括新建表导入、预创建表+映射两种方式,均未成功捕获事件,需明确表/映射配置、Event Hub连接创建及格式处理细节

使用的KQL脚本

.create table test123 (
 RGUID: string,
 EnvironmentName: string, 
 MachineName: string,
 DateTimeUTC: long
)
.create table test123 ingestion avro mapping 'test123Mapping1' '[{"column":"RGUID","Properties":{"Field":"$.RGUID"}},{"column":"EnvironmentName","Properties":{"Field":"$.EnvironmentName"}},{"column":"MachineName","Properties":{"Field":"$.MachineName"}},{"column":"DateTimeUTC","Properties":{"Field":"$.DateTimeUTC"}}]'

遇到的问题及解决方法

问题1:数据库级Event Hub连接创建成功,但事件被丢弃,错误码BadRequest_InvalidBlob

  1. 修正映射格式:当前Avro映射误用了JSON路径表达式($.RGUID),Avro映射需直接使用字段原始名称,无需路径前缀。正确的映射脚本:
.create table test123 ingestion avro mapping 'test123Mapping1' '[{"column":"RGUID","Properties":{"Field":"RGUID"}},{"column":"EnvironmentName","Properties":{"Field":"EnvironmentName"}},{"column":"MachineName","Properties":{"Field":"MachineName"}},{"column":"DateTimeUTC","Properties":{"Field":"DateTimeUTC"}}]'
  1. 校验消息格式:确保发送到Event Hub的是单条Avro/JSON记录,而非批量打包的多条记录;若使用Schema Registry,消息必须严格匹配注册的Schema,无字段缺失或类型不匹配。
  2. 检查连接配置:创建Event Hub连接时,确认数据格式选择与实际消息格式一致(Avro/JSON),且共享访问策略拥有Listen权限。

问题2:表层级“导入数据”向导无AVRO格式选项

表层级导入向导暂不支持Avro格式选择,需改用以下方式:

  1. 先在ADX数据库层级创建Event Hub连接,在“数据格式”下拉菜单中选择Avro(JSON消息则选JSON)。
  2. 将该连接关联到预创建的test123表及对应的映射,完成数据导入配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 06:02:13