使用 Logstash 迁移 MongoDB 数据到 Easysearch

大家好!在前面的文章中,我们已经详细介绍了如何通过 Logstash 和 Canal 工具实现 MySQL 数据向 Easysearch 的迁移。如果您正在使用 MongoDB 作为数据存储,并希望将其中的数据迁移到 Easysearch 中,这篇指南或许能为您提供一些帮助。

为了实现 MongoDB 与 Easysearch 之间的数据迁移,Logstash 依然是一个非常成熟稳定的工具选择。在接下来的内容中,我们将介绍如何利用 Logstash 实现 MongoDB 到 Easysearch 的数据迁移。

MongoDB

MongoDB 作为一款功能强大的 NoSQL 数据库,与主流数据库系统一样支持 JDBC 连接方式。这意味着我们可以通过 Logstash 的 JDBC 插件实现与 MongoDB 的连接,从而将数据迁移至 Easysearch。

MongoDB 测试数据如下

Logstash

本次测试使用的 Logstash 版本为 8.17.4 。使用 JDBC 连接 MongoDB 数据库,要下载对应数据库的 MongoDB JDBC Driver,下载后解压。

测试配置文件 mongodb_to_easysearch.conf

plain 复制代码
input {
  jdbc{
    jdbc_driver_class => "Java::com.wisecoders.dbschema.mongodb.JdbcDriver"
    jdbc_driver_library => "/usr/share/logstash/driver/mongojdbc4.8.3.jar"
    jdbc_user => "user"
    jdbc_password => "usertest"
    jdbc_connection_string => "jdbc:mongodb://localhost:27017/test"
    statement => "db.collection_test.find({},{'_id': false})"
  }
}

filter {
    mutate {
        rename => {
            "[document][tags]" => "tags"
            "[document][type]" => "type"
            "[document][summary]" => "summary"
            "[document][username]" => "username"
            "[document][content]" => "content"
            "[document][category]" => "category"
            "[document][created]" => "created"
            "[document][url]" => "url"
            "[document][id]" => "id"
            "[document][title]" => "title"
        }
        remove_field => [ "document" ]
    }
}

output {
    elasticsearch {
        hosts => ["https://127.0.0.1:9200"]
        index => "mongo_doc"
        manage_template => false
        ssl_verification_mode => none
        user => "admin"
        password => "admin-test"
    }
}
  • jdbc_driver_library:指定解压后的 jar 包地址
  • statement:指定要迁移的 collection
  • filter:可选,默认会把源字段全部放到 document 字段下,改成符合 ES 的习惯
  • index:迁移数据进入的索引

运行 Logstash 进行数据迁移。

使用 INFINI Console 查看索引数据。可以看到目标数据已经成功迁移至 Easysearch。

作者:杨帆,极限科技(INFINI Labs)高级解决方案架构师、《老杨玩搜索》栏目 B 站 UP 主,拥有十余年金融行业服务工作经验,熟悉 Linux、数据库、网络等领域。目前主要从事 Easysearch、Elasticsearch 等搜索引擎的技术支持工作,服务国内私有化部署的客户。

原文:infinilabs.cn/blog/2025/m...

相关推荐
薛定谔的悦2 天前
光储充一体机从主控到执行单元的双层架构
数据库·mongodb·架构
ClouGence6 天前
MongoDB 双向同步如何防止数据循环?(附实操指南)
数据库·mongodb
码农阿豪7 天前
MongoDB迁移到金仓数据库:商品属性继续灵活存,订单报表交给 SQL
数据库·sql·mongodb
todoitbo8 天前
MongoDB迁移之后,Spring Data 和 Hibernate 各自接哪类请求
大数据·数据库·mongodb·spring·hibernate·金仓数据库
云边有个稻草人8 天前
MongoDB迁移不止是数据搬家:用KingbaseES重构文档数据开发
数据库·mongodb·重构·国产数据库·信创数据库·数据库国产化·mongodb迁移
后台模板学习11 天前
MongoDB 与 MySQL 在 IM 即时聊天场景中该
数据库·mysql·mongodb
ChaITSimpleLove11 天前
Layout.WatchDog.NET 1.5.0-beta.2 发布:.NET 实时应用监控再升级,新增资源监控看板与 SQLite 支持
mysql·mongodb·pgsql·mssql·litedb\sqlite·.net轻量级日志记录器·node资源监控看板
编码追梦人14 天前
基于 ESP32-S3 的便携式多参数环境监护仪设计:从硬件选型到 FreeRTOS 多任务落地
数据库·单片机·嵌入式硬件·mongodb·esp32·freertos·低功耗设计
Brilliantwxx17 天前
【STM32】 独立看门狗 IWDG 深度详解:从硬件结构到工程实战
数据库·stm32·单片机·嵌入式硬件·mongodb
Wang's Blog18 天前
Java 项目实战: 交友项目 - MongoDB集群:概述
java·mongodb·交友