Kudu表的设计和局限性

架构

主键

在创建表之后,主键可能不会更改。您必须删除并重新创建一个表以选择新的主键。

构成主键的列必须首先在模式中列出。

行的主键可能不会使用该UPDATE功能进行修改。要修改一个行的主键,该行必须被删除,并用修改后的键重新插入。这样的修改是非原子的。

包含DOUBLE,,FLOAT或BOOL类型的列不被允许作为主键定义的一部分。另外,作为主键定义一部分的所有列都必须是NOT NULL。

自动生成的主键不受支持。

由Kudu完成的内部复合键编码后,组成主复合键的单元总数被限制在16KB。

不支持DECIMAL,CHAR,VARCHAR,DATE和ARRAY等复杂类型。

现有列的类型和可空性不能通过更改表来更改。

表格最多可以有300列。

表格必须有奇数个副本,最多7个。

复制因子(在表创建时设置)不能更改。

单元格(individual values)

在编码或压缩之前单元格不能大于64KB。

其他使用限制

Kudu主要是为分析用例设计的。如果单个行包含多个千字节的数据,则可能会遇到问题。

二级索引不受支持。

多行事务不受支持。

关系特性,如外键,不被支持。

标识符(如列名和表名)被限制为有效的UTF-8字符串。此外,强制执行最大长度为256个字符。

删除列不会立即回收空间。

没有办法手动运行压缩,但删除表将立即收回空间。

分区限制

必须使用简单或复合主键手动将表格预先拆分为tablets。自动分割还不可能。在创建表之后,可以添加或删除范围分区。

现有表中的数据目前不能自动重新分区。解决方法是用新分区创建一个新表,并插入旧表的内容。

失去大多数复制的tablets (例如3个中的1个)需要手动干预才能修复。

集群管理

机架感知不受支持。

多数据中心不受支持。

不支持滚动重启。

服务器管理

生产部署应该为tablet服务器配置至少4GB的内存,理想情况下,接近数据和tablet的规模限制时需要超过16GB 。

预写日志(WAL)只能存储在一个磁盘上。

不能容忍磁盘故障,一旦检测到,tablets 服务器就会崩溃。

具有不可恢复数据的故障磁盘需要格式化该平板电脑服务器的所有Kudu数据,然后才能重新启动。

数据目录不能被添加/删除; 所有的都必须重新格式化以更改目录集。

tablet服务器不能更改地址/端口。

KUDU有最新的NTP的硬要求。Kudu Master和tablet服务器在不同步时会崩溃。

Kudu发行版仅用NTP进行测试。像Chrony这样的其他时间同步提供者可能会也可能不会工作。

规模

推荐的tablet服务器最大数量为100。

建议的最大Master 数是3。

建议的最大存储数据量,复制后和压缩后,每个tablet服务器是8TB。

建议每个tablet服务器的最大数量是2000。

在创建表时,每个tablet的最大数量是60个,即复制后。

复制和备份限制

Kudu目前不包含任何内置的备份和恢复功能。鼓励用户使用Spark或Impala等工具根据需要导出或导入表格。

安全限制

授权只能在全系统的粗粒度级别上使用。表级,列级和行级授权功能不可用。

休息时的数据加密不是直接建立在Kudu的。通过使用本地块设备加密软件,如静态加密,可以实现对Kudu静态数据的加密dmcrypt。

Kudu服务器Kerberos主体必须遵循这一模式kudu/@DEFAULT.REALM。不支持配置备用Kerberos主体。

Kudu与Apache Flume的集成不支持写入需要Kerberos身份验证的Kudu群集。

本文档只供参考。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值