数仓工具使用-Datax

文章讲述了在MySQL中解决中文乱码问题的方法,通过修改特定字段的字符集为UTF-8,并介绍了阿里巴巴的DataX工具,它是一个异构数据源离线同步工具,用于MySQL到HDFS、Hive等多种数据源的数据迁移,包括配置、使用和Web工具的简要介绍。
摘要由CSDN通过智能技术生成

前置-解决中文乱码问题

解决方案-在mysql中执行

use hive;
alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;
alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
alter table PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8 ;
alter table PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8;
alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;

 comment出现乱码的原因就是因为创建hive表时使用的编码集为latin1不是utf8不支持中文

 不可以把hive的元数据库编码集直接改为utf8,因为修改后元数据将全部失效,但是我们可以将与comment相关的字段编码集进行修改.改为utf8.

注意: 修改编码集后创建的表comment才能变成中文,因为之前添加的数据已经按照latin1编码集进行编码了.无法改变.


DataX介绍

DataX 是阿里推出的一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。

将DataX安装好之后, 仅需要配置Json的采集文件即可实现数据的同步

DataX几个组成部分:

Reader:Reader为数据采集模块,负责采集数据源的数据,将数据发送给Framework。Writer:Writer为数据写入模块,负责不断向Framework取数据,并将数据写入到目的端。Framework:Framework用于连接reader和writer,作为两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问题。

 

经过几年积累,DataX目前已经有了比较全面的插件体系,主流的RDBMS数据库、NOSQL、大数据计算系统都已经接入。DataX目前支持数据如下:

DataX的国内的开源的地址: Gitee 极速下载/alibaba datax?_from=gitee_search (码云)  

DataX的GitHub的开源地址: https://github.com/alibaba/DataX

Datax中的插件使用json格式进行书写:

   json格式中仅有以下几种数据类型

           json格式中仅有以下几种数据类型

                         object数据类型: {键1: 值1, 键2: 值2....}

                         Array数据类型: [元素1, 元素2,......]

                         number数据类型: 1, 2, 11.2

                         string数据类型 : "name", "chuanzhi"

                         boolean数据类型: false , true

           在json格式中不能使用'' 只能使用""

           object数据类型的键,只能是字符串类型

           一般情况下, json格式的最外层是一个大object{}

           不能存在多余的, : 等符号


DataX使用

MySQL写入HDFS

1. 在mysql创建test数据库,在此数据库下创建student表,然后往表中插入数据。

drop database if exists test;
create database if not exists test character set utf8;
use test;
create table student(id int,name varchar(20),age int,createtime timestamp );
insert into `student` (`id`, `name`, `age`, `createtime`) values('1','zhangsan','18','2021-05-10 18:10:00');
insert into `student` (`id`, `name`, `age`, `createtime`) values('2','lisi','28','2021-05-10 19:10:00');
insert into `student` (`id`, `name`, `age`, `createtime`) values('3','wangwu','38','2021-05-10 20:10:00');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值