我有一种情况,我从SourceA,SourceB,SourceC ...... SourceN等多个来源获取数据。数据格式或每个源的内容可以不同。现在我需要处理来自多个源的这些数据,并为每个源示例“Col1,Col3,Col3,SourceIdentifier,sourceUniqueID”生成公共输出。现在我需要将此输出添加到某个表中,我们将此表称为processedoutput。现在我的问题是1)你可以看到我需要在Processedoutput表中确定哪一行属于哪个源,每个源的唯一ID(每个源有一个标识列作为主键)通过这两列我可以得到唯一的行,但我不想让2个键作为标识符,我只想要一个键,通过它我可以得到相同的答案。我也不想使用GUID列
2)如果我将这些数据存储在柱状数据库中,如redshift vs AZURE数据仓库。将2密钥作为记录的标识符或唯一标识符将具有任何性能问题
3)由于有一些BI工具,如功率BI不支持多个密钥作为连接条件,如何在powerBI中显示相同的数据(注意 - 我可以在powerBI中创建计算列并使连接成为单个键但我不想这样做)
谢谢Atul
这是典型的维度构建问题,您希望将业务键转换为代理键。
您的临时表(可能是您正在调用的通用输出表)具有由两部分组成的业务键,包括SOURCE和ID。
您的目标表(我认为这是您的已处理输出)需要持有代理键和您的业务键。代理键是您将用于连接到其他表的ID,仍然需要业务键,以便您可以查找代理键。
您的目标表将如下所示:
您可以使用IDENTITY列来创建新的surrogate_key值。 Redshift和Azure SQL数据仓库都支持身份。
就像罗恩上面说的,
除了Ron解决方案,检查文章或谷歌类似: