在创建表之后,不能更改主键。必须删除并重新创建表以选择新的主键。
设置主键的列必须为表的首列。
不能使用 UPDATE 语句修改主键。若要修改一行的主键,必须删除该行并使用修改的键重新插入该行。这样的修改是非原子的。
DOUBLE、FLOAT 或 BOOL 类型的列不允许设置为主键。此外,主键列必须是 NOT NULL。
不支持自动生成主键。
在Kudu完成内部复合键编码之后,组成复合主键的单元格总数被限制为16KB。
在编码或压缩之前,单个单元不能大于64KB。
在Kudu完成内部复合键编码之后,组成复合键的单元格总数被限制为16KB。
插入不符合这些限制的行将导致错误返回给客户端。
默认情况下,Kudu表最多可以有300列。我们推荐使用较少列的设计模式以获得最佳性能。
不支持 CHAR、VARCHAR、DATE 和其他复杂类型,如:ARRAY、MAP 和 STRUCT。
现有列的类型和可空性不能通过更改表来更改。
删除列不会立即回收空间。必须首先运行压缩。
DECIMAL 列的精度和比例不能通过更改表来更改。
表必须有奇数个副本,最多7个。
不能更改复制因子(在创建表时设置)。
没有办法手动运行压缩,但是删除表将立即回收空间。
不支持二级索引。
不支持多行事务。
不支持关系特性,如外键。
诸如列和表名称之类的标识符被限制为有效的UTF-8字符串。此外,最大长度为256个字符。
每个表的主键必须提前手动进行分区,目前还不支持自动分区。除了添加或删除范围分区,Kudu不允许在创建表之后更改分区方式。
现有表中的数据目前无法自动重新分区。有一个解决方案就是使用新的分区创建一个新表,并将旧表的数据插入。
如果有大部分Tablets的副本丢失,需要人工干预才能修复。
列属性:
PRIMARY KEY
[NOT] NULL
ENCODING codec
COMPRESSION algorithm
DEFAULT constant
BLOCK_SIZE number
|