国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Logstash數(shù)據(jù)同步

這篇具有很好參考價值的文章主要介紹了Logstash數(shù)據(jù)同步。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Logstash 是 Elastic 技術(shù)棧中的一個技術(shù),它是一個數(shù)據(jù)采集引擎,可以從數(shù)據(jù)庫采集數(shù)據(jù)到 ES 中??梢酝ㄟ^設(shè)置 自增 ID 主鍵 或 更新時間 來控制數(shù)據(jù)的自動同步:

  • 自增 ID 主鍵:Logstatsh 會有定時任務(wù),如果發(fā)現(xiàn)有主鍵的值大于先前同步記錄的主鍵值,就會將對應(yīng)的增量數(shù)據(jù)同步到 ES 中
  • 更新時間:其實原理與主鍵類似,不過如果設(shè)置使用主鍵作為依據(jù)的話,那么數(shù)據(jù)庫的數(shù)據(jù)更新就不會被識別從而更新到 ES 中。

一、安裝

1. 下載地址:https://www.elastic.co/cn/downloads/past-releases#logstash

  • 注:使用Logstatsh的版本號與elasticsearch版本號需要保持一致

2. 上傳并解壓

先上傳到服務(wù)器 /home/software/ 下,然后解壓,并將解壓后的文件夾移動到 /usr/local/ 下

tar -zxvf logstash-7.6.2.tar.gz

mv logstash-7.6.2 /usr/local/

二、配置

1. 首先在 Elasticsearch 中創(chuàng)建一個索引:didiok-items

2. 在 /usr/local/logstash-7.6.2/ 下創(chuàng)建文件夾 sync/

將數(shù)據(jù)庫驅(qū)動 mysql-connector-java-5.1.41.jar 包上傳到??/usr/local/logstash-7.6.2/sync/ 下,

cd /usr/local/logstash-7.6.2/
mkdir sync
cd sync/

Logstash數(shù)據(jù)同步

3. 編寫數(shù)據(jù)同步的SQL腳本

 SELECT
     i.id as id,
     i.item_name as itemName,
     i.sell_counts as sellCounts,
     ii.url as imgUrl,
     tempSpec.price_discount as price,
     i.updated_time as updated_time
 FROM
     items i
 LEFT JOIN
     items_img ii
 on
     i.id = ii.item_id
 LEFT JOIN
     (SELECT item_id,MIN(price_discount) as price_discount from items_spec GROUP BY item_id) tempSpec
 on
     i.id = tempSpec.item_id
 WHERE
     ii.is_main = 1
     and
     i.updated_time >= :sql_last_value

# :sql_last_value 是 logstash 每次同步完成之后保存的的邊界值,這里保存的是 updated_time ,用于下次數(shù)據(jù)同步時,大于等于 updated_time 的數(shù)據(jù)才會進行同步

將sql腳本?保存到 /usr/local/logstash-7.6.2/sync/didiok-items.sql 文件中?

4.? 在?sync/ 下創(chuàng)建 配置文件?logstash-db-sync.conf,內(nèi)容如下:

input {
    jdbc {
        # 設(shè)置 MySql/MariaDB 數(shù)據(jù)庫url以及數(shù)據(jù)庫名稱
        jdbc_connection_string => "jdbc:mysql://192.168.1.6:3306/didiok-shop-dev?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true"
        # 用戶名和密碼
        jdbc_user => "root"
        jdbc_password => "root"
        # 數(shù)據(jù)庫驅(qū)動所在位置,可以是絕對路徑或者相對路徑
        jdbc_driver_library => "/usr/local/logstash-7.6.2/sync/mysql-connector-java-5.1.41.jar"
        # 驅(qū)動類名
        jdbc_driver_class => "com.mysql.jdbc.Driver"
        # 開啟分頁
        jdbc_paging_enabled => "true"
        # 分頁每頁數(shù)量,可以自定義
        jdbc_page_size => "10000"
        # 執(zhí)行的sql文件路徑
        statement_filepath => "/usr/local/logstash-7.6.2/sync/didiok-items.sql"
        # 設(shè)置定時任務(wù)間隔  含義:分、時、天、月、年,全部為*默認含義為每分鐘跑一次任務(wù)
        schedule => "* * * * *"
        # 索引類型
        type => "_doc"
        # 是否開啟記錄上次追蹤的結(jié)果,也就是上次更新的時間,這個會記錄到 last_run_metadata_path 的文件
        use_column_value => true
        # 記錄上一次追蹤的結(jié)果值
        last_run_metadata_path => "/usr/local/logstash-7.6.2/sync/track_time"
        # 如果 use_column_value 為true, 配置本參數(shù),追蹤的 column 名,可以是自增id或者時間
        tracking_column => "updated_time"
        # tracking_column 對應(yīng)字段的類型
        tracking_column_type => "timestamp"
        # 是否清除 last_run_metadata_path 的記錄,true則每次都從頭開始查詢所有的數(shù)據(jù)庫記錄
        clean_run => false
        # 數(shù)據(jù)庫字段名稱大寫轉(zhuǎn)小寫
        lowercase_column_names => false
    }
}
output {
    elasticsearch {
        # es地址
        hosts => ["192.168.1.187:9200"]
        # 同步的索引名
        index => "didiok-items"
        # 設(shè)置_docID和數(shù)據(jù)庫中的id相同
        document_id => "%{id}"

    }
    # 日志輸出
    stdout {
        codec => json_lines
    }}

