文章目录
Data简介
DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。
DataX本身作为数据同步框架,将不同数据源的同步抽象为从源头数据源读取数据的Reader插件,以及向目标端写入数据的Writer插件,理论上DataX框架可以支持任意数据源类型的数据同步工作。同时DataX插件体系作为一套生态系统, 每接入一套新数据源该新加入的数据源即可实现和现有的数据源互通。
支持的数据源
类型 | 数据源 | Reader(读) | Writer(写) | 文档 |
---|---|---|---|---|
RDBMS关系型数据库 | MySQL | √ | √ | 读、写 |
— | Oracle | √ | √ | 读、写 |
— | SQLServer | √ | √ | 读、写 |
— | PostgreSql | √ | √ | 读、写 |
— | DRDS | √ | √ | 读、写 |
— | 通过RDBMS(支持所有关系型数据库) | √ | √ | 读、写 |
阿里云数据仓库存储 | ODPS | √ | √ | 读、写 |
— | ADS | √ | 写 | |
— | OSS | √ | √ | 读、写 |
— | OCS | √ | √ | 读、写 |
NOSQL数据存储 | OTS | √ | √ | 读、写 |
— | Hbase0.94 | √ | √ | 读、写 |
— | Hbase1.1 | √ | √ | 读、写 |
— | Phoenix4.x | √ | √ | 读、写 |
— | Phoenix5.x | √ | √ | 读、写 |
— | MongoDB | √ | √ | 读、写 |
— | Hive | √ | √ | 读、写 |
— | Cassandra | √ | √ | 读、写 |
无结构化数据存储 | TXTFile | √ | √ | 读、写 |
— | FTP | √ | √ | 读、写 |
— | HDFS | √ | √ | 读、写 |
— | Elasticsearch | √ | 写 | |
时间序列数据库 | OpenTSDB | √ | 读 | |
— | TSDB | √ | √ | 读、写 |
开源地址:https://github.com/alibaba/DataX
DataX的安装
DataX不需要依赖其他服务,直接上传、解压、安装、配置环境变量即可
也可以直接在windows上解压
DataX的使用
stream2stream
编写配置文件stream2stream.json
{
"job": {
"content": [
{
"reader": {
"name": "streamreader",
"parameter": {
"sliceRecordCount": 10,
"column": [
{
"type": "long",
"value": "10"
},
{
"type": "string",
"value": "hello,你好,世界-DataX"
}
]
}
},
"writer": {
"name": "streamwriter",
"parameter": {
"encoding": "UTF-8",
"print": true
}
}
}
],
"setting": {
"speed": {
"channel": 5
}
}
}
}
运行:datax.py stream2stream.json
mysql2mysql
需要新建student2数据库,并创建student表
编写配置文件mysql2mysql.json
{
"job": {
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "root",
"password": "123456",
"column": [
"id",
"name",
"age",
"gender",
"clazz",
"last_mod"
],
"splitPk": "age",
"connection": [
{
"table": [
"student"</