【问题标题】:Replicate a lookup table in all DWU in Azure Datawarehouse在 Azure 数据仓库的所有 DWU 中复制查找表
【发布时间】:2017-01-22 20:14:20
【问题描述】:

我正在使用 Azure 数据仓库,我对它很陌生。我的集群中有 60 个 DWU。我想创建一个只有 10 行的查找表,并希望它可以在所有 60 个数据仓库单元中复制或可用,而不仅仅是一个。 我如何做到这一点?

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.

【问题讨论】:

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


    【解决方案1】:

    Azure SQL 数据仓库目前不支持复制表。唯一可用的选项是 HASH(列名)或 ROUND_ROBIN。在这种情况下,因为它是一个小表,所以使用 ROUND_ROBIN。

    【讨论】:

      【解决方案2】:

      不幸的是 ADW,由于 Azure 数据中心配置资源的方式,它使得提供 REPLICATE 表在架构上变得困难。正在评估它是否可能包含在即将发布的版本中。

      当前所有的表分布方法(ROUND_ROBIN 和 HASH)将数据分布在所有 60 个存储容器中,问题是当您使用分布式表作为查找时,将执行一个数据移动作业以使用查询中的数据。

      在上面的示例中,如果您要加入 [ID] 列,则应使用以下内容: WITH (DISTRIBUTION = HASH([ID]));

      但是,如果您要加入的表未分布在同一个加入表上,您将在查询执行时获得数据移动作业。或者,如果查找只有 1 列 [Description],为了性能,我会说只是将事实表非规范化并将描述带入 FACT 表并将连接保留在 ID 上。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-02-06
        • 2016-05-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-29
        • 2017-01-13
        • 2017-06-28
        • 1970-01-01
        相关资源
        最近更新 更多