0

我们按照以下结构规划 EDW。

操作系统 --> 暂存区 --> EDW(数据保险库)

根据数据保险库法,需要对业务密钥进行哈希处理。我应该在暂存区还是在 ETL(从暂存区到 EDW)中实现散列。

人们通常如何处理在暂存区添加元数据?

非常感谢

4

1 回答 1

1
  • 在暂存中进行散列时,可以准备将​​数据拆分为Hubs,SatellitesLinks. 将数据加载到暂存区时,您只需要计算一次哈希(例如CustomerHashKey, CustomerHashDiff, CustomerContractLinkHashKey)。除了这些哈希值、Sequence数字、aLoad Date和 aSource reference之外,暂存区域中没有其他元数据。这使得在登台时添加的元数据更加清晰。

  • 在下一步中,从暂存区加载到数据仓库中只需SELECT将源数据放入所需的结构(例如HubCustomerSatCustomerLinkCustomerContract)中。由于哈希值已经生成一次,加载时不需要额外的处理。此外,只有一个点会生成散列 - 在暂存过程中。下游的所有其他进程都可以使用它们。

如果您要从暂存到数据仓库中生成散列,您最终可能会多次生成这些散列 ( Hub, Satellite(+diff), Link),这可能成为大数据用例或 CPU 较弱的机器的性能问题。想想HashDiff卫星上的情况:如果散列发生在暂存区域,则在插入数据仓库时不需要额外的处理(当表中有很多列时,这可能会很快变得昂贵)。

所以如果可能的话,我总是会在暂存区散列。

于 2016-05-27T13:52:16.317 回答