在Azure Datawarehouse中的所有DWU中复制查找表

时间:2016-09-14 22:01:35

标签: azure azure-sql-database data-warehouse azure-sqldw

我使用的是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.

2 个答案:

答案 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上。