【问题标题】:How to Update Table in Snowflake using Azure Data Factory如何使用 Azure 数据工厂更新 Snowflake 中的表
【发布时间】:2020-10-05 19:18:42
【问题描述】:

我在雪花中有两个名为 table1 和 table2 的表。表1为源表,包含增量数据,表2为目标表。

所以我的用例是我必须从 table1 获取数据并将数据更新到 table2 但这个过程必须使用 Azure 数据工厂来完成。

我尝试在 ADF 中创建数据流,但它不允许我直接连接雪花,因为它不在支持的源列表中。本机雪花连接器仅支持复制数据活动。因此,作为一项工作,我首先创建了一个复制活动,将数据从雪花复制到天蓝色 blob。然后使用 Azure Blob 作为数据流的源来创建我的 scd1 实现并将输出保存在 csv 文件中。

现在我的问题是我应该如何更新目标表 2 中的数据。因为如果我直接使用复制活动将 csv 文件复制到雪花中,那么它将导致雪花端的重复记录。例如,假设 table2 包含一行

id,name,age,data
1234,kristopher,24,somedata

table1 包含

id,name,age,data
1234,kristopher,24,some-new-data

所以现在我在 csv 中有 table1 数据,必须在雪花中加载。如果我直接加载,那么结果看起来像这样。

id,name,age,data
1234,kristopher,24,somedata
1234,kristopher,24,some-new-data

但我只需要

1234,kristopher,24,some-new-data

如果需要更多解释,请告诉我。我也是 Azure 数据工厂和 Snowflake 的新手。

谢谢

【问题讨论】:

    标签: azure-data-factory snowflake-cloud-data-platform azure-data-factory-2 snowflake-schema scd


    【解决方案1】:

    如您所见,ADF 数据流目前不支持将雪花数据集作为源。

    理论上您可以遵循this 设计模式,但对于您所描述的要求,这似乎需要做很多工作。另一种选择是沿着 Azure Function 路线走,但我会再次权衡需求与所需的工作量。

    如果它不必在 ADF 中,那么一种快速的方法是使用 Snowflake Task 安排一些 SQL 来为您管理 SCD 行为。

    我希望这会有所帮助。

    最好的问候, 担。

    【讨论】:

    • 感谢@DGalavan 的见解。
    【解决方案2】:

    您可以将您的登录信息放入雪花存储过程中,然后在 ADF 中执行您的存储过程

    【讨论】:

    猜你喜欢
    • 2021-08-20
    • 1970-01-01
    • 2019-01-13
    • 2017-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    相关资源
    最近更新 更多