Pentaho Geokettle级联插入,ETL规范化过程

Pentaho Geokettle级联插入,ETL规范化过程,pentaho,etl,cascade,kettle,geokettle,Pentaho,Etl,Cascade,Kettle,Geokettle,我是ETL流程的新手。目前,我正在更精确地使用geokettle使用kettle来进行ETL过程。我正在构建一个转换,以便从数据库源的描述性表在数据库目标上以规范化结构插入数据 请考虑以下示例 示例: 我正试图在数据库中的cascade中插入一个联系人记录。请注意,在源数据库中,我有以下联系人表: 我想转换成以下结构: 因此,主要思想是: 第一步:将手机插入CI\u Telephone表格,获取t\u id 第二步:与上一步并行,在CI\u地址上插入机构地址和国家,并获取a\u id 第三步

我是ETL流程的新手。目前,我正在更精确地使用geokettle使用kettle来进行ETL过程。我正在构建一个转换,以便从数据库源的描述性表在数据库目标上以规范化结构插入数据

请考虑以下示例

示例:

我正试图在数据库中的cascade中插入一个联系人记录。请注意,在源数据库中,我有以下联系人表:

我想转换成以下结构:

因此,主要思想是:

第一步:将手机插入
CI\u Telephone
表格,获取
t\u id

第二步:与上一步并行,在
CI\u地址
上插入
机构地址
国家
,并获取
a\u id

第三步:之后,我需要将那些id(
t\u id
a\u id
)插入
CI\u联系人
(如果还不存在)并获取
c\u id

第四步:在
CI责任方
上插入(如果尚未存在)机构名称=>
组织名称
名称
=>
个人名称
,并插入引用
CI联系人
表的正确外键(contactInfo)

这是我关于ETL过程的想法:

问题: 如何使用geokettle或kettle进行“级联”插入?(我不知道这个词是否正确)这种转变对你有意义吗


我找不到任何类似的例子。关于这个问题的任何建议都会很好。请分享您关于ETL过程的经验,以及如何从另一个未规范化的数据库规范化数据库。

这些步骤可用于您指定的每个步骤

第一步:将手机插入CI_电话表并获取t_id

  • 使用
    维度查找/更新
    步骤。它将返回您在
    技术密钥
    字段中指定时创建的密钥
第二步:与上一步并行插入institutionAddress 和CI_地址上的国家/地区并获取id

  • 并行使用相同的步骤进行地址插入并获取Id
第三步:在那之后,我需要得到这些id(t_id和a_id) 插入CI_联系人(如果尚未存在)并获取c_id

  • 使用
    Merge join
    步骤使用键将流加入。然后使用
    插入/更新
    如果不存在,则插入到CI_联系人的步骤
第四步:在CI_ResponsibleParty上插入(如果尚未存在) instituionName=>organizationName和name=>individualname,以及 插入引用的正确外键(contactInfo) CI_联系表

  • 使用与上面相同的步骤进行插入
NB:因为
维度查找/更新
组合查找/更新
步骤适用于数据仓库,非常适合您的需求