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

ELK增量同步數(shù)據(jù)【MySql->ES】

這篇具有很好參考價(jià)值的文章主要介紹了ELK增量同步數(shù)據(jù)【MySql->ES】。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、前置條件

? ? ? ? 1.? linux,已經(jīng)搭建好的logstash+es+kibana【系列版本7.0X】,es 的plugs中安裝ik分詞器

ES版本:ELK增量同步數(shù)據(jù)【MySql->ES】,ELK,elk,elasticsearch

?Logstash版本:ELK增量同步數(shù)據(jù)【MySql->ES】,ELK,elk,elasticsearch

?(以上部署,都是運(yùn)維同事搞的,我不會(huì)部署,同事給力)

二、編寫(xiě)Logstash.sh 執(zhí)行文件

1、在Logstash安裝目錄下【/usr/share/logstash】,新建XX.sh,內(nèi)容如下:

/usr/share/logstash/bin/logstash --path.data /usr/share/logstash/case-conf -e 'input {
 jdbc {
    jdbc_driver_library => "/var/local/logstash/etc/lib/mysql-connector-java-8.0.15.jar"
    jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://IP:端口號(hào)/數(shù)據(jù)庫(kù)?serverTimezone=Asia/Shanghai&autoReconnect=true&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&characterEncoding=utf8&useSSL=false&tinyInt1isBit=false"
    jdbc_user => "用戶名"
    jdbc_password => "密碼"
    schedule => "* * * * *"
    use_column_value => true
    tracking_column => "update_at"
    tracking_column_type => "numeric"
    last_run_metadata_path => "/usr/share/logstash/case-last"
statement_filepath => "/usr/share/logstash/case_.sql"
  }
}

output {
  elasticsearch {
    hosts => ["es1:9206","es2:9207","es3:9208"]
	action=>"index"
    index => "case"
    document_id => "%{case_id}"
    template => "/usr/share/logstash/template-case.json"
	template_name=>"template-case.json"
	template_overwrite=>true
    }
}'

2. 在Logstash安裝目錄下【/usr/share/logstash】,新建case.sql文件:查詢字段,根據(jù)業(yè)務(wù)要求書(shū)寫(xiě),不需要全字段查詢

SELECT * FROM 表名稱(chēng) where update_at > :sql_last_value

where條件中的,update_at 是表更新時(shí)間,與case.sh 中的?tracking_column 強(qiáng)關(guān)聯(lián);默認(rèn)logstash 每分鐘執(zhí)行一次case.sql ,執(zhí)行后會(huì)生成一個(gè)case-last文件,里面記錄最后一次執(zhí)行時(shí)間;ELK增量同步數(shù)據(jù)【MySql->ES】,ELK,elk,elasticsearch

3.? 關(guān)于output,配置項(xiàng),使用了自定義創(chuàng)建索引的模板方式,在表中有數(shù)據(jù)為前提,執(zhí)行case.sh 會(huì)用到模板創(chuàng)建索引;如果不配置,es會(huì)默認(rèn)給創(chuàng)建mapping,默認(rèn)的話,分詞都是英文分詞器; 執(zhí)行效果如下:sh? case.sh后:

ELK增量同步數(shù)據(jù)【MySql->ES】,ELK,elk,elasticsearch

?注意細(xì)節(jié):?

output {
? elasticsearch {
? ? hosts => []
?? ?action=>"index"
? ? index => "case"? ?//索引名稱(chēng)
? ? document_id => "%{case_id}"? //動(dòng)態(tài)數(shù)據(jù),數(shù)據(jù)ID
? ? template => "/usr/share/logstash/template-case.json"? ?//模板文件路徑
?? ?template_name=>"template-case.json"? ? ? ? ? ? //模板名稱(chēng)
?? ?template_overwrite=>true? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? }
}

4.?在Logstash安裝目錄下【/usr/share/logstash】,新建template-case.json,內(nèi)容如下:

{
  "template" : "case*",
  "settings" : {
    "index.refresh_interval" : "5s",
    "number_of_replicas":"1",
    "number_of_shards":"1"
  },
  "mappings": {
    "date_detection": false,
    "numeric_detection": false,
    "dynamic_templates": [
      {
        "integers": {
          "match_mapping_type": "long",
          "mapping": {
            "type": "integer"
          }
        }
      },
      {
        "strings": {
          "match_mapping_type": "string",
          "unmatch": "*_en",
          "mapping": {
            "type": "text",
            "analyzer":"ik_max_word",
            "search_analyzer": "ik_smart",
            "fields": {
              "raw": {
                "type":  "keyword",
                "ignore_above": 100
              }
            }
          }
        }
      }
    ]
  }
}

注意:

1、模板名稱(chēng)和case.sh 中的index 匹配;模板中的名稱(chēng)后必須帶個(gè)*:? "template" : "case*",

2、模板比較簡(jiǎn)單,關(guān)閉了日期動(dòng)態(tài)檢測(cè)和數(shù)字格式動(dòng)態(tài)檢測(cè);不然創(chuàng)建索引的時(shí)候格式會(huì)亂;尤其是日期;比如數(shù)據(jù)庫(kù)中字段是varchar,但是存的是yyyy-MM-dd hh:mm:ss 日期格式的話,es創(chuàng)建索引是date格式的;

? ? "date_detection": false,
? ? "numeric_detection": false,

3、string格式的字段,默認(rèn)給轉(zhuǎn)出text, 并且使用ik分詞器;排除了_en結(jié)尾的字段,存英文的字段建表的時(shí)候注意下,使用默認(rèn)分詞就好;

? ?"unmatch": "*_en"

三、Kibana驗(yàn)證

1、GET case_/_mapping:

{
  "case" : {
    "mappings" : {
      "dynamic_templates" : [
        {
          "integers" : {
            "match_mapping_type" : "long",
            "mapping" : {
              "type" : "integer"
            }
          }
        },
        {
          "strings" : {
            "unmatch" : "*_en",
            "match_mapping_type" : "string",
            "mapping" : {
              "analyzer" : "ik_max_word",
              "fields" : {
                "raw" : {
                  "ignore_above" : 100,
                  "type" : "keyword"
                }
              },
              "search_analyzer" : "ik_smart",
              "type" : "text"
            }
          }
        }
      ],
      "date_detection" : false,
      "numeric_detection" : false,
      "properties" : {
        "@timestamp" : {
          "type" : "text",
          "fields" : {
            "raw" : {
              "type" : "keyword",
              "ignore_above" : 100
            }
          },
          "analyzer" : "ik_max_word",
          "search_analyzer" : "ik_smart"
        },
        "@version" : {
          "type" : "text",
          "fields" : {
            "raw" : {
              "type" : "keyword",
              "ignore_above" : 100
            }
          },
          "analyzer" : "ik_max_word",
          "search_analyzer" : "ik_smart"
        },
        "apply_education" : {
          "type" : "text",
          "fields" : {
            "raw" : {
              "type" : "keyword",
              "ignore_above" : 100
            }
          },
          "analyzer" : "ik_max_word",
          "search_analyzer" : "ik_smart"
        },  
        "apply_major_en" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
        "apply_school_name" : {
          "type" : "text",
          "fields" : {
            "raw" : {
              "type" : "keyword",
              "ignore_above" : 100
            }
          },
          "analyzer" : "ik_max_word",
          "search_analyzer" : "ik_smart"
        },
        "apply_school_name_en" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
     
        "begin_learn_time_at" : {
          "type" : "integer"
        },
  
        "case_id" : {
          "type" : "integer"
        },     
   
        "case_result_time_at" : {
          "type" : "integer"
        },
    
        "country_name" : {
          "type" : "text",
          "fields" : {
            "raw" : {
              "type" : "keyword",
              "ignore_above" : 100
            }
          },
          "analyzer" : "ik_max_word",
          "search_analyzer" : "ik_smart"
        },
  
   
    
        "school_id" : {
          "type" : "integer"
        },
          
        "update_at" : {
          "type" : "integer"
        }
      }
    }
  }
}

查看,映射字段是否滿足要求;

2.? 驗(yàn)證索引分詞結(jié)果:

GET case/_analyze
{
? "field": "apply_education",
? "text": "馬斯特里赫特大學(xué)"?
}

分詞結(jié)果:

{
  "tokens" : [
    {
      "token" : "馬斯特里赫特",
      "start_offset" : 0,
      "end_offset" : 6,
      "type" : "CN_WORD",
      "position" : 0
    },
    {
      "token" : "馬斯",
      "start_offset" : 0,
      "end_offset" : 2,
      "type" : "CN_WORD",
      "position" : 1
    },
    {
      "token" : "特里",
      "start_offset" : 2,
      "end_offset" : 4,
      "type" : "CN_WORD",
      "position" : 2
    },
    {
      "token" : "赫",
      "start_offset" : 4,
      "end_offset" : 5,
      "type" : "CN_CHAR",
      "position" : 3
    },
    {
      "token" : "特大",
      "start_offset" : 5,
      "end_offset" : 7,
      "type" : "CN_WORD",
      "position" : 4
    },
    {
      "token" : "大學(xué)",
      "start_offset" : 6,
      "end_offset" : 8,
      "type" : "CN_WORD",
      "position" : 5
    }
  ]
}

