动态

详情 返回 返回

使用 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

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 等搜索引擎的技術支持工作,服務國內私有化部署的客户。
原文:https://infinilabs.cn/blog/2025/migrating-data-from-mongodb-t...
user avatar aijianshendexuegao 头像 justbecoder 头像 zxl20070701 头像 ninedata 头像 xingguangshanshan 头像
点赞 5 用户, 点赞了这篇动态!
点赞

Add a new 评论

Some HTML is okay.