5. 啟動 logstash

cd /usr/local/logstash-7.6.2/bin

./logstash -f /usr/local/logstash-7.6.2/sync/logstash-db-sync.conf

如果啟動過程中報錯如下:

Logstash數(shù)據(jù)同步

報這個錯是虛擬機內(nèi)存不足,是因為這個Logstash要的內(nèi)存太大了。這個插件在初始化的時候要了一個g的內(nèi)存,但是虛擬機沒有這么多的內(nèi)存,所以把這個內(nèi)存改小就行了。

(?。。〉?,這樣好像會導(dǎo)致 logstash 啟動不了,還是想辦法擴大內(nèi)存吧 ,下面的方法僅供參考)

修改?/usr/local/logstash-7.6.2/config/jvm.options ,這里原來是 1g,修改成 256m:

Logstash數(shù)據(jù)同步

三、在自定義模板中配置中文分詞器

首先在 ES 中創(chuàng)建索引 didiok-items,之后啟動 logstash,然后再進行以下操作。

1.?查看Logstash默認模板

請求方式:GET

路徑:http://localhost:9200/_template/logstash

2. 將查詢出來的模板復(fù)制出來,進行修改如下(這里只修改了3處):

{
? ? "order": 0,
? ? "version": 1,            # 修改1
? ? "index_patterns": ["*"], # 修改2
? ? "settings": {
? ? ? ? "index": {
? ? ? ? ? ? "refresh_interval": "5s"
? ? ? ? }
? ? },
? ? "mappings": {
? ? ? ? "_default_": {
? ? ? ? ? ? "dynamic_templates": [
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? "message_field": {
? ? ? ? ? ? ? ? ? ? ? ? "path_match": "message",
? ? ? ? ? ? ? ? ? ? ? ? "match_mapping_type": "string",
? ? ? ? ? ? ? ? ? ? ? ? "mapping": {
? ? ? ? ? ? ? ? ? ? ? ? ? ? "type": "text",
? ? ? ? ? ? ? ? ? ? ? ? ? ? "norms": false
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? "string_fields": {
? ? ? ? ? ? ? ? ? ? ? ? "match": "*",
? ? ? ? ? ? ? ? ? ? ? ? "match_mapping_type": "string",
? ? ? ? ? ? ? ? ? ? ? ? "mapping": {
? ? ? ? ? ? ? ? ? ? ? ? ? ? "type": "text",
? ? ? ? ? ? ? ? ? ? ? ? ? ? "norms": false,
? ? ? ? ? ? ? ? ? ? ? ? ? ? "analyzer": "ik_max_word",  # 修改3 加入中文分詞器
? ? ? ? ? ? ? ? ? ? ? ? ? ? "fields": {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "keyword": {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "type": "keyword",
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "ignore_above": 256
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ],
? ? ? ? ? ? "properties": {
? ? ? ? ? ? ? ? "@timestamp": {
? ? ? ? ? ? ? ? ? ? "type": "date"
? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? "@version": {
? ? ? ? ? ? ? ? ? ? "type": "keyword"
? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? "geoip": {
? ? ? ? ? ? ? ? ? ? "dynamic": true,
? ? ? ? ? ? ? ? ? ? "properties": {
? ? ? ? ? ? ? ? ? ? ? ? "ip": {
? ? ? ? ? ? ? ? ? ? ? ? ? ? "type": "ip"
? ? ? ? ? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? ? ? ? ? "location": {
? ? ? ? ? ? ? ? ? ? ? ? ? ? "type": "geo_point"
? ? ? ? ? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? ? ? ? ? "latitude": {
? ? ? ? ? ? ? ? ? ? ? ? ? ? "type": "half_float"
? ? ? ? ? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? ? ? ? ? "longitude": {
? ? ? ? ? ? ? ? ? ? ? ? ? ? "type": "half_float"
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
? ? },
? ? "aliases": {}
}

之后將其保存為? /usr/local/logstash-7.6.2/sync/logstash-ik.json

3. 在?/usr/local/logstash-7.6.2/sync/logstash-db-sync.conf 文件中進行修改,加入以下內(nèi)容:

# 定義模板名稱
template_name => "myik"
# 模板所在位置
template => "/usr/local/logstash-7.6.2/sync/logstash-ik.json"
# 重寫模板
template_overwrite => true
# 默認為true,false關(guān)閉logstash自動管理模板功能,如果自定義模板,則設(shè)置為false
manage_template => false

Logstash數(shù)據(jù)同步

4.?重新運行Logstash進行同步

./logstash -f /usr/local/logstash-7.6.2/sync/logstash-db-sync.conf

中文分詞器沒有設(shè)置成功??

試試下面的解決方案:

先通過postman請求 http://192.168.1.187:9200/_template/logstash,獲取的json放入logstash-ik.json中,然后在 /usr/local/logstash-7.6.2/sync/logstash-db-sync.conf 文件中設(shè)置manage_template => true,然后啟動logstash,啟動后 ES 的 didiok-items?索引是不正確的。

刪除索引,并重新創(chuàng)建索引?didiok-items。

然后 postman 調(diào) http://192.168.1.187:9200/_template/myik 拿到的 myik 的 json 重新放入logstash-ik.json中,配置 logstash-db-sync.conf? 改為 manage_template => false,

再次啟動logstash就能在?didiok-items?的mapping中顯示中文分詞器了。

Logstash數(shù)據(jù)同步文章來源地址http://www.zghlxwxcb.cn/news/detail-456340.html

到了這里,關(guān)于Logstash數(shù)據(jù)同步的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Logstash從mysql同步數(shù)據(jù)到es

    Logstash從mysql同步數(shù)據(jù)到es

    Logstash 是免費且開放的服務(wù)器端數(shù)據(jù)處理管道,能夠從多個來源采集數(shù)據(jù),轉(zhuǎn)換數(shù)據(jù),然后將數(shù)據(jù)發(fā)送到您最喜歡的“存儲庫”中。 Logstash 是一個功能強大的工具,可與各種部署集成。 它提供了大量插件,可幫助你解析,豐富,轉(zhuǎn)換和緩沖來自各種來源的數(shù)據(jù)。 如果你的數(shù)

    2024年02月08日
    瀏覽(28)
  • mysql同步數(shù)據(jù)到es之logstash

    mysql同步數(shù)據(jù)到es之logstash

    1.使用 logstash 如果是歷史數(shù)據(jù)同步我們可以用logstash,最快同步頻率每分鐘一次,如果對時效性要求高,慎用 2.使用 canal 實時同步,本文章未演示 logstash 特性: 無需開發(fā),僅需安裝配置logstash即可; 凡是SQL可以實現(xiàn)的logstash均可以實現(xiàn)(本就是通過sql查詢數(shù)據(jù)) 支持每次全量同步或

    2023年04月08日
    瀏覽(19)
  • logstash同步數(shù)據(jù)從kafka到es集群

    logstash同步數(shù)據(jù)從kafka到es集群

    背景:需求是這樣的,原始文件是txt文件(每天300個文件),最終想要的結(jié)果是每天將txt中的數(shù)據(jù)加載到es中,開始的想法是通過logstash加載數(shù)據(jù)到es中,但是對logstash不太熟悉,不知道怎么講程序弄成讀取一個txt文件到es中以后,就將這個txt原始文件備份并且刪除掉,然后就想

    2024年02月15日
    瀏覽(17)
  • Docker部署Logstash同步Mysql數(shù)據(jù)到ES

    Docker部署Logstash同步Mysql數(shù)據(jù)到ES

    頁面訪問 ip:9200端口,出現(xiàn)下面頁面部署成功 成功日志

    2024年04月13日
    瀏覽(19)
  • 【elasticsearch專題】:Logstash從入門到同步MySQL數(shù)據(jù)

    【elasticsearch專題】:Logstash從入門到同步MySQL數(shù)據(jù)

    ??Elasticsearch是在數(shù)據(jù)處理生態(tài)系統(tǒng)中擔(dān)任一個開源的分布式 搜索 和 分析 引擎的角色,專為 存儲 、 檢索 和分析大量的數(shù)據(jù)而打造。與此相伴的是Kibana,一個開源數(shù)據(jù)可視化平臺,用于以優(yōu)雅的方式展示Elasticsearch中的數(shù)據(jù),并賦予用戶創(chuàng)建儀表盤、圖表和報告的能力。然

    2024年02月04日
    瀏覽(19)
  • 通過logstash實現(xiàn)mysql與es的雙向數(shù)據(jù)同步

    通過logstash實現(xiàn)mysql與es的雙向數(shù)據(jù)同步

    參考題目 一種基于MySQL和Elasticsearch的數(shù)據(jù)同步方法及系統(tǒng) 基于MySQL和Elasticsearch的數(shù)據(jù)同步方法 一種基于MySQL和Elasticsearch的數(shù)據(jù)同步系統(tǒng) 基于MySQL和Elasticsearch的數(shù)據(jù)同步技術(shù) 目錄 1【理論調(diào)研】 方案1:使用Logstash實現(xiàn)數(shù)據(jù)同步 方案2:使用Canal實現(xiàn)數(shù)據(jù)同步 方案3:使用Debe

    2024年02月15日
    瀏覽(21)
  • 使用Logstash同步mysql數(shù)據(jù)到Elasticsearch(親自踩坑)

    使用Logstash同步mysql數(shù)據(jù)到Elasticsearch(親自踩坑)

    這篇文章主要介紹了如何使用Logstash同步mysql數(shù)據(jù)到Elasticsearch(親自踩坑),如果幫助到了大家,希望用你毛茸茸的小手點個贊??;如有錯誤或未考慮周全的地方,希望在評論區(qū)留言?? Logstash官方文檔提供了解決方案 一. 安裝Logstash Logstash下載地址 下載版本一定要和Elastics

    2024年04月09日
    瀏覽(19)
  • Logstash 同步MySQL數(shù)據(jù) 至 開啟HTTPS的ElasticSearch

    最近因為一些原因被迫學(xué)習(xí)了一周多的ElasticSearch,記錄一下遇到的小問題。 此文件我理解為是Logstash的 * 可編譯文件 *,我們通過編寫此文件然后運行l(wèi)ogstash去編譯執(zhí)行來讓我們的數(shù)據(jù)按照自身期望的去傳輸。該文件主要包括input、filter和output三個部分,其中input和output是必要

    2024年02月01日
    瀏覽(24)
  • logstash同步mysql數(shù)據(jù)到es(三、es模板問題)

    ?相關(guān)問題匯總: logstash同步mysql數(shù)據(jù)到es(一、es模板問題,請求返回400) logstash同步mysql數(shù)據(jù)到es(二、jdbc_driver_library問題)_(please check user and group permissions for the p-CSDN博客 logstash同步mysql數(shù)據(jù)到es(三、es模板問題)-CSDN博客 使用docker實現(xiàn)logstash同步mysql到es-CSDN博客 [INFO ] 2023-12-11 09

    2024年01月17日
    瀏覽(19)
  • Observability:為 Logstash 輸出配置 SSL/TLS - Elastic Agent

    Observability:為 Logstash 輸出配置 SSL/TLS - Elastic Agent

    在我之前的文章 “Observability:如何把 Elastic Agent 采集的數(shù)據(jù)輸入到 Logstash 并最終寫入到 Elasticsearch”,我詳細介紹了如何使用 Elastic Agents 采集數(shù)據(jù)并把數(shù)據(jù)通過 Logstash 發(fā)送至 Elasticsearch。細心的開發(fā)者可能注意到從 Elastic Agents 到 Logstash 直接的鏈接它不是加密的。這個在實

    2024年02月11日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包