当您的业务数据存储在MongoDB中,并且需要进行语义分析和大图展示时,可借助阿里云Elasticsearch实现全文搜索、语义分析、可视化展示等。本文介绍如何通过Monstache将MongoDB数据实时同步至阿里云Elasticsearch,并对数据进行分析及展示。
背景信息
本文以解析及统计热门电影数据为例,提供的解决方案可以帮助您完成以下需求:
- 通过Monstache快速同步及订阅全量或增量数据。
- 将MongoDB数据实时同步至高版本Elasticsearch。
- 解读Monstache常用配置参数,应用于更多的业务场景。
方案优势
- MongoDB、阿里云Elasticsearch及Monstache服务部署在专有网络VPC(Virtual Private Cloud)内,所有数据私网通信,高速且安全。
- Monstache基于MongoDB的oplog实现实时数据同步及订阅,支持MongoDB与高版本Elasticsearch之间的数据同步,同时支持MongoDB的变更流和聚合管道功能,并且拥有丰富的特性。
- Monstache不仅支持软删除和硬删除,还支持数据库删除和集合删除,能够确保Elasticsearch端实时与源端数据保持一致。
操作流程
步骤一:环境准备
步骤二:搭建Monstache环境
步骤三:配置实时同步任务
Monstache配置使用TOML格式,默认情况下,Monstache会使用默认端口连接本地主机上的Elasticsearch和MongoDB,并追踪MongoDB oplog。在Monstache运行期间,MongoDB的任何更改都会同步到Elasticsearch中。
由于本文使用阿里云MongoDB和Elasticsearch,并且需要指定同步对象(mydb数据库中的hotmovies和col集合),因此要修改默认的Monstache配置文件。修改方式如下:
步骤四:验证数据同步结果
步骤五:通过Kibana分析并展示数据
常见问题
- 问题
阿里云Elasticsearch实例开启高可用、高并发功能后,数据有丢失现象,如何排查?
- 解决方案
查看阿里云Elasticsearch集群的整体情况是否正常:
- 正常:需要排查Monstache服务的问题,详细信息请参见Monstache官网。
- 不正常:参见常见问题,排查阿里云Elasticsearch集群的问题。同时降低并发数,观察数据是否正常。