0

我想在雪花表中实现 scd2。我的源表和目标表仅存在于雪花中。整个过程必须使用 Azure 数据工厂完成。我浏览了 azure 提供的使用数据流实现 scd2 的文档,但是当我尝试为雪花连接创建数据集时,它显示为禁用。

有什么方法或任何文档可以让我看到使用雪花表在 adf 中创建 SCD2 的步骤。

谢谢蝰蛇

4

2 回答 2

1

ADF 中的 SCD2 可以通过数据流以图形方式构建和管理。目前用于 ADF 的 Snowflake 连接器还不能直接处理数据流。所以现在,您需要在 ADF 管道中使用 Copy Activity,并在 Blob 或 ADLS 中暂存维度数据,然后使用暂存数据在数据流中构建 SCD2 逻辑。

您的管道将如下所示:

[Copy Activity Snowflake-to-Blob] -> [Data Flow SCD2 logic Blob-to-Blob] -> [Copy Activity Blob-to-Snowkflake]

我们正在努力从数据流中直接连接到 Snowflake,并希望尽快实现。

于 2020-06-10T18:12:57.373 回答
0

如果您的源表和目标表都在 Snowflake 中,您可以使用 Snowflake Streams 来执行此操作。在https://community.snowflake.com/s/article/Building-a-Type-2-Slowly-Changing-Dimension-in-Snowflake-Using-Streams-and-Tasks有一篇博客文章更详细地介绍了这一点第1部分

然而,简而言之,如果你有一个源表source,你可以像这样在上面放一个流:

create or replace stream source_changes on table source;

这将捕获对源表所做的所有更改。然后,您可以在该流上构建一个视图,确定您希望如何将这些更改馈送到 SCD 表中。(博客文章使用案例语句将开始和结束日期放在视图的每一行中)。

从那里,您可以使用 Snowflake 任务来自动执行从流加载到 SCD 的过程,仅当流实际发生更改时。

于 2020-06-11T04:11:05.880 回答