如何在Azure数据仓库中设计维度和事实表?
我正在将SQL Server数据库迁移到Azure数据仓库。我在早期的数据库中有维度表,它们有dim id(基本上是整数值),这些都是在事实表中引用的,以便轻松获取数据。 这些dim ID是使用标识列生成的 现在,在Azure数据仓库中,标识列值是随机生成的,我不确定是否在这里使用这些dim ID。如果不使用这些ID,则可以使用文本列,但这将增加搜索时间,进而影响性能 那么,有谁能建议我应该如何在Azure数据仓库中处理这些dim ID 问候,如何在Azure数据仓库中设计维度和事实表?,azure,data-warehouse,azure-sqldw,sql-data-warehouse,Azure,Data Warehouse,Azure Sqldw,Sql Data Warehouse,我正在将SQL Server数据库迁移到Azure数据仓库。我在早期的数据库中有维度表,它们有dim id(基本上是整数值),这些都是在事实表中引用的,以便轻松获取数据。 这些dim ID是使用标识列生成的 现在,在Azure数据仓库中,标识列值是随机生成的,我不确定是否在这里使用这些dim ID。如果不使用这些ID,则可以使用文本列,但这将增加搜索时间,进而影响性能 那么,有谁能建议我应该如何在Azure数据仓库中处理这些dim ID 问候, Pratik您可以在Azure SQL数据仓库中使
Pratik您可以在Azure SQL数据仓库中使用标识列。这些值不是“随机”的,它们的排序方式与您在SMP版本的SQL Server上看到的不同 如果您希望使用其他方法,可以使用如下计算在行插入期间指定代理键:
cast((select max(dim_sk) from dw.dim_xxx) + row_number() over (order by getdate()) as bigint) as dim_sk
您可以在Azure SQL数据仓库中使用标识列。这些值不是“随机”的,它们的排序方式与您在SMP版本的SQL Server上看到的不同 如果您希望使用其他方法,可以使用如下计算在行插入期间指定代理键:
cast((select max(dim_sk) from dw.dim_xxx) + row_number() over (order by getdate()) as bigint) as dim_sk
谢谢你的回复。它是否遵循星型模式方法。我想使用标识列作为外键链接dim表和事实表。是和否。您可以连接表和索引列以支持您的结果,但没有引用完整性。。。不直接支持主键/外键概念,例如删除行或为空值。您不希望在非常大的DW中出现这种开销。是的,DW没有主键和外键概念。您建议我们使用什么连接dim和事实表。ID还是文本列?假设您使用ASDW是因为您有大量数据,BIGINT可能是标识列的最佳数据类型。您会注意到替代算法也被转换为BIGINT。通常,整数值是最可压缩和最快的可比较数据类型,这意味着您可以从DW中获得最佳性能。感谢您的回复。它是否遵循星型模式方法。我想使用标识列作为外键链接dim表和事实表。是和否。您可以连接表和索引列以支持您的结果,但没有引用完整性。。。不直接支持主键/外键概念,例如删除行或为空值。您不希望在非常大的DW中出现这种开销。是的,DW没有主键和外键概念。您建议我们使用什么连接dim和事实表。ID还是文本列?假设您使用ASDW是因为您有大量数据,BIGINT可能是标识列的最佳数据类型。您会注意到替代算法也被转换为BIGINT。通常,整数值是最可压缩和最快的可比较数据类型,这意味着您可以从DW中获得最佳性能。