没有标准的 SCD-2,甚至没有它的独特概念。它是大量可能方法的总称。唯一的机会是练习,看看什么适合您的用例。
在任何情况下,您都必须确定维度的自然键以及要保留历史记录的属性集。
当然,您可能会因为决定使用自己的代理键而变得更加复杂。
您提到流程有两种主要类型的界面:
• 您会定期获得一整套维度数据
• 您获得“仅更改”(又名增量界面)
矛盾的是,前者处理起来比后者简单得多。
首先,在完整的维度快照中,自然键保持不变,这与增量界面相反(您可能会为一个实体获得更多更改)。 >
此外,您必须处理更改交付延迟甚至更改顺序错误交付的情况。
下一个重要决定是您是否预计会发生删除。这在完整接口中又是微不足道的,您必须定义一些约定,这些信息将如何在 delta 接口中传递。
Connected 是先前删除的实体是否可以重用(即重新出现在数据中)的问题。
如果您支持删除/重用,您将不得不考虑如何在维度表中显示它们。
在任何情况下,您都需要在维度中添加一些列来覆盖历史信息。
某些实现使用 change_timestamp,其他一些实现使用有效期间隔 valid_from 和 valid_to。
甚至其他实现声称需要额外的序列号 - 这样您就可以避免使用相同时间戳进行更多更改的陷阱。
因此您看到,在寻找某些特定实现之前,您需要仔细确定上述选项。例如 full 和 delta 接口导致完全不同的实现。
本文链接:https://www.f2er.com/23716.html