主键
- 表创建后,主键不能修改。必须删除重建表指定新的主键
- 主键列必须在非主键列之前
- 主键列的值不能使用UPDATE函数修改。如果要修改主键的值只能删除该行重新插入,并且该操作无法保持原子性;
- 主键的类型不支持DOUBLE、FLOAT、BOOL,并且主键必须是非空的(NOT NULL);
- 不支持自动生成的主键(如自增列)
- 每行对应的主键存储单元(CELL)最大为16KB
列
- MySQL中的部分数据类型,如DECIMAL, CHAR, VARCHAR, DATE, ARRAY等不支持;
- 数据类型以及是否可为空等列属性不支持修改;
- 不能通过ALTER TABLE更改现有列的类型和是否可为空属性
- DECIMAL类型列的精度和规模不能通过ALTER TABLE进行修改(Kudu 1.7+才支持decimal类型)
- 表最多可以有300列。
表
- 表的副本数必须为奇数,最多为7。
- 备份数在设置后不可修改。
单元格
- 单个单元格的值在编码或压缩前不能大于64KB。
分区限制(分片限制)
- 只支持手动指定分区(分片),自动分区(分片)不支持;
- 分片设定不支持修改,修改分片设定需要”建新表-导数据-删老表”操作;
- 表必须使用简单或复合主键手动分区。
- Range 分区可以在建表后添加或删除。
- 表中已有的数据无法重新自动分区。有一种解决方案,创建一个新表并制定新的分区,然后将旧表的数据插入新表。
- 失去大部分副本的tablet(比如三个