首页 > 解决方案 > 使用 ADF 重新执行 CREATE FUNCTION 脚本未反映在显示日志的输出中

问题描述

我有一个创建函数脚本.create-or-alter function,我每 5 分钟使用 Azure 数据工厂 (ADF) 将其提交到 ADX 集群。

我不断触发命令.show journal以检测是否已执行。ADF 第一次提交此脚本时,当该函数不存在时,该函数已创建,我什至可以使用.show journal命令查看它的条目。但是在那之后,即使我一直检查了很长时间,我也看不到ADD-FUNCTION最新输出中的 ' ' 事件,并且在此期间管道一直在成功。.show journal

我不明白,如果管道成功提交现有的创建功能脚本而没有任何更改,为什么 ADX 不允许通过?

如果我在 Kusto Explorer 中打开现有函数脚本并重新执行它而不做任何更改,它会反映在.show journalADF 正在做的但逻辑上相同的事情中,但不会反映在.show journal.

只是为了实验,我使用 Kusto Explorer 删除了这个功能。

因此,下次运行 ADF 管道时,它会再次创建该函数,并且该条目会反映在.show journal.

这意味着每当我们将创建函数脚本从 ADF 重新提交到 ADX 时,ADF 可能会检查函数定义是否已更改,如果没有,它会忽略该命令吗?

但是,当我们从 Kusto Explorer 执行相同操作时,不会执行此检查,这很奇怪。

ADX 行为不应根据我们提交命令的方式而改变。

另一个有趣的事实是,这种行为是函数独有的,

我还测试了一次又一次地通过 ADF 为表重新创建相同的更新策略,没有任何更改,并且每次它最终显示在.show journal.

这种行为是功能的特性还是错误?

标签: azure-data-explorer

解决方案


从 ADX 服务的角度来看,当您执行一个.alter function或一个.create-or-alter命令时,该命令会导致现有函数具有完全相同的主体、参数、文件夹和文档字符串 - 该命令什么也不做,因此不会将任何内容写入日志。

如果您看到不同,我建议您打开支持票。


推荐阅读