大家好!在前面的文章中,我們已經詳細介紹了如何通過 Logstash 和 Canal 工具實現 MySQL 數據向 Easysearch 的遷移。如果您正在使用 MongoDB 作為數據存儲,并希望將其數據遷移到 Easysearch 中,這篇指南或許能為您提供一些幫助。
為了實現 MongoDB 與 Easysearch 之間的數據遷移,Logstash 依然是一個非常成熟穩定的工具選擇。在接下來的內容中,我們將介紹如何利用 Logstash 實現 MongoDB 到 Easysearch 的數據遷移。
MongoDB
MongoDB 作為一款功能強大的 NoSQL 數據庫,與主流數據庫系統一樣支持 JDBC 連接方式。這意味著我們可以通過 Logstash 的 JDBC 插件實現與 MongoDB 的連接,進而將數據遷移至 Easysearch。
測試數據如下
Logstash
使用 JDBC 連接數據庫,要下載對應數據庫的 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 => falsessl_verification_mode => noneuser => "admin"password => "admin-test"}
}
- jdbc_driver_library:指定解壓后的 jar 包地址
- statement:指定要遷移的 collection
- filter:可選,默認會把源字段全部放到 document 字段下,改成符合 ES 的習慣
- index:遷移數據進入的索引
運行 Logstash 進行數據遷移。
使用 INFINI Console 查看索引數據。