推送摄取数据的异常检测推送的体量和新鲜度数据与拉取模型使用相同的异常检测器。探测器不会立即激活——它们需要足够的历史数据来学习在它们能够对偏差发出警报之前的预期行为。推荐推送频率每小时一次每小时最多推送一次 — 推送过于频繁会产生不可预测的检测结果行为因为训练管道将数据汇总到每小时的桶中持续推进 — 间隔超过几天会延迟激活或导致失活之前活跃的探测器新鲜度检测器新鲜度检测器学习一个表被更新的频率并在没有更新时触发更新时间比预期的长。训练内容last_update_time之间的连续差值delta_sec跨推送的值。只有在last_update_time实际改变时推送才会计数。激活要求RequirementValueMinimum samples7 pushes wherelast_update_timechanged (or coverage ≥ 0.8 for slow tables)Minimum coverage0.15 (median_update_secs × n_samples / 22 days)Training window35 daysSupported update cycle5 minutes – 7.7 daysMinimum table age~14 days on older warehouses停用触发器14天内无推送 →没有最新数据在过去14天中间隔 7 天对于快速表中位更新时间 ≤ 26.4 小时→过去两周超过一周的间隔体积检测器体积变化 不变大小检测行数或字节数的异常波动/下降。激活要求RequirementValueMinimum samples (daily)10Minimum samples (subdaily, ~12x/day)48Minimum samples (weekly)5Minimum coverage0.30 (N × median_update_secs / 42 days)Training window42 daysMinimum table age5 daysRegularity check75th/25th percentile of update intervals ≥ 0.2停用没有硬性间隙限制但随着42天窗口的推进覆盖率会下降没有新数据。最终降到0.3以下并停用。汇总表FreshnessVolume Change / Unchanged SizeRecommended frequencyHourlyHourlyMaximum frequencyOnce per hourOnce per hourTraining window35 days42 daysMinimum samples710 (daily) / 48 (subdaily) / 5 (weekly)Minimum coverage0.150.30Hard deactivation gap14 daysNo (coverage degrades)Fast-table gap warning7 days in last 14N/A告诉客户什么当客户问“为什么我的异常检测不起作用”时在 MC 用户界面或通过 GraphQL (getTable.thresholds.freshness.status) 检查检测器状态。training状态表示数据量尚不足。inactive表示已停用条件已触发——检查原因代码。验证推送频率— 他们是否每小时正好推送一次无论是推送过快还是过慢的速率会导致问题。验证last_update_time是否有变化— 以便累积训练样本的新鲜度每次推送必须携带与前一次不同的last_update_time。如果表实际上没有更新推送仍然到达但样本计数没有增加。设定实际的期望— 新鲜度检测器大约需要 1–2 周的每小时推送数据。体积探测器日表需要10天次日表最多需要42天。异常检测不是瞬间完成的。不要推送间隙然后再恢复— 如果客户暂停推送一周然后恢复时新鲜度检测器可能会停用。他们即使在表格没有变化只是重复相同的last_update_time以保持覆盖率尽管那次特定的推送不会被算作新的新鲜样本。
