1. 程式人生 > >27.logstash-output-mongodb實現Mysql到Mongodb資料同步(ES與非關係型資料庫同步)

27.logstash-output-mongodb實現Mysql到Mongodb資料同步(ES與非關係型資料庫同步)

本文主要講解如何通過logstash-output-mongodb外掛實現Mysql與Mongodb資料的同步。源資料儲存在Mysql,目標資料庫為非關係型資料庫Mongodb。

0、前提

1)已經安裝好源資料庫:Mysql; 
2)已經安裝好目的資料庫:Mongodb; 
3)已經安裝好logstash及相關外掛logstash-output-mongodb 
安裝步驟參考:http://blog.csdn.net/laoyang360/article/details/65448962

1、同步conf配置詳解

[root@la bin]# cat ./logstash_jdbc_mongo/jdbc_mongo.conf
input {
  stdin {
  }
  jdbc {
  ‘# 源Mysql資料庫地址
jdbc_connection_string => "jdbc:mysql://20.18.11.4:3306/tech?zeroDateTimeBehavior=convertToNull" #源Mysql的使用者名稱和密碼 jdbc_user => "root" jdbc_password => "rot123"#true代表記錄最後儲存的關聯列值 record_last_run => "true" use_column_value => "true" tracking_column => "id"#儲存位置 last_run_metadata_path =>
"/opt/logstash/bin/logstash_jdbc_mongo/mongo_info" clean_run => "false"#jdbc路徑地址 jdbc_driver_library => "/home/lib/mysql-connector-java-5.1.38.jar"# the name of the driver class for mysql jdbc_driver_class => "com.mysql.jdbc.Driver" jdbc_paging_enabled => "true" jdbc_page_size =>
"500"#以下對應著要執行的sql的絕對路徑。 statement_filepath => "/opt/logstash/bin/logstash_jdbc_mongo/jdbc_mongo.sql"#定時欄位 各欄位含義(由左至右)分、時、天、月、年,全部為*預設含義為每分鐘都更新 schedule => "* * * * *" } } filter { json { source => "message" remove_field => ["message"] } } ’#輸出mongodb的配置 output { stdout { codec => rubydebug } mongodb { ‘#對應mongodb的輸出集合 collection => "N_CLASS"#對應mongodb的輸出資料庫名稱 database => "data" uri => "mongodb://110.0.12.45:27017" } }

2、需要同步表的sql

[[email protected]_jdbc_mongo]# cat jdbc_mongo.sql
select
*
from n_class
where n_class.id > :sql_last_value

3、小結

以上實現了Mysql資料庫中的一個庫表table 與 Mongodb中的一個集合collection之間的全量、增量同步操作。 
全量的實現:通過sql語句實現; 
增量的實現:通過定時、sql_last_value實現。 
同步的時候,無需在mongodb做任何操作,同步後,既可以在mongodb的windows客戶端:Robomongo看到同步後新增的集合collection。

4、題外話(歡迎留言討論)

PS:以下連結涉及演講主題“NoSQL之王——一分鐘從關係型遷移到MongoDB”,但是目前為止,沒有找到相關細節介紹PPT等資料。博友,誰有參與或者更好的同步方案歡迎評論探討。 
http://geek.csdn.net/news/detail/186266

相關推薦

27.logstash-output-mongodb實現Mysql到Mongodb資料同步(ES關係型資料庫同步)

本文主要講解如何通過logstash-output-mongodb外掛實現Mysql與Mongodb資料的同步。源資料儲存在Mysql,目標資料庫為非關係型資料庫Mongodb。0、前提1)已經安裝好源資料庫:Mysql; 2)已經安裝好目的資料庫:Mongodb; 3)已經

29.mongo-connector實現MongoDBelasticsearch實時同步(ES關係型資料庫同步)

引言:驗證表明:mongo-connector工具支援MongoDB與ES之間的實時增insert、刪delete、改update操作。 對於歷史資料,mongo-connector工具不能同步到ES中,根因是本身工具不支援(初步界定),還是沒有這種場景,待查(進一步研究後再

mongodb 3.2 實戰(一)關係型資料庫設計,如何進行mongo的資料庫設計?

mongo 於2015,12,8 正式釋出了3.2的穩定版,這次重大的更新後,主要包括以下幾個比較令人興奮的點。 1.wiredtiger 引擎 在3.0釋出時,wiredtiger作為資料引擎之一。3.2之後wiredtiger作為建立資料庫的預設

關係型資料關係型資料庫NoSql

最近經常聽到NoSql,不知道是什麼意思,百度之,發現NoSql就是泛指的非關係型資料庫。所以學習了一下,發現非關係型資料庫最近非常的火,特別適用於某些應用如SNS網站,所以學習了NoSql與我們常用的關係型資料庫之間的差別。 總的來說 1.非關係型資料庫不需要表與表之間

ElasticSearch5+logstashlogstash-input-jdbc實現mysql資料同步

在實現的路上遇到了各種坑,再次驗證官方文件只能產考不能全信! ElasticSearch安裝就不說了上一篇有說! 安裝logstash 官方:https://www.elastic.co/guide/en/logstash/current/installing-logstash.html 1

ElasticSearch5+logstash-input-jdbc實現mysql資料同步及躺坑彙總

轉載來源 http://www.cnblogs.com/phpshen/p/6098333.html ElasticSearch安裝就不說了上一篇有說! 安裝logstash 官方:https://www.elastic.co/guide/en/logstash/cur

Go語言基礎(十五)—— Go語言實現json資料檔案讀取儲存

案例: package main import ( "os" "fmt" "encoding/json" "time" ) type Person2 struct { Name string Age int Sex string Hobby []string } fun

21.go-mysql-elasticsearch實現mysql elasticsearch實時同步(ES關係型資料庫同步)

引言:go-mysql-elasticsearch 是國內作者開發的一款外掛。測試表明:該外掛優點:能實現同步增、刪、改、查操作。不足之處(待完善的地方): 1、仍處理開發、相對不穩定階段; 2、沒有日誌,不便於排查問題及檢視同步結果。 本文深入詳解了外掛的安裝、使用、增刪改

JQuery 實現表格資料行上移下移效果

效果展示 程式碼實現 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Bootstrap 例項 - 條紋表格</t

5.關係型資料庫(Nosql)之mongodb:建立集合,備份匯入匯出, 資料還原,匯入匯出

1固定集合固定集合值得是事先建立而且大小固定的集合2固定集合的特徵:固定集合很像環形佇列,如果空間不足,最早文件就會被刪除,為新的文件騰出空間。一般來說,固定集合適用於任何想要自動淘汰過期屬性的場景

Python3.6實現PostgreSql資料表備份恢復

sql_ = ['test_error.sql', 'test_post.sql', 'test_pre.sql', 'test_process.sql', 'test.sql'] for x in sql_: a = "pg_d

在win32中實現瀏覽資料夾功能刪除檔案功能

#include <windows.h> void CPageFile::FolderBrowsing() { PIDLIST_ABSOLUTE pIDLIST; BROW

25.logstash一次同步Mysql多張表到ES(ES關係型資料庫同步)

題記一次同步多張表是開發中的一般需求。之前研究了很久找到方法,但沒有詳細總結。 博友前天線上提問,說明這塊理解的還不夠透徹。 我整理下, 一是為了儘快解決博友問題, 二是加深記憶,便於未來產品開發中快速上手。1、同步原理原有ES專欄中有詳解,不再贅述。詳細請參考我的專欄: 深

阻塞阻塞,同步異步

通過 部件 一個 socket 沒有 事件觸發 sel syn 就會 在進行網絡編程時,我們常常見到同步(Sync)/異步(Async),阻塞(Block)/非阻塞(Unblock)四種調用方式:同步: 所謂同步,就是在發出一個功能調用時,在沒有得到結果之前,

聊聊關係型資料庫MongoDB索引

今天和大家簡單聊下Mongo資料庫的索引。 Mongo索引是基於B-tree,儲存在一個易於遍歷讀取的資料集合中,它是對資料庫表中一列或多列的值進行排序的一種結構。 資料庫的索引和我們書籍目錄相似,有了索引,我們不需要翻閱整本書,只需要檢視目錄就知道我們要的內容在哪兒,並且直接定位到,這種

關係型資料庫mongodb的語法模式

from pymongo import MongoClient #連線 conn = MongoClient('127.0.0.1', 27017) #進入資料庫 db = conn.edianzu #連線mydb資料庫,沒有則自動建立 #進入集合 pinglun =

socket阻塞阻塞,同步非同步、I/O模型(轉載只為查閱方便,若有侵權,立刪)

socket阻塞與非阻塞,同步與非同步 作者:huangguisu     1. 概念理解        在進行網路程式設計時,我們常常見到同步(Sync)/非同步(Async),阻塞(Block)/非阻塞(Unbl

圖解阻塞阻塞&同步非同步

一、阻塞I/O模型 二、非阻塞I/O模型 三、非同步I/O模型 四、同步I/O模型                    

Linux下阻塞阻塞,同步非同步的關係及IO模型

一、阻塞與非阻塞,同步與非同步的關係 1、同步   同步,就是在發出一個功能呼叫時,在沒有得到結果之前,該呼叫就不返回。也就是說事情必須一件一件地做,等前一件做完了才能做下一件事。 2、非同步   非同步,就是在發出一個功能呼叫時,呼叫者不會立刻得到結果。實際處理這個呼叫的部

阻塞阻塞,同步非同步

Java的IO有三種:IO、NIO、AIO 第一種是Java剛開始就出現的IO即BIO(同步阻塞IO),我們一般常說的IO就是這種IO,這種IO相對來說比較簡單,基於流模型,提供一種IO操作。互動方式是同步、阻塞,呼叫的順序是線性順序,這種IO有一個好處就是,程式碼簡單,但是缺點就是IO的效率較