如何将“获取元数据结构”输出与已知结构进行比较以验证文件?

我正在基于ADF中的事件触发器将Blob存储文件加载到SQL,并希望在运行后续活动之前验证该文件的元数据是否符合已知模板。如何在If条件中编写表达式以检查Get Metadata活动的“结构”输出对象是否与已知结构匹配?

有一组可能适用的收集函数,例如“ contains”,但我不知道如何让表达式将输出对象(我认为是一个列表)与代表该列的字符串进行比较名称和类型。以下是我无法正常工作的尝试...

@equals(activity('Get Metadata').output.structure,'[{"name": "ID","type": "String"},{"name": "reg_number",...,{"name":"final_column","type":"String"}]')

努力在Data Factory在线中找到任何元数据验证示例,可能会对此有所帮助。验证活动似乎只是确定是否存在blob文件的一个信号灯。

xk312339548 回答:如何将“获取元数据结构”输出与已知结构进行比较以验证文件?

我确定Get Metadata活动的“结构”输出对象是json对象的数组,因此我使用了createArray()和json()函数来比较这些对象,这似乎行得通。我敢肯定,尽管有一个更优雅的解决方案。

@equals(activity('Get Metadata').output.structure,createArray(
        json('{
            "name": "ID","type": "String"
        }'),...
        json('{
            "name": "final_column","type": "String"
        }')
))
,

在我实现了以下代码以进行类似操作之后,我遇到了这篇文章。我的想法是使用具有已知架构的控制文件,如果架构发生更改而无需修改管道,则可以对其进行更新。

@equals( activity('获取元数据数据').output.structure , activity('获取元数据KnownFile')。output.structure )

我将Tom的解决方案添加到我的模板中,但是我会将字符串存储在设置表中,该表也可以在需要时进行更新。

本文链接:https://www.f2er.com/3115957.html

大家都在问