我正在将 SQL Server 数据库迁移到 Azure 数据仓库。我在早期的数据库中有维度表,其中有暗 id(基本上是整数值),并且这些在事实表中被引用以便于获取数据。这些暗淡的 id 是使用标识列生成的。
现在,在 Azure 数据仓库中,标识列值是随机生成的,我不确定是否在此处使用这些暗淡的 id。如果不使用这些 id,则可以使用文本列,但这会增加查找时间,进而影响性能。
那么,谁能建议我应该如何在 Azure 数据仓库中处理这些暗淡的 id?
问候,
普拉提克
我正在将 SQL Server 数据库迁移到 Azure 数据仓库。我在早期的数据库中有维度表,其中有暗 id(基本上是整数值),并且这些在事实表中被引用以便于获取数据。这些暗淡的 id 是使用标识列生成的。
现在,在 Azure 数据仓库中,标识列值是随机生成的,我不确定是否在此处使用这些暗淡的 id。如果不使用这些 id,则可以使用文本列,但这会增加查找时间,进而影响性能。
那么,谁能建议我应该如何在 Azure 数据仓库中处理这些暗淡的 id?
问候,
普拉提克
您可以在 Azure SQL 数据仓库中使用标识列。这些值不是“随机的”,只是它们的排序方式与您在 SQL Server 的 SMP 版本上看到的方式不同。
https://docs.microsoft.com/en-us/azure/sql-data-warehouse/sql-data-warehouse-tables-identity
如果您更喜欢替代方案,可以使用这样的计算在行插入期间分配代理键:
cast((select max(dim_sk) from dw.dim_xxx) + row_number() over (order by getdate()) as bigint) as dim_sk