跳到主要内容
版本: 最新版本-3.5

表类型概述

您必须指定表类型并在创建表时定义一个或多个列作为排序键。 这样,当数据最初加载到您创建的表中时,StarRocks 可以根据排序键对数据进行排序、处理和存储。 本主题介绍 StarRocks 提供的表类型,以满足您不同的业务需求。

基本概念

表类型

StarRocks 提供四种表类型:Duplicate Key 表、Aggregate 表、Unique Key 表和 Primary Key 表。 这四种表类型非常适合各种数据分析场景,例如日志分析、数据聚合和分析以及实时数据分析。

排序键

当数据加载到使用某种表类型创建的表中时,数据会根据创建表时定义的一个或多个列(即排序键)进行排序和存储。 排序键通常是在查询中经常用作过滤条件的一个或多个列,从而加速查询。

自 v3.0 起,Primary Key 表支持使用 ORDER BY 定义排序键。 自 v3.3 起,Duplicate Key 表、Aggregate 表和 Unique Key 表支持使用 ORDER BY 定义排序键。

有关排序键的更多说明,请参阅排序键和前缀索引

注意事项

  • 创建表后,您无法修改其表类型。 例如,您无法将 Duplicate Key 表更改为 Primary Key 表。 您必须创建一个新的 Primary Key 表。

  • 排序键列必须在创建表的语句中的其他列之前定义。

  • 创建表的语句中排序键列的顺序指定了表中的行排序所依据的条件顺序。

  • 表的前缀索引的长度限制为 36 字节。 如果排序键列的总长度超过 36 字节,StarRocks 将仅存储长度限制内的前几个排序键列作为前缀索引。

  • 如果要加载到表中的记录具有相同的主键,StarRocks 会根据表类型处理和存储记录

    • Duplicate Key 表

      StarRocks 将每个记录作为单独的行加载到表中。 数据加载完成后,该表包含具有相同主键的行,这些行一一对应源记录。 您可以回忆起您加载的所有历史数据。

    • Aggregate 表

      StarRocks 将记录聚合为一个记录,并将聚合后的记录作为一行加载到表中。 加载完成后,该表不包含具有相同主键的行。 您可以回忆起您加载的所有历史数据的聚合结果。 但是,您无法回忆起所有历史数据。

    • Unique Key 表和 Primary Key 表

      StarRocks 将先前加载的每个记录替换为新加载的记录,并且仅保留最近加载的记录作为表中的一行。 加载完成后,该表不包含具有相同主键的先前行。 仅保留包含相同唯一键/主键的最新记录。 可以将 Unique Key 表和 Primary Key 表视为一种特殊的 Aggregate 表,其中为指标列指定了 REPLACE 聚合函数,以返回具有相同主键的一组记录中的最新记录。