我们按以下结构规划EDW。
操作系统 - >分期区 - > EDW(数据库)
根据数据保险库法,需要对业务密钥进行哈希处理。我应该在暂存区域还是在ETL(从暂存区域到EDW)中实现散列。
人们通常如何处理在临时区域添加元数据?
非常感谢
答案 0 :(得分:1)
在暂存中进行散列时,可以准备要在Hubs
,Satellites
和Links
中拆分的数据。将数据加载到临时区域时,您只需要计算哈希一次(例如CustomerHashKey
,CustomerHashDiff
,CustomerContractLinkHashKey
)。除了这些哈希值,Sequence
号码,Load Date
和Source reference
之外,没有其他元数据放入暂存区域。这比在登台时添加的元数据更清晰。
在下一步中,从登台加载到数据仓库只需SELECT
源数据并将其放入所需的结构(例如HubCustomer
,SatCustomer
,{{ 1}})。由于哈希已经生成一次,因此在加载时不需要额外的处理。此外,在分段过程中,只有一个点生成哈希值。下游的所有其他流程都可以使用它们。
如果要从登台进入数据仓库生成哈希,最终可能会多次生成这些哈希值(LinkCustomerContract
,Hub
(+ diff),Satellite
)成为大数据用例或CPU较弱的机器的性能问题。想想卫星上的Link
:如果在暂存区域中发生散列,则在插入数据仓库时不需要额外的处理(当表中有很多列时,这可能会很快变得昂贵)。 / p>
所以如果可能的话,我总是在暂存区域中哈希。