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

Datax同步MySQL到ES

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

1、在MySQL中建表

  • 建表語句

    • CREATE TABLE `user` (
        `id` int(11) NOT NULL,
        `name` varchar(255) DEFAULT NULL,
        `age` varchar(255) DEFAULT NULL,
        `create_date` datetime DEFAULT NULL,
        PRIMARY KEY (`id`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
      
  • 插入數(shù)據(jù)

    • INSERT INTO `user`(`id`, `name`, `age`,`create_date`) VALUES (1, '小明1', '22','2023-06-02 11:26:04');
      INSERT INTO `user`(`id`, `name`, `age`,`create_date`) VALUES (2, '小明2', '22','2023-06-02 11:26:04');
      INSERT INTO `user`(`id`, `name`, `age`,`create_date`) VALUES (3, '小明3', '22','2023-06-02 11:26:04');
      INSERT INTO `user`(`id`, `name`, `age`,`create_date`) VALUES (4, '小明4', '22','2023-06-02 11:26:04');
      INSERT INTO `user`(`id`, `name`, `age`,`create_date`) VALUES (5, '小明5', '23','2023-06-02 11:26:04');
      INSERT INTO `user`(`id`, `name`, `age`,`create_date`) VALUES (6, '小明6', '23','2023-06-02 11:26:05');
      INSERT INTO `user`(`id`, `name`, `age`,`create_date`) VALUES (7, '小明7', '23','2023-06-02 11:26:05');
      INSERT INTO `user`(`id`, `name`, `age`,`create_date`) VALUES (8, '小明8', '23','2023-06-02 11:26:05');
      INSERT INTO `user`(`id`, `name`, `age`,`create_date`) VALUES (9, '小明9', '23','2023-06-02 11:26:05');
      

2、在ES建立索引

  • 建立索引語句

    • 我這里使用Kibana工具連接ES進行操作的,也可以使用Postman進行操作

    • Kibana操作語句

      # 創(chuàng)建索引
      PUT /user
      {
          "mappings" : {
            "properties" : {
              "id" : {
                "type" : "keyword"
              },
              "name" : {
                "type" : "text"
              },
              "age" : {
                "type" : "keyword"
              },
              "create_date" : {
                "type" : "date",
                "format": "yyyy-MM-dd HH:mm:ss"
              }
      	}	
        }
      }
      
    • Postman操作語句

      • 地址輸入
      http://localhost:9200/user
      

datax mysql到es,ETL,mysql,elasticsearch,數(shù)據(jù)庫
Json文本輸入

    {
        "mappings" : {
          "properties" : {
            "id" : {
              "type" : "keyword"
            },
            "name" : {
              "type" : "text"
            },
            "age" : {
              "type" : "keyword"
            },
            "create_date" : {
              "type" : "date",
              "format": "yyyy-MM-dd HH:mm:ss"
            }
    	}	
      }
    }

  • 當(dāng)出現(xiàn)以下信息代表創(chuàng)建索引成功
    {
        "acknowledged": true,
        "shards_acknowledged": true,
        "index": "user"
    }
    

3、構(gòu)建從MySQL到ES的Datax的Json任務(wù)

[root@hadoop101 ~]# vim mysql2es.json
# 添加以下內(nèi)容
{
  "job": {
    "setting": {
      "speed": {
        "channel": 8
      }
    },
    "content": [
      {
        "reader": {
          "name": "mysqlreader",
          "parameter": {
            "column": [
              "id",
              "id",
              "name",
              "age",
              "date_format(create_date,'%Y-%m-%d %H:%I:%s')"
            ],
            "connection": [
              {
                "jdbcUrl": [
                  "jdbc:mysql://192.168.xx.xxx:3306/bigdata"
                ],
                "table": [
                  "user"
                ]
              }
            ],
            "password": "xxxxxx",
            "username": "root",
            "where": "",
            "splitPk": "id"
          }
        },
        "writer": {
          "name": "elasticsearchwriter",
          "parameter": {
            "endpoint": "http://192.168.xx.xxx:9200",
            "accessId": "root",
            "accessKey": "root",
            "index": "user",
            "type": "_doc",
            "settings": {"index" :{"number_of_shards": 5, "number_of_replicas": 1}},
            "batchSize": 5000,
            "splitter": ",",
            "column": [
              {
                "name": "pk",
                "type": "id"
              },
              {
                "name": "id",
                "type": "keyword"
              },
              {
                "name": "name",
                "type": "text"
              },
              {
                "name": "age",
                "type": "keyword"
              },
              {
                "name": "create_date",
                "type": "date",
                "format": "yyyy-MM-dd HH:mm:ss"
              }
            ]
          }
        }
      }
    ]
  }
}
  • 參數(shù)介紹

    • reader:datax的source(來源)端
    • reader.cloumn::讀取mysql的字段名
    • reader.connection.jdbcUrl:MySQL連接的url
    • reader.connection.table:讀取MySQL的表名
    • reader.password:連接MySQL的用戶名
    • reader.username:連接MySQL的密碼
    • reader.where:讀取MySQL的過濾條件
    • reader.splitPk:讀取MySQL時按照哪個字段進行切分
    • writer:datax的sink(去處)端
    • writer.endpoint:ElasticSearch的連接地址
    • writer.accessId:http auth中的user
    • writer.accessKey:http auth中的password

    注意:假如Elasticsearch沒有設(shè)置用戶名,也需要給accessId和accessKey值,不然就報錯了,可以給賦值root,root

    • writer.index:Elasticsearch中的index名

    • writer.type:Elasticsearch中index的type名

    • writer.settings:創(chuàng)建index時候的settings, 與Elasticsearch官方相同

    • writer.batchSize:每次批量數(shù)據(jù)的條數(shù)

    • writer.splitter:如果插入數(shù)據(jù)是array,就使用指定分隔符

    • writer.column:Elasticsearch所支持的字段類型

      • 下面是column樣例字段類型
      "column": [
                    # 使用數(shù)據(jù)庫id作為es中記錄的_id,業(yè)務(wù)主鍵(pk):_id 的值指定為某一個字段。
                    {"name": "pk", "type": "id"}, 
                    { "name": "col_ip","type": "ip" },
                    { "name": "col_double","type": "double" },
                    { "name": "col_long","type": "long" },
                    { "name": "col_integer","type": "integer" },
                    { "name": "col_keyword", "type": "keyword" },
                    { "name": "col_text", "type": "text", "analyzer": "ik_max_word"},
                    { "name": "col_geo_point", "type": "geo_point" },
                    # ES日期字段創(chuàng)建需指定格式 yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis
                    { "name": "col_date", "type": "date", "format": "yyyy-MM-dd HH:mm:ss"},
                    { "name": "col_nested1", "type": "nested" },
                    { "name": "col_nested2", "type": "nested" },
                    { "name": "col_object1", "type": "object" },
                    { "name": "col_object2", "type": "object" },
                    { "name": "col_integer_array", "type":"integer", "array":true},
                    { "name": "col_geo_shape", "type":"geo_shape", "tree": "quadtree", "precision": "10m"}
                  ]
      
    • 如果時間類型需要精細(xì)到y(tǒng)yyy-MM-dd HH:mm:ss.SSSSSS,比如時間為:2023-06-02 13:39:57.000000

      • MySQL的cloumn端填寫
      "date_format(create_date,'%Y-%m-%d %H:%I:%s.%f')"
      
      • Elasticsearch的cloumn填寫
      { "name": "create_date", "type": "text"}
      
      • Elasticsearch創(chuàng)建索引時修改如下
      { "name": "create_date","type": "text"}
      

4、運行mysql2es.json腳本

  • 問題1: ConfigParser - 插件[mysqlreader,elasticsearchwriter]加載失敗
    datax mysql到es,ETL,mysql,elasticsearch,數(shù)據(jù)庫

  • 解決問題:

    下面是編譯好的elasticsearchwriter插件,放在DATAX_HOME/plugin/writer目錄下面,就可以運行成功了,也可以自己從官網(wǎng)下載,然后自己編譯好也可以用的

    • elasticsearchwriter百度網(wǎng)盤資源下載鏈接:
    鏈接:https://pan.baidu.com/s/1C_OeXWf_t5iVNiLquvEhjw 
    提取碼:tutu 
    
  • 問題2:在運行從MySQL抽取500萬條數(shù)據(jù)到Elasticsearch時,出現(xiàn)了datax傳輸200多萬條數(shù)據(jù)卡住的情況,報錯日志:I/O Exception … Broken pipe (write failed)

datax mysql到es,ETL,mysql,elasticsearch,數(shù)據(jù)庫

  • 解決問題:

    datax傳輸mysql到es卡在200多萬這個問題和channel: 8和es的oom有一定的關(guān)系

    • 測試樣例

    • 1、es batchsize為5000,不開啟mysql切分"splitPk": “id”,卡住

    • 2、es batchsize為1000,不開啟mysql切分"splitPk": “id”,不卡住

    • 3、es batchsize為5000,開啟mysql切分"splitPk": “id”,不卡住

  • 總結(jié):這個問題和mysql讀取速率,es 寫入速率有關(guān),開啟切分提高一下讀取速率就不會卡住了

  • 成功運行截圖:
    datax mysql到es,ETL,mysql,elasticsearch,數(shù)據(jù)庫

以下是工作中做過的ETL,如有需要,可以私信溝通交流,互相學(xué)習(xí),一起進步

datax mysql到es,ETL,mysql,elasticsearch,數(shù)據(jù)庫文章來源地址http://www.zghlxwxcb.cn/news/detail-540743.html

到了這里,關(guān)于Datax同步MySQL到ES的文章就介紹完了。如果您還想了解更多內(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)文章

  • datax 同步mongodb數(shù)據(jù)庫到hive(hdfs)和elasticserch(es)

    1.mongodb版本:3.6.3。(有點老了,后來發(fā)現(xiàn)flinkcdc都只能監(jiān)控一張表,多張表無法監(jiān)控) 2.datax版本:自己編譯的DataX-datax_v202210 3.hdfs版本:3.1.3 4.hive版本:3.1.2 1.增量數(shù)據(jù):需要每隔1小時將mongodb中17個集合的數(shù)據(jù)同步至hive,因為有數(shù)據(jù)生成時間,才用datax查詢方式,將上一個

    2023年04月23日
    瀏覽(92)
  • 5、DataX(DataX簡介、DataX架構(gòu)原理、DataX部署、使用、同步MySQL數(shù)據(jù)到HDFS、同步HDFS數(shù)據(jù)到MySQL)

    5、DataX(DataX簡介、DataX架構(gòu)原理、DataX部署、使用、同步MySQL數(shù)據(jù)到HDFS、同步HDFS數(shù)據(jù)到MySQL)

    1.1 DataX概述 源碼地址:https://github.com/alibaba/DataX 1.2 DataX支持的數(shù)據(jù)源 DataX目前已經(jīng)有了比較全面的插件體系,主流的RDBMS數(shù)據(jù)庫、NOSQL、大數(shù)據(jù)計算系統(tǒng)都已經(jīng)接入,目前支持?jǐn)?shù)據(jù)如下圖。 2.1 DataX設(shè)計理念 為了解決異構(gòu)數(shù)據(jù)源同步問題,DataX將復(fù)雜的網(wǎng)狀的同步鏈路變成了星

    2024年02月11日
    瀏覽(20)
  • DataX mysql同步到mysql

    DataX mysql同步到mysql

    創(chuàng)建數(shù)據(jù)源 配置數(shù)據(jù)庫相關(guān)信息 創(chuàng)建執(zhí)行器 配置執(zhí)行器執(zhí)行地址相關(guān)信息 1.1 SQL語句 (querySql) 在json文件中此部分配置就是 querySql 在有些業(yè)務(wù)場景下,where這一配置項不足以描述所篩選的條件,用戶可以通過該配置型來自定義篩選SQL。當(dāng)用戶配置了這一項之后,DataX系統(tǒng)就

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

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

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

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

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

    目錄 一、數(shù)據(jù)同步 1.1、什么是數(shù)據(jù)同步 1.2、解決數(shù)據(jù)同步面臨的問題 1.3、解決辦法 1.3.1、同步調(diào)用 1.3.2、異步通知(推薦) 1.3.3、監(jiān)聽 binlog 1.3、基于 RabbitMQ 實現(xiàn)數(shù)據(jù)同步 1.3.1、需求 1.3.2、在“酒店搜索服務(wù)”中 聲明 exchange、queue、routingKey,同時開啟監(jiān)聽 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è),去過華為、字節(jié)跳動等大廠,目前阿里P7 深知大多數(shù)程序員,想要提升技能,往往是自己摸索成長,但自己不成體系的自學(xué)效果低效又漫長,而且極易碰到天花板技術(shù)停滯不前! 因此收集整理了一份《2024年最新大數(shù)據(jù)全套學(xué)習(xí)資料》,

    2024年04月28日
    瀏覽(26)
  • DataX將MySQL數(shù)據(jù)同步到HDFS中時,空值不處理可以嗎

    DataX將MySQL數(shù)據(jù)同步到HDFS中時,空值不處理可以嗎

    DataX將MySQL數(shù)據(jù)同步到HDFS中時,空值(NULL)存到HDFS中時,默認(rèn)是存儲為空字符串(‘’)。 HFDS Writer并未提供nullFormat參數(shù):也就是用戶并不能自定義null值寫到HFDS文件中的存儲格式。默認(rèn)情況下,HFDS Writer會將null值存儲為空字符串(‘’),而Hive默認(rèn)的null值存儲格式為N。所以

    2024年02月12日
    瀏覽(29)
  • DataX-阿里開源離線同步工具在Windows上實現(xiàn)Sqlserver到Mysql全量同步和增量同步

    DataX-阿里開源離線同步工具在Windows上實現(xiàn)Sqlserver到Mysql全量同步和增量同步

    Kettle-開源的ETL工具集-實現(xiàn)SqlServer到Mysql表的數(shù)據(jù)同步并部署在Windows服務(wù)器上: Kettle-開源的ETL工具集-實現(xiàn)SqlServer到Mysql表的數(shù)據(jù)同步并部署在Windows服務(wù)器上_etl實現(xiàn)sqlserver報表服務(wù)器_霸道流氓氣質(zhì)的博客-CSDN博客 上面講過Kettle的使用,下面記錄下阿里開源異構(gòu)數(shù)據(jù)源同步工具

    2024年02月08日
    瀏覽(27)
  • 60、Flink CDC 入門介紹及Streaming ELT示例(同步Mysql數(shù)據(jù)庫數(shù)據(jù)到Elasticsearch)-CDC Connector介紹及示例 (1)

    60、Flink CDC 入門介紹及Streaming ELT示例(同步Mysql數(shù)據(jù)庫數(shù)據(jù)到Elasticsearch)-CDC Connector介紹及示例 (1)

    一、Flink 專欄 Flink 專欄系統(tǒng)介紹某一知識點,并輔以具體的示例進行說明。 1、Flink 部署系列 本部分介紹Flink的部署、配置相關(guān)基礎(chǔ)內(nèi)容。 2、Flink基礎(chǔ)系列 本部分介紹Flink 的基礎(chǔ)部分,比如術(shù)語、架構(gòu)、編程模型、編程指南、基本的datastream api用法、四大基石等內(nèi)容。 3、

    2024年02月19日
    瀏覽(21)
  • ELK(Elasticsearch、Kibana、Logstash)以及向ES導(dǎo)入mysql數(shù)據(jù)庫數(shù)據(jù)或CSV文件數(shù)據(jù),創(chuàng)建索引和可視化數(shù)據(jù)

    ELK(Elasticsearch、Kibana、Logstash)以及向ES導(dǎo)入mysql數(shù)據(jù)庫數(shù)據(jù)或CSV文件數(shù)據(jù),創(chuàng)建索引和可視化數(shù)據(jù)

    地址:Past Releases of Elastic Stack Software | Elastic 在Products和version處分別選擇需要下載的產(chǎn)品和版本,E(elasticsearch)L(logstash)K(kibana)三者版本必須相同 將下載好的elk分別解壓到相同路徑下 本文中elasticsearch=E=ES=es;L=logstash;K=kibana 一般情況下使用默認(rèn)配置即可,下面對我的

    2024年02月15日
    瀏覽(95)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包