我想在snowflake表中实现scd2。我的源表和目标表只存在于snowflake中。整个过程必须使用 Azure 数据工厂来完成。我查看了 azure 提供的关于使用数据流实现 scd2 的文档,但当我试图为 snowflake 连接创建数据集时,其显示为禁用。
是否有任何方法或任何文档可以让我看到在adf中使用雪花表创建scd2的步骤。
谢谢vipendra
ADF中的SCD2可以通过数据流进行图形化构建和管理。如今ADF的Snowflake连接器还不能直接使用数据流。所以现在,你需要在ADF管道中使用复制活动,并在Blob或ADLS中暂存维度数据,然后使用暂存的数据在数据流中构建SCD2逻辑。
你的流水线将看起来像这样。
复制活动 Snowflak-to-Blob] -> [数据流 SCD2 逻辑 Blob-to-Blob] -> [复制活动 Blob-to-Snowkflake] 。
我们正在研究从数据流直接连接到Snowflake,希望能尽快落地。
如果你的源表和目标表都在Snowflake中,你可以使用Snowflake Streams来实现。有一篇博客文章详细介绍了这个问题,地址是 https:/community.snowflake.comsarticleBuilding-a-Type-2-Slowly-Changing-Dimension-in-Snowflak-Using-Streams-and-Tasks-Part-1。
然而,总之,如果你有一个源表 source
,你可以像这样在上面放一个流。
create or replace stream source_changes on table source;
这将捕获所有对源表的更改。然后,你可以在该流上建立一个视图,确定如何将这些更改输入到SCD表中。博文中使用case语句在视图中的每一行上放入开始和结束日期)。
从那里,你可以使用Snowflake Task来自动化从流加载到SCD的过程,只有当流真正有变化时,才会自动加载。