Kudu的表是一种结构化数据模型,包含3个方面:分区设计、primary key设计、column设计
支持的列数据类型如下:
列储存时,默认是不压缩的
可以声明一个或多个列作为primary key。primary key的数据类型不能是boolean、float、double。
insert相同的primary key数据到表,会出现重复键错误
行删除和更新必须指定主键,不支持范围删除和更新
索引是clustered index(聚集索引)。 tablet中的所有行按primary key排序。在primary key进行相等或范围条件过滤,扫描时自动跳过不能满足条件的行
表的数据可以进行分区,一个分区对应一个tablet。多个tablet分布在多个tablet server上。行只能属于一个tablet
如果写入较多,推荐设计分区将写入分散到多个分区。如果读取较多,推荐设计分区将读取定位到少量的分区
表创建时没有默认分区,需要指定分区策略。支持range分区和hash分区
range分区的分区键必须是primary key中的
需要指定一个或多个split点、上界、下界。如果不指定分区上下界,则默认无界限
Range Partition Management范围分区管理
添加分区:不能和已经存在的分区重叠
删除分区:tablet的数据也会被删除
hash分区的分区键必须是primary key中的
支持以下操作:
可以在单个事务操作中进行多个schema变更
--unlock_unsafe_flags --max_num_columns=500
进行修改