大数据开发面试:HBase的模式Schema设计的一些概念和原则

本文深入探讨HBase的优化策略,包括模式创建与更新、列族数量的影响、行键设计原则、数据类型支持、列族TTL设置及第二索引查询技巧,旨在提升HBase数据库的性能与效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1)模式的创建与更新

可以使用HBase Shell或HBase Admin来创建和编辑HBase的模式。

在0.90.x 版本,只能先禁用表,再修改列族,而0.92.x版本以后,支持在线修改。

 

而且表和列族修改后,如size, region, block size等,在下次 主紧缩 或 存储文件时 起作用。

 

2)列族的数量

-列族数量越少越好,即使同时有两个列族,查询的时候总是访问其中一个列族,不会同时访问。

-当一个表存在多个列族,当基数差距很大时,如A族有100万行,B族10亿行,A族可能会被分散到很多区域region,导致扫描A的效率降低。

-另外,多个列族在flush和compaction时,会造成很多I/O负担。

 

3)行键设计RowKey

a. 不要将RowKey设计成有序的形式,因为这样容易阻塞并行性,将负载压都在一台机器上

b. 定位一个单元,需要行,列名和时间戳。如果一个单元格的坐标很大,会占用内存,索引用光。所以,解决方法:列族名尽量小,如一个字符a,短属性名,而行键长度可读即可(行键长度对数据访问无太大影响),将数字字符转换为数字字节模式(节省空间)。

c. 倒序时间戳有助于找到找到最近版本值

d. 行键是在列族范围内有效,不同列族中可以拥有同样的行键

e. 行键永远不能变

 

4)HBase支持所有能转换为字节数组的东西,如字符串、数字、复杂对象、计数器、甚至图像。

5)列族可以设置存活时间TTL,超时后,HBase自动删除数据

6)第二索引和查询: 这里面有很多东西,需要查看对应版本官方的文档更好些。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值