【问题标题】:Data are not distributed across 60 nodes in Azure SQL data warehouse数据未分布在 Azure SQL 数据仓库中的 60 个节点上
【发布时间】:2017-05-17 22:42:46
【问题描述】:

我在 Azure SQL 数据仓库中使用 distribution=hash() 创建了一个表。选择进行散列的列有 1000 个不同的值,表有大约 70 亿行。但是,当我使用 dbcc pdw_showspaceused(') 查看数据分布时,我只能看到 node_id 1 到 10。为什么即使我为散列选择了具有更多不同值的 GUID 列,数据也没有分布在所有 60 个节点上?我可以做些什么来强制系统在所有 60 个节点上分配值?

【问题讨论】:

    标签: azure azure-sql-database


    【解决方案1】:

    您可以在此处查看哪些发行版连接到哪个节点:select * from sys.pdw_distributions 如果您真的想确保数据分布在所有 60 个分布中,请使用 ROUND_ROBIN 而不是 HASH()。 也许你可以从这个系统视图中获得更多信息:https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-pdw-column-distribution-properties-transact-sql

    【讨论】:

      【解决方案2】:

      在 SQL DW 中有 60 个分布,但安装这些分布的节点数量由当前 DWU 级别决定,并且可以是 60 的任意因子。

      【讨论】:

      • 感谢您的回复。我不知道节点的数量取决于 DWU 级别。你能指点我一份文件吗?那将非常有帮助。另外,假设我使用 DWU 100 加载数据,并且我的数据分布在 6 个节点上。稍后当将 DWU 更改为 1000(符合 10 个节点的条件)时,我的数据是否会分布在之前 6 个节点的所有 10 个节点上?我猜是“不”。我得到的只是更多的内存和并发槽,对吗?
      • “你请指点我一份文件?”请参阅Difference between a distribution and a Compute node“我的数据是否会分布在前 6 个节点的所有 10 个节点上?”是的。这就是分离节点和分布的重点。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多