Elasticsearch对比TiDB

2020/03/08

笔者做过的一个项目中,同时用到了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 为单位进行调度。


欢迎关注我的公众号

(转载本站文章请注明作者和出处 犀牛饲养员

Show Disqus Comments

Post Directory