组织/分发方式 在MPP系统中创建表



MPP系统(Netezza/Teradata/Synapse)中的CREATE TABLE语句的性能如何受到ORGANIZE BY/DISTRIBUTION BY子句的影响? 另外,应该选择什么密钥在这样的MPP系统中分发?

简短的回答是,只要您选择一个"分布",使行跨节点非常均匀地分布,那么它对插入性能几乎没有影响。

在 Netezza 上,创建表时不会强制执行"组织",即使在插入/更新数据时也不会强制执行。稍后,"新郎"操作会根据您的请求执行此操作。旁注:在执行 CTAS 或大型插入时,如果可能,您应该在插入语句中"排序"。

关于选择"分布"列:

  1. 始终确保非常均匀的点差(如果不可能:随机更好)
  2. 切勿使用多列
  3. 并选择一个您计划在(很多)上进行大量"平等连接">
  4. 的操作

关于选择"单位"列

  1. 只考虑你计划对(=,<,>,LIKE)执行大量"简单位置"子句的列
  2. 倾向于那些几乎没有明显价值观的人
  3. 和"时间"列总是一个很好的猜测

提示:有时您会在一列上获得"免费"组织效果,因为它与您已经组织的另一列密切相关。 示例:如果create_date与包含 5 年数据的表中的end_date平均距离不到 30 天,那么您将产生该效果

相关内容

  • 没有找到相关文章

最新更新