將mysql數據同步到elasticsearch
安裝的mysql和elasticsearch在同一臺服務器上,elasticsearch版本6.5.1
1、安裝DataX
下載源碼:https://github.com/alibaba/DataX?spm=a2c4g.11186623.2.12.317b3680my463k
然後編譯,編譯過程中會出現一些jar無法下載的問題,可以在編譯的時候只保留mysql和elasticsearch的模塊,把pom.xml中的其他modul註釋掉
<modules>
<module>common</module>
<module>core</module>
<module>transformer</module>
<!-- reader -->
<module>mysqlreader</module>
<!--<module>drdsreader</module>
<module>sqlserverreader</module>
<module>postgresqlreader</module>
<module>oraclereader</module>
<module>odpsreader</module>
<module>otsreader</module>
<module>otsstreamreader</module>
<module>txtfilereader</module>
<module>hdfsreader</module>
<module>streamreader</module>
<module>ossreader</module>
<module>ftpreader</module>
<module>mongodbreader</module>
<module>rdbmsreader</module>
<module>hbase11xreader</module>
<module>hbase094xreader</module>
<module>opentsdbreader</module>-->
<!-- writer -->
<!--<module>mysqlwriter</module>
<module>drdswriter</module>
<module>odpswriter</module>
<module>txtfilewriter</module>
<module>ftpwriter</module>
<module>hdfswriter</module>
<module>streamwriter</module>
<module>otswriter</module>
<module>oraclewriter</module>
<module>sqlserverwriter</module>
<module>postgresqlwriter</module>
<module>osswriter</module>
<module>mongodbwriter</module>
<module>adswriter</module>
<module>ocswriter</module>
<module>rdbmswriter</module>
<module>hbase11xwriter</module>
<module>hbase094xwriter</module>
<module>hbase11xsqlwriter</module>
<module>hbase11xsqlreader</module>-->
<module>elasticsearchwriter</module>
<!--<module>tsdbwriter</module>-->
2、 設置數據傳輸的json文件
可以參考:https://helpcdn.aliyun.com/document_detail/62149.html
{
"job": {
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"column": [
"name",
"passwd"
],
"connection": [
{
"jdbcUrl": ["jdbc:mysql://192.168.68.128:3306/company3_home?useUnicode=true&characterEncoding=utf-8"],
"table": ["user_info"]
}
],
"password": "123456",
"username": "root",
"where": ""
}
},
"writer": {
"name": "elasticsearchwriter",
"parameter": {
"accessId": "xxx",
"accessKey": "xxx",
"endpoint": "http://192.168.68.128:9200",
"index": "school_index",
"type": "user_info",
"cleanup": false,
"discovery":false, #此字段要特別注意,我本地是單機的es
"batchSize": 2000,
"column": [
{
"name": "name",
"type": "text"
},
{
"name": "passwd",
"type": "text"
}
]
}
}
}
],
"setting": {
"speed": {
"channel": 10
}
}
}
}
3、執行
在數據傳輸之前,可以不用在es中創建index,type,mapping