买完域名后怎么做网站,宜兴城乡建设局网站,网站根目录文件名,做网站退款怎么做会计分录Centos7安装DataX 一、DataX简介二、DataX的数据源支持三、安装DataX1、下载DataX2、解压3、检验是否安装成功4、使用 四、实践案例1、环境信息2、编写同步的配置文件(user_info.json)3、执行同步4、验证同步结果 一、DataX简介 DataX 是阿里云 DataWorks数据集成 的开源版本在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS, databend 等各种异构数据源之间高效的数据同步功能。 源码地址点这里
二、DataX的数据源支持 DataX目前已经有了比较全面的插件体系主流的RDBMS数据库、NOSQL、大数据计算系统都已经接入目前支持数据如下图
类型数据源Reader(读)Writer(写)文档RDBMS 关系型数据库MySQL√√读 、写Oracle√√读 、写OceanBase√√读 、写SQLServer√√读 、写PostgreSQL√√读 、写DRDS√√读 、写Kingbase√√读 、写通用RDBMS(支持所有关系型数据库)√√读 、写阿里云数仓数据存储ODPS√√读 、写ADB√写ADS√写OSS√√读 、写OCS√写Hologres√写AnalyticDB For PostgreSQL√写阿里云中间件datahub√√读 、写SLS√√读 、写图数据库阿里云 GDB√√读 、写Neo4j√写NoSQL数据存储OTS√√读 、写Hbase0.94√√读 、写Hbase1.1√√读 、写Phoenix4.x√√读 、写Phoenix5.x√√读 、写MongoDB√√读 、写Cassandra√√读 、写数仓数据存储StarRocks√√读 、写ApacheDoris√写ClickHouse√√读 、写Databend√写Hive√√读 、写kudu√写selectdb√写无结构化数据存储TxtFile√√读 、写FTP√√读 、写HDFS√√读 、写Elasticsearch√写时间序列数据库OpenTSDB√读TSDB√√读 、写TDengine√√读 、写
三、安装DataX
1、下载DataX
在源码中可以下载到DataX安装包datax.tar.gz。
2、解压
tar -zxvf datax.tar.gz3、检验是否安装成功
# 如下路径更换为自己的路径
python /wz_program/datax/bin/datax.py /wz_program/datax/job/job.json出现如下内容则说明已安装成功
4、使用 DataX使用只需要根据自己同步的数据的数据源与数据的目的地选择对应的Reader和Writer将Reader和Writer信息配置到一个json文件中然后执行同步命令即可完成数据同步。
四、实践案例
描述将mysql数据库user_info表中的1500条数据同步到HDFS的/user_info中HDFS需要提前安装好。
1、环境信息
mysql信息如下
CREATE TABLE user_info (id int NOT NULL AUTO_INCREMENT,user_id int NOT NULL,username varchar(255) NOT NULL,email varchar(255) NOT NULL,phone_number varchar(30) DEFAULT NULL,status enum(active,inactive) DEFAULT active,score int unsigned DEFAULT NULL,PRIMARY KEY (id)
) ENGINEInnoDB AUTO_INCREMENT16280 DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_0900_ai_ciHDFS信息如下 特别注意DataX向HDFS同步数据时一定要保证目标路径已存在否则会同步失败。
hadoop fs -mkdir /user_info2、编写同步的配置文件(user_info.json)
{job: {content: [{reader: {name: mysqlreader,parameter: {column: [id,user_id,username,email,phone_number,status,score],where: id3,connection: [{jdbcUrl: [jdbc:mysql://*************:3306/hadoop],table: [user_info]}],password: **********,splitPk: ,username: root}},writer: {name: hdfswriter,parameter: {column: [{name: id,type: bigint},{name: user_id,type: bigint},{name: username,type: string},{name: email,type: string},{name: phone_number,type: string},{name: status,type: string},{name: score,type: string}],compress: gzip,defaultFS: hdfs://hadoop001:8020,fieldDelimiter: \t,fileName: user_info,fileType: text,path: /user_info,writeMode: append}}}],setting: {speed: {channel: 1}}}
}MySQLReader配置说明
{name: mysqlreader, #Reader的名称固定写法可以从官方文档中获取到如上DataX的数据源支持中的表格parameter: {column: [ #需要同步的字段[*]则表示所有列id,user_id,username,email,phone_number,status,score],where: id3, #where过滤条件可以过滤掉不需要同步的数据connection: [{jdbcUrl: [jdbc:mysql://*************:3306/hadoop #需要同步的数据库url],table: [user_info #需要同步的数据库表名]}],password: **********, #数据库密码splitPk: , #分片字段如果不指定则只会有单个Taskusername: root #数据库用户名}
}HDFSWriter的配置说明
{name: hdfswriter, #Writer的名称固定写法可以从官方文档中获取到如上DataX的数据源支持中的表格parameter: {column: [ #列信息包括列明和类型的设置{name: id,type: bigint},{name: user_id,type: bigint},{name: username,type: string},{name: email,type: string},{name: phone_number,type: string},{name: status,type: string},{name: score,type: string}],compress: gzip, #HDFS压缩类型text文件支持gzip和bzip2orc文件支持NONE和SNAPPYdefaultFS: hdfs://hadoop001:8020, #HDFS文件系统namenode节点地址fieldDelimiter: \t, #同步到HDFS文件字段的分隔符fileName: user_info, #HDFS文件名前缀如下图所示fileType: text, #HDFS文件类型目前支持text和orcpath: /user_info, #HDFS文件系统目标路径writeMode: append #数据写入模式append追加nonConflict若写入目录有同名文件【前缀相同】则会报错}
}3、执行同步
python /wz_program/datax/bin/datax.py /wz_program/datax/job/user_info.json4、验证同步结果
进入hdfs查询同步后的文件前缀即为我们配置的名称下载该文件查询同步的结果
同步结果如下