Sql 将多个数据源放在一个源中

Sql 将多个数据源放在一个源中,sql,database,database-design,etl,data-warehouse,Sql,Database,Database Design,Etl,Data Warehouse,假设我在纽约有一个带有主键ContamID的污染场地列表,该列表的记录范围为1990年到2004年 表1: 康塔姆 因果关系 地址 陈述 ZipeCode 现在让我们假设几个月后,我们得到了1990年至2011年的更新列表,其中包含给定的列 表2: CID(与ContamID相同) 原因(续) 地址1 地址2 陈述 ZipeCode 长的 拉特 几周内,我们获得了2011年至2014年的另一份更新列表,其中包含以下列: 表3: SiteID(与表1和表2完全不同的主键) 网址 站点县

假设我在纽约有一个带有主键ContamID的污染场地列表,该列表的记录范围为1990年到2004年

表1:

  • 康塔姆
  • 因果关系
  • 地址
  • 陈述
  • ZipeCode
现在让我们假设几个月后,我们得到了1990年至2011年的更新列表,其中包含给定的列

表2:

  • CID(与ContamID相同)
  • 原因(续)
  • 地址1
  • 地址2
  • 陈述
  • ZipeCode
  • 长的
  • 拉特
几周内,我们获得了2011年至2014年的另一份更新列表,其中包含以下列:

表3:

  • SiteID(与表1和表2完全不同的主键)
  • 网址
  • 站点县
  • 站点Zipcode
  • 风险水平
所有这三个表都是受污染场地的清单。但是,每次更新时,这些表的结构都不同。我怎样才能得到一个易于维护、一致且不需要对每次更新进行大量数据分析的好解决方案

我想创建一个包含三个键的维度表:

  • 康塔姆
  • CID
  • 站点ID
这是我最近一直面临的一个问题,我试图找到一个可持续的、一致的解决方案

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

你可能有更好的办法来解决这个问题。任何建议都会有帮助

谢谢

这是一项“主数据管理”(MDM)任务。有很多软件包可以帮助您实现这一点。基本上,它们归结为定义在ETL时应用的同义词或推论,例如“John Smith”=“Smith,John”=“J.Smith”

根据需要设计数据库,并让MDM和ETL处理源系统的翻译