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

Azure Data Explorer表能否在保留策略中指定UTC时间删除数据?

Azure Data Explorer 数据保留:指定UTC时段的问题

关键说明

ADX的原生保留策略是基于数据摄入时间的相对时长,没办法直接指定固定UTC时间段(比如你要的00:15到次日00:15)。你当前的配置和预期逻辑不符。

你的配置解析

你运行的命令:

.alter table TableName policy retention 
{
    "SoftDeletePeriod": "1.00:15:00",
    "Recoverability": "Enabled"
}

这个设置是让数据在摄入后1天15分钟进入软删除状态,和UTC时间点无关。举个例子:如果一条数据是UTC 14:30摄入的,它会在UTC次日14:45被软删除,而不是你想要的次日00:15。

实现固定UTC时段保留的方法

要实现“仅保留UTC 00:15至次日00:15的数据”,需要组合使用其他ADX功能:

方案1:分区策略+定时删除

  • 先给表配置分区策略,按UTC 00:15的边界划分分区:

    .alter table TableName policy partitioning 
    {
        "PartitionKeys": [
            {
                "ColumnName": "ingestion_time()",
                "Kind": "Uniform",
                "Interval": 1d,
                "Offset": "00:15:00"
            }
        ]
    }
    

    这里的Offset参数会让每个分区刚好对应你要的UTC时间窗口。

  • 然后通过定时任务(比如Azure Functions、Logic Apps),每天UTC 00:15之后执行分区删除命令,清理前一个窗口的旧数据:

    .drop table TableName partitions (datetime(YYYY-MM-DD 00:15:00)..datetime(YYYY-MM-DD+1 00:15:00))
    

    可替换命令中的具体日期为Kusto动态函数,比如startofday(now()) - 1d + 15m来自动生成时间范围。

方案2:查询层面过滤(无需物理删除)

如果不需要物理删除数据,只是查询时只返回目标窗口的数据,可以在查询语句中固定过滤条件:

TableName
| where ingestion_time() between (startofday(now()) + 15m) .. (startofday(now()) + 1d + 15m)

这种方式更轻量,无需修改表策略,仅在查询时控制结果范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 07:52:25