我应该在暂存区域中添加hashkey还是在从暂存区域到DWH的ETL中添加?

时间:2016-03-09 16:39:15

标签: etl data-warehouse data-vault

我们按以下结构规划EDW。

操作系统 - >分期区 - > EDW(数据库)

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

人们通常如何处理在临时区域添加元数据?

非常感谢

1 个答案:

答案 0 :(得分:1)

  • 在暂存中进行散列时,可以准备要在HubsSatellitesLinks中拆分的数据。将数据加载到临时区域时,您只需要计算哈希一次(例如CustomerHashKeyCustomerHashDiffCustomerContractLinkHashKey)。除了这些哈希值,Sequence号码,Load DateSource reference之外,没有其他元数据放入暂存区域。这比在登台时添加的元数据更清晰。

  • 在下一步中,从登台加载到数据仓库只需SELECT源数据并将其放入所需的结构(例如HubCustomerSatCustomer,{{ 1}})。由于哈希已经生成一次,因此在加载时不需要额外的处理。此外,在分段过程中,只有一个点生成哈希值。下游的所有其他流程都可以使用它们。

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

所以如果可能的话,我总是在暂存区域中哈希。