Mysql 与 HBase技术选型 - Go语言中文社区

Mysql 与 HBase技术选型


参考博客:https://blog.csdn.net/daxiang12092205/article/details/52077938

MySQL + HBase 是我们日常应用中常用的两个数据库,分别解决应用的在线事务问题大数据场景的海量存储问题

在最近的一些版本中,引入了OffHeap降低gc影响,优化链路延迟,提供Replica等可以满足在线的需求。引入MOB,可以存储10M左右的对象,完全适应了对象存储。另外由于自身的并发能力、存储能力,可以说是具有最为竞争力的引擎

1. 如果你选择Mysql或者是HBase时候,你是通过什么标准来选择得呢???

    如果你正在设计一个系统,这个系统致力于解决大数据的问题,或者是需要融入到其他Hadoop项目中,那么请选择HBase

    如果你能够将数据存储在表格里,并且数据量不大,也不做相应的数据分析,那么请选择Mysql

2. HBase不是来取代Mysql的,在未来也不会向这个方向发展

     HBase是被设计用来处理大规模数据的,在高并发的场景下有独特的优势

     存储少于100GB的数据,用HBase是没有优势的

3.  从各种方面对比两者的差异

1.  从架构看差异

       

 

 相比Mysql,HBase架构特点1. 完全分布式,可扩展 2. 底层使用HDFS, 存储与计算分离

 能力差异:HBase扩展性好,容错恢复  Mysql 运维简单,读性能好

2.  从引擎看差异(B+Tree  vs  LSM  Tree)

  Mysql  侧重读,存在空间碎片

  HBase 侧重写,存储无碎片,数据导入能力强

3. 从数据访问看差异

   Mysql的 sql功能丰富,事务能力强

   HBase 既能通过API进行更加灵活,性能更好的访问,又可通过Phonenix使用标准sql访问。只支持单行事务

4.  HBase特色功能

 4.1  TTL功能      适用于无需永久保存的数据。如日志,监控,轨迹,浏览记录,费用详单

                            可提升性能,易于开发

4.2    动态列:1. 无须定义,直接插入新字段  2. 单表字段可达百万个  3. 空字段不占用存储空间

                        适用于表结构经常调整,字段非常多的数据。 用户画像,安全分控

                        需要维护人或设备  的大量纬度,且需要频繁变更字段来准确衡量各维度的数据价值

4.3    多版本:1. 数据更新后,旧数据依然可访问  2. 旧版本数量可设定,超过数量自动删除多余版本

                        适用维护最近N次变更值得数据,如浏览记录,轨迹记录,登陆记录,交易记录

                         经常用于实时推荐,安全风控,营销圈人等场景

4.4    多列蔟    1. 某些列物理上存放在一起,一个文件  2. 提高压缩率  3. 减少非相关列查询时性能影响

                         适用于列大小不同,访问频率不同,如网页,图片,音频,视频等内容与元数据

                         经常用于搜索,人脸识别,多媒体等场景

 4.5    MOB      1. 适用于存储中等大小得数据(100kb——100mb)   

                            大于10MB存储到HDFS

                         2. 与多列蔟特性相配合,常用于搜索,人脸识别,多媒体等场景

5.  HBase得应用场景

  • 对象存储:我们知道不少的头条类、新闻类的的新闻、网页、图片存储在HBase之中,一些病毒公司的病毒库也是存储在HBase之中

  • 时序数据:HBase之上有OpenTSDB模块,可以满足时序类场景的需求

  • 推荐画像:特别是用户的画像,是一个比较大的稀疏矩阵,蚂蚁的风控就是构建在HBase之上

  • 时空数据:主要是轨迹、气象网格之类,滴滴打车的轨迹数据主要存在HBase之中,另外在技术所有大一点的数据量的车联网企业,数据都是存在HBase之中

  • CubeDB OLAP:Kylin一个cube分析工具,底层的数据就是存储在HBase之中,不少客户自己基于离线计算构建cube存储在hbase之中,满足在线报表查询的需求

  • 消息/订单:在电信领域、银行领域,不少的订单查询底层的存储,另外不少通信、消息同步的应用构建在HBase之上

  • Feeds流:典型的应用就是xx朋友圈类似的应用

  • NewSQL:之上有Phoenix的插件,可以满足二级索引、SQL的需求,对接传统数据需要SQL非事务的需求

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/fly_miqiqi/article/details/90747515
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-01 20:58:08
  • 阅读 ( 845 )
  • 分类:数据库

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