如何使用Azure数据工厂在雪花表中实现scd2

时间:2020-06-10 10:20:20

标签: azure-data-factory snowflake-cloud-data-platform azure-data-factory-2 scd2 snowflake-stream

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

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

谢谢 vipendra

2 个答案:

答案 0 :(得分:1)

可以通过数据流以图形方式构建和管理ADF中的 SCD2。如今,用于ADF的Snowflake连接器还不能直接与数据流一起使用。因此,现在,您将需要在ADF管道中使用“复制活动”,并在Blob或ADLS中暂存维度数据,然后使用暂存的数据在数据流中构建SCD2逻辑。

您的管道将如下所示:

[将活动雪花到Blob复制]-> [数据流SCD2逻辑从Blob到Blob]-> [将活动复制雪花到雪花]

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

答案 1 :(得分:0)

如果源表和目标表都在Snowflake中,则可以使用Snowflake流来执行此操作。在https://community.snowflake.com/s/article/Building-a-Type-2-Slowly-Changing-Dimension-in-Snowflake-Using-Streams-and-Tasks-Part-1

上有一篇博客文章对此进行了详细介绍。

但是,简而言之,如果您有一个源表source,则可以像这样在其上放一个流:

create or replace stream source_changes on table source;

这将捕获对源表所做的所有更改。然后,您可以在该流上构建一个视图,以建立将这些更改输入SCD表的方式。 (博客文章使用案例语句在视图的每一行中放置开始日期和结束日期)。

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