我正在尝试使用 Pentaho Data Integration / Pan 制作一个类型 2 (SCD) 表。
在我第一次通过 DimensionLookup 步骤运行数据后,我得到了一个类型 2 表,如下所示:
PKID version date_from date_to MyPK Field1 Field2 ...
150 1 1900-01-01 00:00:00 2199-12-31 23:59:59 1 "X" "Y" ...
到目前为止,一切都很好。后来我得到了新数据,更新了我的原始表,并通过相同的 DimensionLookup 步骤运行它,所有修改的记录看起来像:
PKID version date_from date_to MyPK Field1 Field2 ...
150 1 1900-01-01 00:00:00 2010-06-24 03:45:00 1 "X" "Y" ...
151 2 2010-06-24 03:45:00 2199-12-31 23:59:59 1 "X2" "YYY" ...
这看起来也不错。但是对于自上次以来添加到我的数据集中的记录,它们会添加 date_from='1900-01-01 00:00:00'。(仔细想想,我的初始加载也使用了 date_from='1900-01-01 00:00:00',这有点奇怪。)
我让它使用默认的开始日期,它声称是系统的当前日期时间,尽管我也尝试过“start_trans”(“转换的开始日期”),除了使用 9 小时前的时间戳之外,它做了同样的事情(1899 年 12 月 31 日)。
我看不出对所有新记录使用 1900 有什么意义:你不知道什么时候添加了什么,因为看起来每条新记录从一开始就存在。我什至在 Kimball 的书中查找了 type-2,虽然它不是很明确,但它似乎表明新插入的值应该从它们开始有效的时间开始作为它们的 date_from。
这是 PDI 中的错误吗?有解决方法吗?我只是用错了吗?我是否误解了 type-2 的全部意义?
谢谢!