首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >地水壶插入叶栅,ETL规范化过程

地水壶插入叶栅,ETL规范化过程
EN

Stack Overflow用户
提问于 2015-10-29 11:14:43
回答 1查看 172关注 0票数 3

我对ETL程序很陌生。此刻,我正在使用水壶,更精确地说,用geokettle来制作一个ETL过程。我正在构建一个转换,以便从数据库源的描述表中将数据插入到数据库目标的规范化结构中。

请考虑以下例子。

示例:

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

我想将其转变为以下结构:

所以主要的想法是:

第一步:将电话插入CI_Telephone表并获取t_id

第二步:与前一步并行,在CI_Address上插入institutionAddresscountry并获取a_id

第三步:在此之后,我需要将这些ids (t_ida_id)插入到CI_Contact (如果还不存在的话)并获取c_id

第四步:在CI_ResponsibleParty CI_ResponsibleParty instituionName => organizationNamename=> individualname上插入(如果不存在),并插入引用CI_contact表的正确外键(contactInfo)。

这是我对ETL过程的想法:

问题:你怎么能用地水壶或水壶进行“级联”插入?(我不知道这是否是正确的术语)这种转换对你有意义吗?

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

EN

回答 1

Stack Overflow用户

发布于 2015-10-29 11:52:21

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

第一步:将手机插入CI_Telephone表并获取t_id。

  • 使用Dimension lookup/update步骤。它将返回在Technical key字段中指定它时创建的键。

第二步:与前一步并行,在CI_Address上插入CI_Address和country并获取a_id

  • 使用相同的步骤并行执行地址插入和获取Id。

第三步:在此之后,我需要将这些ids (t_id和a_id)插入到CI_Contact (如果还不存在的话)并获取c_id。

  • 使用Merge join步骤使用键连接to流。如果不存在,则使用Insert/Update步骤插入到CI_Contact。

第四步:在CI_ResponsibleParty上插入(如果不存在) instituionName => organizationName和name=>个人名,并插入引用CI_contact表的正确外键(contactInfo)。

  • 使用与上面相同的步骤进行插入。

NB:,因为Dimension lookup/updateCombination lookup/update步骤是用于数据仓库的,这非常适合您的需求。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33412699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档