我使用的是Azure数据仓库,我对它很陌生。我的群集中有60个DWU。我想创建一个只有10行的查找表,并希望它在所有60个DataWarehouse单元中复制或可用,但不是只有一个。 我如何实现这一目标?
CREATE TABLE [src].[lkpTbl](
[ID] [int] NOT NULL,
[Description] [varchar](100) NOT NULL
)
WITH (DISTRIBUTION = REPLICATE);
GO
以上代码无效,但失败并显示错误:Option 'REPLICATE' is not supported in this version of SQL Server.
答案 0 :(得分:2)
Azure SQL数据仓库当前不支持复制表。唯一可用的选项是HASH(列名称)或ROUND_ROBIN。在这种情况下,因为它是一个小表使用ROUND_ROBIN。
答案 1 :(得分:1)
不幸的是ADW,由于Azure数据中心如何提供资源,因此在架构上很难提供REPLICATE表。正在对即将发布的版本中可能包含的内容进行评估。
所有当前的表分发方法(ROUND_ROBIN和HASH)将数据分布在所有60个存储容器中,问题是当您使用分布式表作为查找时,将会有一个数据移动作业将被执行以使用查询中的数据。
在上面的示例中,如果您要加入[ID]列,则应使用以下内容: WITH(DISTRIBUTION = HASH([ID]));
但是,如果要加入的表未在同一个连接表上分发,则在执行查询时将获得数据移动作业。或者,如果查找只有1列[描述],为了性能,我会说只是对事实表进行非规范化并将描述带入FACT表并将连接保留在ID上。