【问题标题】:Copy Blob Data To Sql Database in Azure Data Factory with Conditions使用条件将 Blob 数据复制到 Azure 数据工厂中的 Sql 数据库
【发布时间】:2019-10-09 01:56:05
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

    数据工厂一般只移动数据,不修改数据。您正在尝试做的事情可能会使用接收器 sql 中的临时表来完成。

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

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

    希望这有帮助!

    【讨论】:

    • 感谢您的帮助!我理解你的观点,也许它也可以帮助我。但重点是我可以直接将所有内容加载到 SQL 表中,而不是使用暂存表,然后通过修改它进一步移动它。主要的一点是,当数据从 blob 存储写入临时表中时,无论如何我都会付费,所以我要为写入整个数据付费。相反,我只想复制某些选定的数据,以便降低复制成本。还是你的意思是别的?
    • 正如我所说,数据工厂不会自行修改或过滤数据。您现在可以使用数据流来执行此操作,但这需要一个数据块集群,并且比我建议的要贵得多。如果你找到比我说的更便宜的方法,请告诉我! :)
    • 好的,谢谢。所以我选择了昂贵的数据砖方式,但数据流不支持 JSON(我的数据格式)。现在怎么改造呢?使用蟒蛇?如果是,那么你能指导我一下这个过程吗?
    【解决方案2】:

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

    【讨论】:

    • 感谢您的帮助!你说的对。因此,我们将数据从 APP 中心导出到应用程序洞察,然后持续导出到存储帐户。你知道在这个循环中有没有办法过滤掉数据。或者您是否有任何其他想法可以使用不同的存储来导出应用程序洞察力,以便我们可以控制数据修改。
    猜你喜欢
    • 2016-10-02
    • 1970-01-01
    • 2019-01-23
    • 2021-07-03
    • 2018-09-20
    • 2015-07-24
    • 2021-08-26
    • 2019-04-20
    • 2017-02-26
    相关资源
    最近更新 更多