gpt4 book ai didi

azure - ADF 到 Snowflake 增量负载和流

转载 作者:行者123 更新时间:2023-12-02 06:17:08 24 4
gpt4 key购买 nike

我正在尝试将文件从 Azure blob 增量加载到 Snowflake 表。之后,在雪花中,我将流放在该表上并将数据加载到目标表。

我无法执行从 Azure 到 Snowflake 的增量加载。我尝试了很多方法但不起作用。我附上了我的两种不同方式(管道)的图像来执行相同的操作。

在这个管道中,我刚刚添加了 3 个额外的列,我想在我的水槽中添加它们

在此管道中,我尝试创建条件分割

这两件事都没有成功。请建议我如何解决这个问题。

最佳答案

您可以通过在更新方法下的接收器设置中选择允许更新插入来实现此目的。

以下是我的重现详细信息:

  1. 这是我正在向其中加载增量数据的雪花中的临时表

enter image description here

  • 源文件 - 增量数据
  • a) 此文件包含暂存表中存在的记录 (StateCode = 'AK' & 'CA'),因此这 2 条记录应在Flag 中包含新值的暂存表。

    b) 其他 2 条记录 (StateCode = ‘FL’ & ‘AZ’) 应插入到临时表中。

    enter image description here

  • 数据流源设置:
  • enter image description here

    enter image description here

  • 添加 DerivedColumn 转换以添加不在源文件中但在接收器表中的列 modified_date
  • enter image description here

    enter image description here

  • 添加 AlterRow 转换:当您使用 Upsert 方法时,AlterRow 转换必须包含 upsert 条件。
  • a) 在条件下,只有当唯一列(在我的例子中为StateCode)不为空时,您才可以更新插入行.

    enter image description here

    enter image description here

  • 使用 Snowflake 阶段表作为接收器数据集向 AlterRow 添加 sink 转换。
  • enter image description here

    a) 在接收器设置中,选择更新方法为允许更新插入,并提供在接收器表中进行更新插入所依据的键(唯一)列。

    enter image description here

    enter image description here

  • 运行管道后,您可以在接收器中看到结果。
  • a) 由于表中已存在StateCode AK 和 CA,因此仅更新这些行的其他列值(flag 和modified_date)。

    b) 在阶段(接收器)表中找不到 StateCode AZ 和 FL,因此,这些行被插入

    enter image description here

    关于azure - ADF 到 Snowflake 增量负载和流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69551006/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com