[转载] Elasticsearch 对比 TiDB

笔者做过的一个项目中,同时用到了Elasticsearch和Tidb两种存储相关的产品。这两者适用的场景有些差异,但其实又有交集。前者偏向搜索,后者则主打分布式存储。下面根据自己的理解从不同维度分析下二者的相同点和不同点。

对比维度 Elasticsearch TiDB
产地 公司现在的名称是Elastic,其实它的员工遍布世界各地,一般认为公司的总部是阿姆斯特丹 公司是PinCap,在北京,是国内的公司。
版本历史 最初其实不叫ES,源于作者做的菜谱的应用。作者Shay Banon在2010年2月发布了Elasticsearch的第一个版本 。目前最新的版本是7.6 2017年10月发布第一个版本,目前的稳定版本是3.0.0。正在开发4.x的版本。
基本介绍 Elasticsearch是一个基于Lucene库的搜索引擎。它提供了一个分布式、支持多租户的全文搜索引擎。 TiDB是一个开源的NewSQL数据库,支持混合事务和分析处理(HTAP)工作负载[3]。它与MySQL兼容,并且可以提供水平可扩展性、强一致性和高可用性。
用户规模 没有查到具体的数据,但是DB-Engines Ranking排名前十,公司估值30亿美元左右,用户规模可想而知。 虽然成立时间不长,但是已有300多家公司在使用 TiDB,国内用户偏多,像知乎,小米,美团等知名互联网公司都在使用。
作者 熟悉ES的人都知道他源于菜谱。许多年前,一个叫Shay Banon的待业工程师跟随他的新婚妻子来到伦敦,他的妻子想在伦敦学习做一名厨师。而他在伦敦寻找工作的期间,接触到了Lucene的早期版本,他想为自己的妻子开发一个方便搜索菜谱的应用。这就是ES的前身。 作者是Pincap公司,不是由某个人开发的。
对编程语言的支持 ES的客户端现在也比较多了,.Net,Groovy,Java,JavaScript,Perl,PHP,Python,Ruby tidb本身是类mysql一样的数据库,基本主流的开发语言它都支持。
对SQL的支持 ES官方推荐的语言是QUERY DSL,但是考虑到SQL的影响力,Elasticsearch-SQL应运而生,它不是官方的,属于第三方开源的插件。 这个是tidb的优势,它本来就是几乎完全兼容mysql。
跟国内云厂商的合作 阿里云,腾讯云 官方似乎还没有上云。这个其实比较复杂,涉及到大鱼吃小鱼的问题,不展开了。
大数据mapreduce支持 ES-Hadoop TiSpark
事务支持 不支持 支持
分区和副本 分片机制,副本机制 TiKV 使用 Raft 协议做复制,保持数据的一致性和容灾。副本以 Region 为单位进行管理,不同节点上的多个 Region 构成一个 Raft Group,互为副本。数据在多个 TiKV 之间的负载均衡由 PD 调度,这里也是以 Region 为单位进行调度。

作者:犀牛饲养员
原文链接:www.machengyu.net/elasticsearch/202...

讨论数量: 1

作者 一栏不太恰当

3年前 评论
DRose (楼主) 3年前
Yu (作者) 3年前
DRose (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!