当您的业务数据存储在MongoDB中,并且需要进行语义分析和大图展示时,可借助Elasticsearch实现全文搜索、语义分析、可视化展示等。本文介绍如何通过Monstache将MongoDB数据实时同步至Elasticsearch,并对数据进行分析及展示。
本文以解析及统计热门电影数据为例,提供的解决方案可以帮助您完成以下需求:
- 通过Monstache快速同步及订阅全量或增量数据。
- 将MongoDB数据实时同步至高版本Elasticsearch。
- 解读Monstache常用配置参数,应用于更多的业务场景。
本文以阿里云Elasticsearch和MongoDB为例,为您介绍数据同步的方法。阿里云Elasticsearch兼容开源Elasticsearch的功能,以及Security、Machine Learning、Graph、APM等商业功能,致力于数据分析、数据搜索等场景服务。支持5.5.3、6.3.2、6.7.0、6.8.0和7.4.0等版本,并提供了商业插件X-Pack服务。在开源Elasticsearch的基础上提供企业级权限管控、安全监控告警、自动报表生成等功能。阿里云Elasticsearch为您提供1个月的免费试用活动,单击此处即可免费试用。
与开源Elasticsearch相比,阿里云Elasticsearch提供了高可用性、高可靠性、高安全性等功能特性。并且提供Elasticsearch和Kibana的全托管服务,您可以按需付费,即买即用。在此基础上,还对内核性能进行了优化,提供独立的index build服务、存储计算分离、智能运维、达摩院分词器、商业插件等功能。
方案优势
- MongoDB、Elasticsearch及Monstache服务部署在专有网络内,所有数据私网通信,高速且安全。
- Monstache基于MongoDB的oplog实现实时数据同步及订阅,支持MongoDB与高版本Elasticsearch之间的数据同步,同时支持MongoDB的变更流和聚合管道功能,并且拥有丰富的特性。
- Monstache不仅支持软删除和硬删除,还支持数据库删除和集合删除,能够确保Elasticsearch端实时与源端数据保持一致。
操作流程
-
准备同一专有网络VPC下的阿里云MongoDB、阿里云Elasticsearch和ECS实例。其中ECS实例用来安装Monstache。
注意 请准备版本兼容的Monstache工具、阿里云Elasticsearch和MongoDB实例,版本兼容性详情请参见Monstache version。 -
在ECS实例中安装Monstache,用来将MongoDB中的数据同步至阿里云Elasticsearch。安装前需要先配置Go环境变量。
-
修改默认的Monstache配置文件,在配置文件中指定MongoDB和Elasticsearch的访问地址、待同步的集合、Elasticsearch的用户名和密码等参数值。配置完成后,运行Monstache服务,即可将MongoDB中的数据实时同步至阿里云Elasticsearch中。
-
分别在MongoDB数据库中添加、更新、删除数据,验证数据是否实时同步。
-
在Kibana控制台中,分析数据并使用Pie图展示分析结果。
准备工作
-
创建阿里云Elasticsearch实例,并开启实例的自动创建索引功能。
具体操作步骤请参见创建阿里云Elasticsearch实例和开启自动创建索引。本文使用的实例版本为通用商业版6.7.0。
-
创建阿里云MongoDB实例,并准备测试数据。
具体操作步骤请参见[MongoDB快速入门](https://help.aliyun.com/document_detail/26572.html}。本文以4.2版本的副本集MongoDB实例为例,部分数据如下。