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

能否通过Event Hub向Kusto/ADX注入压缩明文数据以提升吞吐量?

实现Event Hub压缩消息导入Kusto/ADX的方案

核心逻辑

通过给Event Hub消息添加压缩标识,让Event Hub自动完成解压缩操作,同时配置Kusto数据连接直接解析JSON payload为结构化列,全程无需手动转换,最大化利用标准层Event Hub的40Mbps吞吐量上限。

步骤1:选定压缩格式并配置消息属性

Event Hub原生支持gzip和deflate两种压缩格式,发送消息时必须在消息属性中指定Content-Encoding字段,告知Event Hub后续需对该消息进行解压缩处理。

步骤2:发送压缩后的JSON payload到Event Hub

以Python为例,实现压缩并发送的代码示例:

import gzip
import json
from azure.eventhub import EventHubProducerClient, EventData

# 原始业务payload
payload = {"a": 1, "b": 2}
json_bytes = json.dumps(payload).encode("utf-8")

# gzip压缩处理
compressed_data = gzip.compress(json_bytes)

# 初始化Event Hub生产者客户端
producer = EventHubProducerClient.from_connection_string("你的Event Hub连接字符串", eventhub_name="目标Event Hub名称")

with producer:
    # 创建事件数据并设置压缩属性
    event_data = EventData(compressed_data)
    event_data.properties["Content-Encoding"] = "gzip"
    
    # 批量发送消息
    producer.send_batch([event_data])

步骤3:配置Kusto的Event Hub数据连接

在Kusto中创建或修改Event Hub数据连接时,需完成以下关键配置:

  • 选择JSON作为数据格式
  • Kusto会自动识别消息的Content-Encoding属性并完成解压缩,无需额外设置
  • 映射JSON字段到Kusto表列:若目标表已存在a、b列,Kusto会自动匹配字段;若为新建表,可通过 ingestion mapping 明确映射规则,示例:
// 创建目标表
.create-or-alter table LoadData (a:int, b:int)

// 创建JSON映射规则
.create-or-alter table LoadData ingestion json mapping "LoadDataMapping"
'['
'  {"column": "a", "path": "$.a"},'
'  {"column": "b", "path": "$.b"}'
']'

配置数据连接时关联该映射规则即可。

验证导入结果

发送消息后,执行Kusto查询验证数据:

LoadData | take 1

将返回一行结构化数据:a=1, b=2,符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 11:35:26