Csv Pentaho维度查找/更新

Csv Pentaho维度查找/更新,csv,pentaho,etl,kettle,Csv,Pentaho,Etl,Kettle,我看了一些其他的博客。但我似乎不太清楚。 我有一个具有以下结构的表: Key Name Code Status IN Out Active 密钥名称代码状态激活来自csv文件。 我需要对scd类型2使用维度查找/更新步骤,并填充IN/Out 设置连接详细信息后, 我已将键设置为KEY,并将字段设置为所有其他字段,选项为上次插入日期(不将流字段作为源)。如果任何其他字段发生更改,我需要在数据库中创建一个新行。该行将具有相同的键和更新的详细信息,其中out设置为无穷大,而in设置为当前系统日期

我看了一些其他的博客。但我似乎不太清楚。 我有一个具有以下结构的表:

 Key Name Code Status IN Out Active
密钥名称代码状态激活
来自csv文件。 我需要对scd类型2使用维度查找/更新步骤,并填充
IN/Out

设置连接详细信息后, 我已将键设置为
KEY
,并将字段设置为所有其他字段,选项为
上次插入日期(不将流字段作为源)
。如果任何其他字段发生更改,我需要在数据库中创建一个新行。该行将具有相同的
键和更新的详细信息,其中
out
设置为无穷大,而
in
设置为当前系统日期

日期范围开始字段设置为数据库的
列中的
,表日期范围结束设置为
列中的

我不理解这个技术密钥的概念,因为密钥也来自csv文件

单击“预览”时出现错误:

   DB2 SQL error: SQLCODE: -407, SQLSTATE: 23502, SQLERRMC: 

请让我知道更多详细信息以及我必须错过的任何步骤或设置。

用于构建SCD II时
维度查找/更新
步骤(在更新模式下使用)的要点。下表为:

  • Keys-Key字段:在这里,您可以从源数据定义一个
    id
    列(我猜它的
    Key
    来自CSV文件)。它用于查找以前存储的具有相同
    键的行
    ,因此该步骤可以将传入行与SCD II中已存储的行进行比较。并评估行是否已更改
  • 技术键字段:技术键是需要添加到表中的额外新列(例如
    技术键
    )。在PDI记录流中也是新的(将其命名为与表中相同的
    technical\u key
    )。将其设置为
    自动递增
    。当向表中插入任何新行时,它将自动递增,并且其值在表中是唯一的(因此可以用作表的主键)
  • Stream Datefield:通常在这里,您会从源数据中放入
    last\u updated\u date
    列,每当源数据中的行记录更新时,该列的值都会更改为实际日期。或者,您可以使用执行转换时的实际时间(从
    Get System Info
    System date
    步骤获得)
  • 日期范围开始字段、表格日期范围和:SCD II中的每一行。表需要有有效期(行数据中的范围有效)。此期间由两个日期定义-开始(
    日期范围开始字段
    )和结束日期(
    表格日期范围结束
    )。这两个字段设置为
    IN
    Out
    (表列名称)。该步骤将使用“
    范围开始、结束
    ”和
    流数据字段
    值自动确定其值(设置
    最小年份=1900
    最大年份=2199
    ):

    • 当行(由
      标识)为新行时:
      • Key=1;技术密钥=123;In=1900-01-01;Out=2199-12-31;Name=X
    • 例如,第二天。更新了同一行(Stream Datefield的值='2015-03-13'):
      • Key=1;技术密钥=123;In=1900-01-01;Out=2015-03-13;Name=X
      • Key=1;技术密钥=158;In=2015-03-13;Out=2199-12-31;名称=A
  • 字段-更新字段:此处定义要存储的所有数据字段:
    Name code Status Active
    。作为维度更新的
    类型
    设置
    插入
    (用于SCD II.属性)

    • 无法使用上次插入的
      日期(不使用流字段作为源)
      ,因为它仅将实际日期时间写入特定的
      维度字段
      ,并且您不能随此选项一起定义
      流字段
    • 当您对属性的历史记录(SCD I)不感兴趣时,可以使用
      打孔
      选项。它用相同的
      覆盖行中的所有引用。例如,
      Name
      上的
      打孔(新值“A”):
      
      • Key=1;技术密钥=123;In=1900-01-01;Out=2015-03-13;名称=A
      • Key=1;技术密钥=158;In=2015-03-13;Out=2199-12-31;名称=A