我想在雪花表中实现 scd2。我的源表和目标表仅存在于雪花中。整个过程必须使用 Azure 数据工厂完成。我浏览了 azure 提供的使用数据流实现 scd2 的文档,但是当我尝试为雪花连接创建数据集时,它显示为禁用。
有什么方法或任何文档可以让我看到使用雪花表在 adf 中创建 SCD2 的步骤。
谢谢蝰蛇
我想在雪花表中实现 scd2。我的源表和目标表仅存在于雪花中。整个过程必须使用 Azure 数据工厂完成。我浏览了 azure 提供的使用数据流实现 scd2 的文档,但是当我尝试为雪花连接创建数据集时,它显示为禁用。
有什么方法或任何文档可以让我看到使用雪花表在 adf 中创建 SCD2 的步骤。
谢谢蝰蛇
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,并希望尽快实现。
如果您的源表和目标表都在 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 的过程,仅当流实际发生更改时。