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

能否在本地Python程序中使用Azure Data Explorer的series_decompose()函数

结论

该需求完全可以实现,有两种可行方案,你可以根据自身场景选择:数据量大、对功能保真度要求高选方案1,数据量小、不想依赖云服务选方案2。

方案1:调用ADX原生series_decompose函数

  • 本地Python安装ADX依赖:执行pip install azure-kusto-data azure-kusto-ingest
  • 关联SQL数据源:可以选择本地读取SQL数据后上传到ADX,或者在ADX端配置SQL外部表直接关联,无需提前导入数据
  • 构造ADX查询语句,调用原生series_decompose函数处理数据,示例查询结构如下:

时序表名
| make-series 指标 = sum(指标列) default=0 on 时间戳 from 开始时间 to 结束时间 step 采样粒度
| extend 分解结果 = series_decompose(指标)
| project 时间戳, 分解结果.基线, 分解结果.季节性, 分解结果.趋势, 分解结果.残差

  • 本地Python调用ADX SDK执行上述查询,直接获取处理后的结果用于后续逻辑

方案2:本地Python复现分解逻辑,完全不依赖ADX

ADX的series_decompose默认采用加法分解逻辑:时序值 = 趋势项 + 季节性项 + 残差项,和Python statsmodels库的seasonal_decompose功能完全对齐,你可以直接用该库本地实现相同效果。

  • 安装依赖:执行pip install pandas statsmodels sqlalchemy
  • 读取SQL数据:通过SQLAlchemy读取SQL中的时序数据,整理为按时间排序、采样间隔均匀的pandas Series,提前补全缺失值
  • 执行分解,示例代码如下:
from statsmodels.tsa.seasonal import seasonal_decompose
import pandas as pd

# ts为预处理好的均匀采样时序Series,period参数替换为你的数据周期(比如日周期小时采样填24,周周期天采样填7)
decompose_res = seasonal_decompose(ts, model='additive', period=自定义周期)
# 直接获取各分解项
trend = decompose_res.trend
seasonal = decompose_res.seasonal
resid = decompose_res.resid
baseline = trend + seasonal
  • 分解结果和ADX返回结果一致,可直接在本地Python程序中使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:54:07