热浪用户指南/准备数据/定义数据放置键

3.4定义数据放置键

将数据加载到Weatwave中时,它由表的主键分区,默认情况下,水平切割用于热量节点之间的分布。数据放置密钥特征允许分区数据加入或者通过...分组键列代替,可以改善加入或者通过...分组通过避免查询执行时间的热浪节点之间的重新分发数据的成本来查询性能。

通常,如果主键的分区不提供足够的性能,则应仅定义数据放置密钥。还应该保留数据放置密钥以供最耗时的查询。在这种情况下,在最常使用的情况下定义数据放置密钥加入键和最长的运行查询的键。

定义数据放置密钥需要添加列注释与数据展示位置关键字字符串:

Rapid_column = data_placement_key =N

在哪里N是定义数据放置键顺序的索引值。

  • 索引必须以1开头。

  • 允许的索引值范围为1到16,包容性。

  • 不能在同一表中重复索引值。例如,您无法在同一表中指定2到多个列的索引值。

  • 不允许索引值中的间隙。例如,如果定义具有索引值为3的数据放置键列,则还必须分别具有索引值为1和2的其他两个数据放置键列。

您可以在a中定义数据展示位置关键字字符串创建表或者改变表陈述:

创建表订单(日期日期评论'Rapid_column = data_placement_key = 1');
ALTER表订单修改日期日期评论'RAPIN_COLUMN = DATA_PLACEMENT_KEY = 1';

以下示例显示了定义为数据放置密钥的多列。虽然定义了主键,但是数据放置键划分数据,这些键在主键上优先考虑。

创建表订单(ID INT主键,日期日期评论'Rapid_column = data_placement_key_key = 1',价格浮点注释'Rapid_column = data_placement_key = 2');

将多个列定义为数据放置密钥时,根据查询成本优先顺序键。例如,分配data_placement_key = 1到最昂贵的查询的关键,data_placement_key = 2到下一个昂贵的查询的键,等等。

笔记

列注释中允许其他信息。例如,允许在数据展示位置关键字字符串旁边指定列描述:

评论 'column_description.Rapid_column = data_placement_key = 1'

用法说明:

  • 加入通过...分组查询优化仅应用至少一个加入或者通过...分组关系有一个符合数据放置密钥的关键。

  • 如果一个加入可以使用或不执行操作加入通过...分组查询优化,编译时间成本模型确定如何执行查询。成本模型使用估计统计数据。

  • 无法在字典编码的字符串列上定义数据放置密钥,但在可变长度编码列上允许数据放置密钥。默认情况下,Remwave将可变长度的编码应用于String列。看第3.3节“编码字符串列”

  • 数据放置密钥只能在具有支持的数据类型的列上定义。看第10.1节“支持数据类型”

  • 数据放置键列不能被定义为一个不二级柱子。看第3.2节“排除表列”

  • 对于相关元数据查询,请参阅第10.5节“元数据查询”