2.7 KiB
2.7 KiB
DataX 框架
概述
DataX 是一个数据传输框架,支持多种数据源和数据目标之间的数据传输,用于数据收集和同步。
架构
runtime/datax/
├── core/ # DataX 核心组件
├── transformer/ # 数据转换器
├── readers/ # 数据读取器
│ ├── mysqlreader/
│ ├── postgresqlreader/
│ ├── oracleReader/
│ ├── mongodbreader/
│ ├── hdfsreader/
│ ├── s3rader/
│ ├── nfsreader/
│ ├── glusterfsreader/
│ └── apireader/
└── writers/ # 数据写入器
├── mysqlwriter/
├── postgresqlwriter/
├── oraclewriter/
├── mongodbwriter/
├── hdfswriter/
├── s3writer/
├── nfswriter/
├── glusterfswriter/
└── txtfilewriter/
支持的数据源
关系型数据库
- MySQL
- PostgreSQL
- Oracle
- SQL Server
- DB2
- KingbaseES
- GaussDB
NoSQL 数据库
- MongoDB
- Elasticsearch
- Cassandra
- HBase
- Redis
文件系统
- HDFS
- S3 (AWS S3, MinIO, 阿里云 OSS)
- NFS
- GlusterFS
- 本地文件系统
其他
- API 接口
- Kafka
- Pulsar
- DataHub
- LogHub
使用
基本配置
{
"job": {
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "root",
"password": "password",
"column": ["id", "name", "email"],
"connection": [
{
"jdbcUrl": "jdbc:mysql://localhost:3306/database",
"table": ["users"]
}
]
}
},
"writer": {
"name": "txtfilewriter",
"parameter": {
"path": "/output/users.txt",
"fileName": "users",
"writeMode": "truncate"
}
}
}
]
}
}
运行 DataX
# 构建 DataX
cd runtime/datax
mvn clean package
# 运行
python datax.py -j job.json
快速开始
前置条件
- JDK 8+
- Maven 3.8+
- Python 3.6+
构建
cd runtime/datax
mvn clean package
运行示例
python datax.py -j examples/mysql2text.json
开发
添加新的 Reader
- 在
readers/创建新模块 - 实现 Reader 接口
- 配置 reader 参数
- 添加到 package.xml
添加新的 Writer
- 在
writers/创建新模块 - 实现 Writer 接口
- 配置 writer 参数
- 添加到 package.xml