使用mv-apply操作时ingestion_time()返回值被清空该如何解决?
关于mv-apply调用后ingestion_time()失效问题的说明
问题表现
- 使用
mv-apply运算符后,ingestion_time()将无法返回有效数值,该限制会对部分查询场景造成较大不便。
典型影响场景:若自定义函数内部调用了
mv-apply执行相关处理逻辑,该函数的调用方将无法直接使用ingestion_time()快速过滤近期新摄入的行数据。
- 常规变通方案不生效:无法通过
project-rename的方式暴露ingestion_time()的数值,因为project-rename对ingestion_time()不生效。
解决方案
在调用mv-apply之前,先通过extend算子将ingestion_time()的返回值保存到自定义列中,后续所有过滤、查询操作都可以直接使用该自定义列。
正确写法示例:
// 执行mv-apply前先持久化摄入时间 TableName | extend ingest_time = ingestion_time() // 再执行mv-apply逻辑 | mv-apply target_dynamic_column on ( project extracted_field = target_dynamic_column.some_field ) // 后续可直接用持久化的时间列过滤 | where ingest_time >= ago(24h)
内容的提问来源于stack exchange,提问作者Basel Abdus Salam
相关产品推荐
相关产品推荐

