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

ADX能否作为流式数据源供Databricks Spark集群拉取数据?

ADX对接Spark Streaming相关问题解答

首先明确结论:ADX完全支持你说的这种由Spark主动拉取的流式消费模式,不需要ADX主动向外导出数据,可以直接作为Spark Structured Streaming的合法数据源使用。

具体实现的核心依赖是微软官方提供的azure-kusto-spark连接器,该连接器已经原生适配了Spark的流式读取接口,你不需要自己开发拉取逻辑,直接配置参数即可使用:

  • 连接器默认会使用ADX表内置的ingestion_time(数据入库时间)系统列作为增量水位标记,自动追踪每批次拉取的时间边界,默认保证数据不重不丢,不需要你自行维护偏移量
  • 你也可以根据业务需求,自定义业务时间列作为增量过滤的标记,灵活适配不同的场景

以下是Python语言下的基础使用示例:

# ADX对接核心配置
adx_config = {
    "kustoCluster": "<你的ADX集群地址>",
    "kustoDatabase": "<目标数据库名称>",
    "kustoQuery": "<目标表名 | 可选的预处理过滤语句>",
    "kustoAadAppId": "<用于鉴权的AAD应用ID>",
    "kustoAadAppSecret": "<AAD应用密钥>",
    "kustoAadAuthorityId": "<对应租户ID>"
}

# 流式读取ADX数据生成Streaming DataFrame
adx_stream_df = spark.readStream \
    .format("com.microsoft.azure.kusto.spark") \
    .options(**adx_config) \
    .load()

得到adx_stream_df之后,你可以像处理其他Spark流式数据源的DataFrame一样做任意的转换、计算、输出操作,完全符合常规Spark Streaming的开发逻辑。

日常使用中的常用优化配置项:

  • 通过maxOffsetsPerTrigger参数控制每批次拉取的最大数据量,避免数据量突增时压垮ADX集群或者导致Spark作业背压
  • 可以通过startingOffsets参数指定首次拉取的起始时间点,适配历史数据回扫的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:06:05