当前位置: 首页 > article >正文

ES、MongoDB、HBase的区别和使用场景

ES、MongoDB、HBase的区别和使用场景

技术优点缺点使用场景选型
ES
  • 支持全文搜索
  • 可以自动建立索引
  • 复杂查询性能高
  • 字段类型无法修改
  • 不支持mapReduce
  • 写入性能较低、硬件资源消耗高
  • 没有细致的权限管理
  • 各节点数据的一致性问题
  • 日志分析:将日志统一存储,进行管理和查询。
  • 全文索引:电商商品搜索、移动应用搜索、企业内部信息搜索等
  • 商业智能 BI:电子商务、移动应用、广告媒体等业务,进行数据分析和数据挖掘来辅助商业决策。
如果你需要构造一个搜索引擎或者你想搞一个看着高大上的数据可视化平台,并且你的数据有一定的分析价值,选ES
MongoDB
  • 表结构灵活可变,字段类型可以随时修改。
  • 插入数据时,不必考虑表结构的限制。
  • 支持mapReduce
  • 对多表查询的支持不好
  • 没有细致的权限管理
  • 网站实时数据:实时的插入,更新与查询,并具备网站实时数据存储所需的复制及伸缩性。
  • 数据缓存:信息基础设施的缓存层。MongoDB 持久化缓存层可避免下层的数据源过载。
  • 大尺寸、低价值数据存储
  • 高伸缩性场景:由数十或数百台服务器组成的数据库。MongoDB 的路线图中已经包含对 MapReduce 引擎的内置支持。
  • 对象或 JSON 数据存储:BSON 数据格式非常适合文档化格式的存储及查询
如果你的数据规模较大,对数据的读性能要求很高,数据表的结构需要经常变,有时还需要做一些聚合查询,选MongoDB;
HBase
  • 支持海量数据
  • 高扩展性(横向扩展)
  • 高可靠性
  • 高性能
  • 列操作
  • 不支持复杂查询:只支持按照row key来查询
  • 容易产生单点故障(在只使用一个HMaster的时候)
  • 不支持事务
  • 不支持JOIN,需要用MapReduce
  • 只能在主键上索引和排序
  • 没有内置的身份和权限认证,需要外部支持
  • HBase是很重的一款产品,需要依赖很多的Hadoop组件
  • 写密集型应用,每天写入量巨大(上千万或者上亿行,每日 TB 以上数据量),而相对读数量较小的应用
  • 比如游戏的日志,DNS信息等
  • 不需要复杂查询条件来查询数据的应用
  • HBase只支持基于rowkey的查询,对于HBase来说,单条记录或者小范围的查询是可以接受的,大范围的查询由于分布式的原因,可能在性能上有点影响,而对于像SQL的join等查询,HBase无法支持。
  • 对性能和可靠性要求非常高的应用
  • HBase本身没有单点故障,可用性非常高。
如果你需要存储海量数据,且都不知道你的数据规模将来会增长多么大,那么选HBase


 


http://www.kler.cn/a/6015.html

相关文章:

  • Elixir语言的学习路线
  • 开放词汇检测新晋SOTA:地瓜机器人开源DOSOD实时检测算法
  • maven的简单介绍
  • Java语法总结
  • 嵌入式系统 (2.嵌入式硬件系统基础)
  • C++和Python中负数取余结果的区别
  • 一起Talk Android吧(第五百三十六回:RxJava中的事件转换)
  • 浅谈常量字符串
  • java基础:java泛型相关内容
  • 代码管理平台Codeup测评
  • 蓝桥杯第15天(Python版)(数论)
  • 【Ruby学习笔记】1.Ruby的简介、环境、Linux安装及Windows安装
  • 高级Java工程师面试题经典面试题1220道(附答案)
  • Python 自建项目上传到 PyPI 之后通过 pip 可安装
  • 自己动手写CPU——第一篇
  • ChatGPT AI国内免魔法使用
  • 命令行上的数据科学第二版 二、开始
  • VUE从0开始,一个小时就学完VUE
  • Linux系统之diff命令的基本使用
  • 数据结构-堆-堆排序-TopK
  • 05_Python学习基础
  • 蓝桥杯刷题第二十五天
  • 玩转肺癌目标检测数据集Lung-PET-CT-Dx ——②预览数据集,绘制锚框
  • FastDFS单节点搭建
  • Linux安装JDK教程(图文详解,一步搞定)
  • https