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

Copy Blob Data To Sql Database in Azure Data Factory with Conditions

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

那么如何过滤那些 JSON 包含对应于公共键的值?

一个 Blob 文件如下所示。现在,当复制 activity 发生时,它应该根据事件名称过滤数据:“...”。

数据工厂一般只会移动数据,不会修改数据。您尝试执行的操作可能会在接收器 sql.

中使用分段 table 来完成

您应该首先从暂存 table 中的 blob 存储加载 json 值 as-is,然后将其从暂存 table 复制到真实 table 在您需要的地方,应用您的逻辑在用于提取它的 sql 命令中进行过滤。

记住 sql 数据库内置函数来处理 json 个值:https://docs.microsoft.com/en-us/sql/relational-databases/json/json-data-sql-server?view=sql-server-2017

希望对您有所帮助!

目前我们没有选项让副本 activity 过滤内容(sql 来源除外)。 在你的场景中,它看起来已经知道需要省略哪些值,在去的路上会有一个 "Stored Procedure" activity ,在复制 activity 之后,这将只是删除值你不想要 table ,这应该很容易实现,但根据数据量,它可能会导致性能问题。另一种选择是在 JSON 文件被摄取之前在存储端清理它。