驗(yàn)證完成;

四、相關(guān)資料

1.?Elastic:開(kāi)發(fā)者上手指南_elastic.show_Elastic 中國(guó)社區(qū)官方博客的博客-CSDN博客

2.?Mutate filter plugin | Logstash Reference [8.8] | Elastic

五、注意事項(xiàng)

1. 此種方法,只能針對(duì)表數(shù)值為邏輯刪除的情況,若業(yè)務(wù)是物理刪除,則需要同步刪除索引中的數(shù)據(jù);

2. 所有update 操作,都需要同時(shí)修改 update_at 字段文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-516610.html

到了這里,關(guān)于ELK增量同步數(shù)據(jù)【MySql->ES】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • [Java Framework] [ELK] Spring 整合ES (ElasticSearch7.15.x +)

    [Java Framework] [ELK] Spring 整合ES (ElasticSearch7.15.x +)

    ElasticSearch7.15.x 版本后,廢棄了高級(jí)Rest客戶端的功能 2.1 配置文件 2.2 配置類(lèi) 3.1 索引的相關(guān)操作 3.2 實(shí)體映射相關(guān)操作 3.2.1 創(chuàng)建實(shí)體類(lèi) 3.2.2 Doc實(shí)體操作API 3.3 聚合相關(guān)操作 3.3.1 創(chuàng)建實(shí)體類(lèi) 3.3.2 創(chuàng)建操作類(lèi) [1] Elasticsearch Clients [2] Elasticsearch Clients - Aggregations

    2023年04月08日
    瀏覽(24)
  • DataX實(shí)現(xiàn)Mysql與ElasticSearch(ES)數(shù)據(jù)同步

    DataX實(shí)現(xiàn)Mysql與ElasticSearch(ES)數(shù)據(jù)同步

    jdk1.8及以上 python2 查看是否安裝成功 查看python版本號(hào),判斷是否安裝成功 在datax/job下,json格式,具體內(nèi)容及主要配置含義如下 mysqlreader為讀取mysql數(shù)據(jù)部分,配置mysql相關(guān)信息 username,password為數(shù)據(jù)庫(kù)賬號(hào)密碼 querySql:需要查詢數(shù)據(jù)的sql,也可通過(guò)colums指定需要查找的字段(

    2024年02月05日
    瀏覽(22)
  • ELK實(shí)戰(zhàn),Linux版docker安裝ElasticSearch、ES-head、Logstash、Kiabana入門(mén),無(wú)坑詳細(xì)圖解

    ELK實(shí)戰(zhàn),Linux版docker安裝ElasticSearch、ES-head、Logstash、Kiabana入門(mén),無(wú)坑詳細(xì)圖解

    ????????項(xiàng)目需要,記錄一次ELK日志分析系統(tǒng)無(wú)坑初始安裝過(guò)程,并給大家整理出了操作elasticsearch的主要命令,elasticsearch!伙伴們都懂得哦!別的不多說(shuō),看過(guò)內(nèi)容概覽,直接開(kāi)整?。?! 1-1 修改/etc/security/limits.conf limits.conf文件限制著用戶可以使用的最大文件數(shù),最大線

    2023年04月09日
    瀏覽(20)
  • 【ElasticSearch】ES與MySQL數(shù)據(jù)同步方案及Java實(shí)現(xiàn)

    【ElasticSearch】ES與MySQL數(shù)據(jù)同步方案及Java實(shí)現(xiàn)

    elasticsearch中的酒店數(shù)據(jù)來(lái)自于mysql數(shù)據(jù)庫(kù),當(dāng)mysql中的數(shù)據(jù)發(fā)生改變時(shí),es中的數(shù)據(jù)也要跟著改變,即es與mysql之間的數(shù)據(jù)同步。 操作mysql的微服務(wù)hotel-admin不能直接更新es的索引庫(kù),那就由操作es索引庫(kù)的微服務(wù)hotel-demo來(lái)暴露一個(gè)更新索引庫(kù)的接口給hotel-admin調(diào)用 同步調(diào)用方式

    2024年02月15日
    瀏覽(26)
  • ELK之從Logstash讀取數(shù)據(jù)到Elasticsearch

    前置條件: Elasticsearch 集群正常 Elasticsearch集群配置直通車(chē):ELK之Elasticsearch7.17.4安裝(yum方式)和三節(jié)點(diǎn)集群配置 Filebeat和logstash打通 ELK之LogStash接收Filebeat的數(shù)據(jù):ELK之LogStash接收Filebeat的數(shù)據(jù) 修改Logstash 配置文件,將output改為如下地址,注釋掉控制臺(tái)輸出,添加elasticsearc

    2024年01月22日
    瀏覽(19)
  • ELK日志系統(tǒng)實(shí)戰(zhàn)(五):安裝vector并將數(shù)據(jù)輸出到es、clickhouse案例

    目錄 安裝vector(0.22.0) 方式一:docker安裝 方式二:手動(dòng)下載安裝包 編寫(xiě)配置文件 1.從syslog將日志進(jìn)

    2024年02月06日
    瀏覽(20)
  • 【ELK03】ES 索引的Mapping映射詳解、數(shù)據(jù)類(lèi)型和settings屬性設(shè)置

    映射(MAPPING)就是es中一個(gè)決定了文檔如何存儲(chǔ),如何生成索引,字段各種類(lèi)型定義的過(guò)程.類(lèi)似于我們?cè)陉P(guān)系型數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè) 表格數(shù)據(jù)之前先定義表格有哪些字段,每個(gè)字段是什么類(lèi)型 ,然后數(shù)據(jù)會(huì)按照這個(gè)配置寫(xiě)入表格,ES中同樣是這個(gè)過(guò)程,它由兩種映射組成.一個(gè)是 動(dòng)態(tài)映射

    2024年02月03日
    瀏覽(21)
  • elk的時(shí)候logstash傳送elasticsearch的數(shù)據(jù)一直失敗報(bào)錯(cuò)403

    elk的時(shí)候logstash傳送elasticsearch的數(shù)據(jù)一直失敗報(bào)錯(cuò)403

    ? ? ? message: \\\"blocked by: [FORBIDDEN/8/index write (api)];: [cluster_block_exception] blocked by: [FORBIDDEN/8/index write (api)];\\\" kibana中輸入執(zhí)行下邊的 PUT /_all/_settings { ? \\\"index.blocks.write\\\": null } logstash.outputs.elasticsearch] Encountered a retryable error. Will Retry with exponential backoff ?{:code=403, :url=? 以上問(wèn)題最主要

    2024年02月15日
    瀏覽(20)
  • ElasticSearch - 在 微服務(wù)項(xiàng)目 中基于 RabbitMQ 實(shí)現(xiàn) ES 和 MySQL 數(shù)據(jù)異步同步(考點(diǎn))

    ElasticSearch - 在 微服務(wù)項(xiàng)目 中基于 RabbitMQ 實(shí)現(xiàn) ES 和 MySQL 數(shù)據(jù)異步同步(考點(diǎn))

    目錄 一、數(shù)據(jù)同步 1.1、什么是數(shù)據(jù)同步 1.2、解決數(shù)據(jù)同步面臨的問(wèn)題 1.3、解決辦法 1.3.1、同步調(diào)用 1.3.2、異步通知(推薦) 1.3.3、監(jiān)聽(tīng) binlog 1.3、基于 RabbitMQ 實(shí)現(xiàn)數(shù)據(jù)同步 1.3.1、需求 1.3.2、在“酒店搜索服務(wù)”中 聲明 exchange、queue、routingKey,同時(shí)開(kāi)啟監(jiān)聽(tīng) 1.3.3、在“酒店

    2024年02月08日
    瀏覽(31)
  • 使用Logstash同步mysql數(shù)據(jù)到Elasticsearch(親自踩坑)_將mysql中的數(shù)據(jù)導(dǎo)入es搜索引擎利用logstash(1)

    使用Logstash同步mysql數(shù)據(jù)到Elasticsearch(親自踩坑)_將mysql中的數(shù)據(jù)導(dǎo)入es搜索引擎利用logstash(1)

    先自我介紹一下,小編浙江大學(xué)畢業(yè),去過(guò)華為、字節(jié)跳動(dòng)等大廠,目前阿里P7 深知大多數(shù)程序員,想要提升技能,往往是自己摸索成長(zhǎng),但自己不成體系的自學(xué)效果低效又漫長(zhǎng),而且極易碰到天花板技術(shù)停滯不前! 因此收集整理了一份《2024年最新大數(shù)據(jù)全套學(xué)習(xí)資料》,

    2024年04月28日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包