一、Linux環(huán)境要求
jdk1.8及以上
python2
二、準備工作
2.1 Linux安裝jdk
yum install -y java-1.8.0-openjdk.x86_64
查看是否安裝成功
java -version
2.2 linux安裝python
yum install -y python
查看python版本號,判斷是否安裝成功
python --version
2.3 下載DataX:
三、DataX壓縮包導入,解壓縮
tar -zxvf datax.tar.gz
四、編寫同步Job
在datax/job下,json格式,具體內(nèi)容及主要配置含義如下
mysqlreader為讀取mysql數(shù)據(jù)部分,配置mysql相關(guān)信息
username,password為數(shù)據(jù)庫賬號密碼
querySql:需要查詢數(shù)據(jù)的sql,也可通過colums指定需要查找的字段(querySql優(yōu)先級高)
elasticsearchwriter部分為數(shù)據(jù)寫入ES部分,配置ES相關(guān)信息,
endpoint為ES地址,index為索引,columns為需要寫入列的信息,其余配置選填
坑!:若運行時提示mysql連接失敗,且賬號密碼,ip,端口號都沒問題的情況下,需要像文中一樣在jdbcUrl的內(nèi)容后面加上useSSL=false"
vim /opt/software/datax/job/job.json
將內(nèi)容換成以下內(nèi)容
{
"job": {
"setting": {
"speed": {
"channel": 1
},
"errorLimit": {
"percentage": 0
}
},
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "root",
"password": "123456",
"connection": [{
"querySql": ["select * from user_t"],
"jdbcUrl": ["jdbc:mysql://數(shù)據(jù)庫地址:3306/mysql?useSSL=false"]
}]
}
},
"writer": {
"name": "elasticsearchwriter",
"parameter": {
"endpoint":"http://ES地址:9200",
"accessId":"",
"accessKey":"",
"index": "user-demo",
"cleanup": false,
"discovery":false,
"column": [
{
"name": "id",
"type": "id"
},
{
"name": "userName",
"type": "text"
},
{
"name": "address",
"type": "text"
}
]
}
}
}
]
}
}
五、執(zhí)行Job
配置好之后執(zhí)行命令:
python /opt/software/datax/bin/datax.py /opt/software/datax/job/job.json
注意換成自己的datax路徑
正常情況下輸出一大堆之后會是這樣,由于我在mysql表中插了三條測試數(shù)據(jù),,所以讀出記錄總數(shù)為3完成操作
六、定時更新
6.1 創(chuàng)建定時任務
vim crondatax
內(nèi)容:
5 13 * * * python /opt/software/datax/bin/datax.py /opt/software/datax/job/job.json
/opt/software/datax/log.
date +\%Y\%m\%d\%H\%M\%S
2>&1
含義為每天13:05執(zhí)行python /opt/software/datax/bin/datax.py /opt/software/datax/job/job.json 命令,日志輸出地址為/opt/software/datax,命名為“l(fā)og.時間”
crontab格式可參考下圖:
6.2 提交定時任務
crontab crondatax
/sbin/service crond restart
6.3 查看定時任務
crontab -l文章來源:http://www.zghlxwxcb.cn/news/detail-745132.html
七、增量更新思路
數(shù)據(jù)庫表設計時加入最后操作時間字段,新增,修改數(shù)據(jù)都會記錄最新時間
Datax的json中,mysql查詢語句中按照定時任務規(guī)律,查詢此字段時間大于定時任務時間間隔之前的時間的數(shù)據(jù)。文章來源地址http://www.zghlxwxcb.cn/news/detail-745132.html
到了這里,關(guān)于DataX實現(xiàn)Mysql與ElasticSearch(ES)數(shù)據(jù)同步的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!