elasticsearch與mysql數(shù)據(jù)更新/修改同步(logstash)

單表同步:http://www.reibang.com/p/2ae44704f887
多表同步:http://www.reibang.com/p/773e4ecfa667

1 修改pipelines.yml

進入docker容器沪伙,修改/usr/share/logstash/config/pipelines.yml抹恳,新增table2配置

- pipeline.id: table1
  path.config: "/etc/logstash/pipeline/logstash.conf"
- pipeline.id: table2
  path.config: "/etc/logstash/pipeline/update.conf"

2 創(chuàng)建update.conf配置文件

input {
 stdin { }
    jdbc {
        #注意mysql連接地址一定要用ip温眉,不能使用localhost等
        jdbc_connection_string => "jdbc:mysql://172.17.0.3:3306/lmrs"
        jdbc_user => "xxxx"
        jdbc_password => "xxxx"
        #數(shù)據(jù)庫重連嘗試
        connection_retry_attempts => "3"
        #數(shù)據(jù)庫連接可用校驗超時時間蔗草,默認為3600s
        jdbc_validation_timeout => "3600"
        #這個jar包的地址是容器內的地址
        jdbc_driver_library => "/etc/logstash/pipeline/mysql-connector-java-8.0.24.jar"
        jdbc_driver_class => "com.mysql.jdbc.Driver"
        #開啟分頁查詢(默認是false)
        jdbc_paging_enabled => "true"
        #單次分頁查詢條數(shù)(默認100000,字段較多的話枕扫,可以適當調整這個數(shù)值)
        jdbc_page_size => "50000"
        #執(zhí)行的sql語句
        statement => "SELECT a.id,a.`name`,a.long_name,a.brand_id,a.three_category_id as category_id,a.shop_id,a.price,a.sold_count,a.review_count,a.`status`,a.create_time,a.last_time,b.`name` as category,b.path FROM lmrs_products as a LEFT JOIN lmrs_product_categorys as b ON a.three_category_id = b.id where a.last_time > :sql_last_value"
        #需要記錄查詢結果某字段的值時宪卿,此字段為true幌蚊,否則默認tracking_colum為timestamp的值
        use_column_value => true
        #是否將字段名轉為小寫,默認為true(如果具備序列化或者反序列化未斑,建議設置為false)
        lowercase_column_names => false
        #需要記錄的字段咕宿,同于增量同步,需要是數(shù)據(jù)庫字段
        tracking_column =>last_time
        #記錄字段的數(shù)據(jù)類型
        tracking_column_type => "timestamp"
        #上次數(shù)據(jù)存放位置
        record_last_run => true
        #上一個sql_last_value的存放路徑蜡秽,必須在文件中指定字段的初始值
        last_run_metadata_path => "/etc/logstash/pipeline/update.txt"
        #是否清除last_run_metadata_path的記錄府阀,需要增量同步這個字段的值必須為false
        clean_run => false
        #同步的頻率(分 時 天 月 年)默認為每分鐘同步一次
        schedule => "* * * * *"
        type => "_doc"
    }
 }

 filter {
   jdbc_streaming {
     jdbc_driver_library => "/etc/logstash/pipeline/mysql-connector-java-8.0.24.jar"
     jdbc_driver_class => "com.mysql.jdbc.Driver"
     jdbc_connection_string => "jdbc:mysql://172.17.0.3:3306/lmrs"
     jdbc_user => "xxxx"
     jdbc_password => "xxxx"
     parameters => {"product_id"=>"id"}
     statement => "select `name`,price from lmrs_product_skus where product_id = :product_id"
     target => "skus"
   }

  jdbc_streaming {
    jdbc_driver_library => "/etc/logstash/pipeline/mysql-connector-java-8.0.24.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://172.17.0.3:3306/lmrs"
    jdbc_user => "dark"
    jdbc_password => "mysql"
    parameters => {"product_id"=>"id"}
    statement => "SELECT c.`name`,f.`name` as `value` FROM (SELECT a.name,a.id FROM lmrs_attributes as a LEFT JOIN lmrs_product_attribute_values as b on a.id = b.attribute_id WHERE b.product_id = :product_id) as c LEFT JOIN(SELECT d.attribute_id,d.name FROM lmrs_attribute_values as d LEFT JOIN lmrs_product_attribute_values as e ON d.id = e.attribute_value_id WHERE product_id = :product_id) as f ON c.id = f.attribute_id GROUP BY f.name"
    target => "attributes"
  }
 }

 output {
     elasticsearch {
        #注意es連接地址一定要用ip,不能使用localhost等
        hosts => "172.17.0.7:9200"
        index => "products"
        document_type => "_doc"
        document_id => "%{id}"
     }
     stdout {
        codec => json_lines
    }
}

注意創(chuàng)建update.txt并給予相關權限芽突。

思路:
主要指定的同步字段為修改時間字段(last_time)试浙,通過該字段來判斷數(shù)據(jù)是否更新。
注意數(shù)據(jù)類型為timestamp寞蚌。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
禁止轉載田巴,如需轉載請通過簡信或評論聯(lián)系作者。
  • 序言:七十年代末挟秤,一起剝皮案震驚了整個濱河市壹哺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌艘刚,老刑警劉巖管宵,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異攀甚,居然都是意外死亡啄糙,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進店門云稚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來隧饼,“玉大人,你說我怎么就攤上這事静陈⊙嘌悖” “怎么了诞丽?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長拐格。 經(jīng)常有香客問我僧免,道長,這世上最難降的妖魔是什么捏浊? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任懂衩,我火速辦了婚禮,結果婚禮上金踪,老公的妹妹穿的比我還像新娘浊洞。我一直安慰自己,他們只是感情好胡岔,可當我...
    茶點故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布法希。 她就那樣靜靜地躺著,像睡著了一般靶瘸。 火紅的嫁衣襯著肌膚如雪苫亦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天怨咪,我揣著相機與錄音屋剑,去河邊找鬼。 笑死诗眨,一個胖子當著我的面吹牛唉匾,可吹牛的內容都是我干的。 我是一名探鬼主播辽话,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼肄鸽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了油啤?” 一聲冷哼從身側響起典徘,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎益咬,沒想到半個月后逮诲,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡幽告,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年梅鹦,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片冗锁。...
    茶點故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡齐唆,死狀恐怖,靈堂內的尸體忽然破棺而出冻河,到底是詐尸還是另有隱情箍邮,我是刑警寧澤茉帅,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站锭弊,受9級特大地震影響堪澎,放射性物質發(fā)生泄漏。R本人自食惡果不足惜味滞,卻給世界環(huán)境...
    茶點故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一樱蛤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧剑鞍,春花似錦昨凡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽子房。三九已至形用,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間证杭,已是汗流浹背田度。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留解愤,地道東北人镇饺。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像送讲,于是被迫代替她去往敵國和親奸笤。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,573評論 2 359

推薦閱讀更多精彩內容