将多个数据源放入单个源中

时间:2014-04-18 20:03:03

标签: sql database database-design etl data-warehouse

假设我在纽约有一个受污染的网站列表,主要密钥为ContamID该列表的记录范围为 1990年至2004年

表1:

  • ContamID
  • CauseOfContamination
  • 地址
  • ZipeCode

现在让我们假设几个月后我们得到了一份 1990年至2011年的最新名单

表2:

  • CID(与ContamID相同)
  • Cause_Contam
  • ADDRESS_1
  • Address_2
  • ZipeCode
  • 纬度

几周之内,我们获得了2011年至2014年的另一个更新列表,其中包含以下列:

表3:

  • SiteID(与表1和2完全不同的PK)
  • 网站地址
  • Site County
  • 网站邮政编码
  • LevelOfRisk

所有三个表都代表受污染场地的清单。但是,每次更新时,这些表都有不同的结构。我怎样才能找到一个易于维护,一致且不需要对每次更新进行大量数据分析的优秀解决方案?

我想创建一个可以容纳三个键的维度表:

  • ContamID
  • CID
  • SITEID

这是我最近遇到的一个问题,并试图寻找可持续的一致解决方案。

然而,问题是一些ContamID和CID相互重叠的记录。当然,CID必须取代ContamID,因为CID代表更新的记录。或者,我可以合并表1和表2.

您可能有更好的方法来解决这个问题。任何建议肯定会有所帮助。

谢谢

1 个答案:

答案 0 :(得分:0)

这是“主数据管理”(MDM)任务。有很多包可以帮助解决这个问题。基本上,它们归结为定义在ETL时间应用的同义词或推论,例如“John Smith”=“Smith,John”=“J。Smith”。

设计您的数据库以满足您的需求,让MDM和ETL处理源系统的翻译。