我有一种情况,我正在从多个源(例如SourceA,SourceB,SourceC……SourceN)获取数据。每个源的数据格式或内容可以不同。现在,我需要从多个来源处理此数据,并为每个来源示例“ Col1,Col3,Col3,SourceIdentifier,sourceUniqueID”生成一个公共输出。现在我需要将此输出添加到某个表中,让我们将此表称为处理后的输出。现在我的问题是 1)如您所见,我需要通过这2列在Processedoutput表中标识哪行属于哪个源以及每个源的uniqueID(每个源都有一个标识列作为主键),我可以获得唯一行,但是我不想使用2个键作为标识符,我只想要一个键即可通过它获得相同的答案。我也不想使用GUID列
2)如果我将这些数据存储在列式数据库(如redshift或AZUER数据仓库)中。记录的标识符或唯一标识符2键是否会出现性能问题
3)由于有一些BI工具(如power BI)不支持多键作为联接条件,因此我该如何在powerBI中显示相同的数据(请注意-我可以在powerBI中创建一个计算列并进行联接作为单键,但我不想这样做)
谢谢 阿图尔
答案 0 :(得分:0)
这是一个典型的维度构建问题,您想在其中转换业务密钥以替代密钥。
您的登台表(可能是您称为commonoutput的表)具有包含SOURCE和ID的两部分业务密钥。
您的目标表(我认为这是您的已处理输出)需要包含代理键和您的业务键。代理密钥是您将用于连接到其他表的ID,仍然需要业务密钥,以便您可以查找代理密钥。
您的目标表将如下所示:
您可能可以使用IDENTITY列来创建新的surrogate_key值。 Redshift和Azure SQL数据仓库均支持身份。
答案 1 :(得分:0)
就像罗恩说的那样
除Ron解决方案外,类似地检查文章或Google: