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實現MongoDB與elasticsearch實時同步(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+logstash的logstash-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的效率較