Hive数据导入HBase引起数据膨胀引发的思考

28 篇文章 2 订阅
10 篇文章 0 订阅

最近朋友公司在做一些数据的迁移,主要是将一些Hive处理之后的热数据导入到HBase中,但是遇到了一个很奇怪的问题:同样的数据到了HBase中,所占空间竟增长了好几倍!详谈中,笔者建议朋友至少从几点原因入手分析:

  1. HBase中的数据相对于Hive中的数据会新增一些附加信息导致磁盘占用的增加,比如布隆过滤器

  2. Hive中的数据是否进行过压缩,比如snappy,压缩比还是很高的

  3. row key和列族都会占据一定的空间,当数据量较大时,仅二者就会占据很多不必要的空间

  4. 建议将相同查询场景下的几个常用的列的值拼接成一个列,节省KeyValue结构化带来的开销

Hive和HBase都可以作为存储系统,不禁思考引入HBase做数据存储的原因?

  1. 通过scan、get可以批量、单条获取数据,通过bulkload、put可以批量、单条导入数据

  2. 在实际生产环境,通常将计算和存储进行分离,保证集群规模水平可扩展,易于提高整体的吞吐。通过单机性能优化和集群的扩容,确保业务大幅增长时,存储不能没有成为系统的瓶颈

  3. 弱schema的特性能够很好的应对业务数据频繁变化的情况,也能够方便支持一些特殊业务场景的数据逻辑

当然,除了上述原因,还有很多涉及底层的原理环节和实际的业务场景需求,这就要求我们对HBase有足够的了解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值