Elasticsearch和数据库保持同步的方式及原理

Elasticsearch和数据库保持同步的方式及原理,第1张

上一篇 <<<Linux环境安装Elasticsearch集群

下一篇 >>>Logstash-input-jdbc实现ES和数据同步 *** 作步骤

推荐阅读:

<<<Elasticsearch入门知识

<<<Elasticsearch快速原因分析及应用场景

<<<Elasticsearch的存储结构端口及版本控制

<<<Elasticsearch文档映射方式

<<<Elasticsearch的基本及复杂数据类型

<<<Elasticsearch的简易版及结构化查询语句

<<<Elasticsearch默认分词器对中文分词不友好

<<<Elasticsearch自定义分词和分词器

<<<正向索引和倒排索引区别

<<<Elasticsearch中的类型区别汇总

<<<Elasticsearch是如何解决高并发问题

<<<Elasticsearch集群相关名词

<<<Elasticsearch集群及分片实现原理

<<<SpringBoot整合Elasticsearch

<<<Linux环境安装Elasticsearch

<<<Linux环境安装Elasticsearch集群

<<<Logstash-input-jdbc实现ES和数据同步 *** 作步骤

我们使用Elasticsearch存储的文档数量接近50亿(算上1份复制,接近

100亿文档),总共10个数据节点和2个元数据节点(48GB内存,8核心CPU,ES使用内存达到70%),每天的文档增量大概是3000W条(速度

持续增加中)。目前来看,单个文档的查询效率基本处于实时状态;对于1到2周的数据的聚合统计 *** 作也可以在10秒之内返回结果。

但是,还有提升的空间:

1. 对于查询单条数据的应用场景来说,我们可以使用ES的路由机制,将同一索引内的具有相同特征(比如具有相同的userid)的文档全部存储于一个节点上,这样我们之后的查询都可以直接定位到这个节点上,而不用将查询广播道所有的节点上;

2. 随着数据节点的增加,适当增加分片数量,提升系统的分布水平,也可以通过分而治之的方式优化查询性能;

 

 个人以为Elasticsearch作为内部存储来说还是不错的,效率也基本能够满足,在某些方面替代传统DB也是可以的,前提是你的业务不对 *** 作的事

性务有特殊要求;而权限管理也不用那么细,因为ES的权限这块还不完善。由于我们对ES的应用场景仅仅是在于对某段时间内的数据聚合 *** 作,没有大量的单文

档请求(比如通过userid来找到一个用户的文档,类似于NoSQL的应用场景),所以能否替代NoSQL还需要各位自己的测试。如果让我选择的话,我

会尝试使用ES来替代传统的NoSQL,因为它的横向扩展机制太方便了。

Elasticsearch和MySQL可以结合使用,主要是因为它们两个的定位和功能不同。MySQL是一种关系型数据库,用于存储和管理结构化数据,而Elasticsearch则是一种搜索引擎和分析引擎,用于实时分析和搜索大量非结构化数据。

将Elasticsearch和MySQL结合使用可以实现更好的搜索和分析功能。比如,可以将MySQL中的结构化数据导入到Elasticsearch中建立索引,从而实现更快速、更准确的搜索和分析。同时,Elasticsearch也可以将搜索结果与MySQL中的结构化数据进行关联,从而提供更丰富的搜索结果和分析报告。

此外,Elasticsearch还可以作为MySQL的缓存层,用于加速访问和查询速度。将经常查询的数据存储在Elasticsearch中,可以大大减少MySQL的查询负载,提高系统性能和响应速度。

总之,结合使用Elasticsearch和MySQL可以充分发挥它们各自的优势,实现更好的搜索和分析功能,同时提高系统性能和响应速度。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9546621.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存