有条件将Blob数据复制到Azure数据工厂中的Sql数据库中

时间:2019-05-22 14:28:03

标签: azure azure-active-directory azure-storage-blobs azure-data-factory azure-data-factory-2

我正在执行基于触发器的管道,以将数据从Blob存储复制到SQL数据库。每个blob文件中都有一堆JSON,我只需要复制其中的几个,就可以根据每个JSON中的键值对来区分它们。

那么如何过滤那些包含与通用密钥相对应的Value的JSON?

一个Blob文件如下所示。现在,在进行复制活动时,它应根据事件名称“ ...”来过滤数据。

Inside BLOB File example (5 json present)

2 个答案:

答案 0 :(得分:0)

数据工厂通常仅移动数据,而不修改数据。您可以尝试使用接收器sql中的登台表来完成操作。

您应该首先从暂存表中的Blob存储中按原样加载json值,然后将其从暂存表中复制到所需的真实表中,并在用于提取数据的sql命令中应用逻辑进行过滤它。

请记住,sql数据库已内置用于处理json值的函数:https://docs.microsoft.com/en-us/sql/relational-databases/json/json-data-sql-server?view=sql-server-2017

希望这对您有帮助!

答案 1 :(得分:-1)

目前,我们没有用于复制活动的选项来过滤内容(sql source除外)。 在您的方案中,看起来已经知道需要省略哪些值,在复制活动之后,将有一个“存储过程”活动,这将只是从表中删除不需要的值,这应该易于实现,但是根据数据量的不同,可能会导致性能问题。另一个选择是在摄取JSON文件之前先在存储端对其进行清理。