1.是什么
个人理解DataX就是从关系型数据库里面到处数据并且导入到另一个关系型数据库中的数据源同步中间件。
2.特点
插件和任务脚本:需要操作什么数据库就用对应的插件即可,同步任务脚本是JSON格式的文本。
3.快速开始
你可以在github上下载编译后的安装包,linux环境下进行解压
tar -zxvf datax.tar.gz
解压后默认文件夹为datax
运行环境:jdk1.8+ python2.7.x
目录结构:
bin可执行文件,由python编写(datax.py为核心)。
conf配置文件。
lib用于存放依赖。
plugins用于存放各种数据库的读写插件,有两个文件夹。
job用于存放同步任务文件。
运行官方案例
python datax.py ../job/json
运行案例成功但是出现了中文乱码。
解决:
a 查看控制台字符集
b 应该将其修改为 UTF-8
运行命令
chcp 65001
再次运行示例问题解决
4.从StreamReader&StreamWriter
这个只是一个Demo性质的插件
4.1JSON文件编写
作业设置
READER
WRITER
4.2获取提示模板
python datax.py -r 数据源插件名称 -w 目标数据源插件名称
{
"job": {
"content": [
{
"reader": {
"name": "streamreader",
"parameter": {
"column": [],
"sliceRecordCount": ""
}
},
"writer": {
"name": "streamwriter",
"parameter": {
"encoding": "",
"print": true
}
}
}
],
"setting": {
"speed": {
"channel": ""
}
}
}
}
reader
column可以理解为关系型数据表里面的字段,几个字段为一条数据
sliceRecordCount 用于压力测试表示当前数据查出多少条数据
writer
print用于打印日志
encoding可以指定字符集
setting用于整个作业的配置
channel 为并发读取数可以理解为多线程读取
{
"job":{
"content":[
{
"reader":{
"name":"streamreader",
"parameter":{
"column":[
{
"value": "DataX",
"type": "string"
},
{
"value": 19890604,
"type": "long"
}
],
"sliceRecordCount":"10"
}
},
"writer":{
"name":"streamwriter",
"parameter":{
"encoding":"UTF-8",
"print":true
}
}
}
],
"setting":{
"speed":{
"channel":"2"
}
}
}
}
5.mysql2mysql
5.1.查看提示
在这里插入代码片
5.2准备数据
建两个数据库
create database mydb1; create database mydb2;
在mydb1中创建一个表并插入数据
create table student (id int ,name varchar(20));



