DataX和Oracle使用案例
文章目录
0. 写在前面
- 版本信息说明:
Oracle、MySQL数据库和DataX安装在一台机器node01上
DataX版本:DataX3.0(开源版)
Oracle版本:Oracle19c
说到数据库,我们都能想到类型分为关系型和非关系型数据库;Oracle和MySQL都是属于关系型数据库管理系统,在正文开始之前,有必要了解一下Oracle和MySQL在SQL方面的一些区别,以便参考
- 数据库Oracle 与 MySQL 的SQL 区别
类型OracleMySQL整型number(N)/integerint/integer浮点型floatfloat/double字符串类型varchar2(N)varchar(N)NULL‘’null 和’'不一样分页rownumlimit""限制很多,一般不让用与单引号一样价格闭源,收费开源,免费主键自动增长×√if not exists×√auto_increment×√create database×√select * from table as t×√1. 从 Oracle 中读取数据存到 MySQL
1.1 MySQL 中创建表
进入MySQL交互界面,在oracle这个库下创建表student,字段为id和name,具体sql语句如下所示:
[oracle@node01 ~]$ mysql -uroot -p000000
mysql> create database oracle;
mysql> use oracle;
mysql> create table student(id int,name varchar(20));
1.2 编写 Datax 配置文件
编写配置文件
oracle2mysql.json
[oracle@node01 ~]$ vim /opt/module/datax/job/oracle2mysql.json
{"job":{"content":[{"reader":{"name":"oraclereader","parameter":{"column":["*"],"connection":[{"jdbcUrl":["jdbc:oracle:thin:@node01:1521:orcl"],"table":["student"]}],"password":"123456","username":"whybigdata"}},"writer":{"name":"mysqlwriter","parameter":{"column":["*"],"connection":[{"jdbcUrl":"jdbc:mysql://node01:3306/oracle","table":["student"]}],"password":"123456","username":"root","writeMode":"insert"}}}}
注意:
jdbc:oracle:thin:@node01:1521:orcl
中的
orcl
指的是数据库名(安装Oracle数据库时设置的SID),同时要注意Oracle的数据库连接方式url的书写。
Linux安装Oracle数据库教程见下方链接:
1.3 执行命令
执行命令如下 :
[oracle@node01 ~]$ /opt/module/datax/bin/datax.py /opt/module/datax/job/oracle2mysql.json
查看datax执行后MySQL中student表的数据结果:可以看到数据导入成功了
mysql>select*from student;+++| id | name |+++|1| zhangsan |+++
数据从DataX导入MySQL数据库前后的对比
- Oracle导入MySQL前后:- Oracle表student的数据:- 导入MySQL前表student的数据:- 导入MySQL后表student的数据:
2. 读取 Oracle 的数据存入 HDFS 中
2.1 编写配置文件
编写配置文件
oracle2hdfs.json
[oracle@node01 datax]$ vim job/oracle2hdfs.json
{"job":{"content":[{"reader":{"name":"oraclereader",
"parameter":{"column":["*"],
"connection":[{"jdbcUrl":["jdbc:oracle:thin:@node01:1521:orcl"],
"table":["student"]}],
"password":"000000",
"username":"atguigu"}},
"writer":{"name":"hdfswriter",
"parameter":{"column":[{"name":"id",
"type":"int"},
{"name":"name",
"type":"string"}],
"defaultFS":"hdfs://node01:8020",
"fieldDelimiter":"\t",
"fileName":"oracle.txt",
"fileType":"text",
"path":"/",
"writeMode":"append"}}}],
"setting":{"speed":{"channel":"1"}}}}
2.2 执行命令
执行命令如下:
[oracle@node01 datax]$ bin/datax.py job/oracle2hdfs.json
2.3 查看HDFS 结果
HDFS成功导入Oracle数据库表student的数据进入
oracle.txt_xxxxxxxxxxxxxxx
文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-55sP74PR-1675910623330)(./4.jpg)]
3. 总结
全文其实最主要的是Oracle数据库是否成功安装,这是最关键的一点,完成了这一步骤,DataX和其他数据库之间的数据导入导出本质上是一样的,都是通过模板配置文件来实现操作,大同小异。
全文结束!
版权归原作者 WHYBIGDATA 所有, 如有侵权,请联系我们删除。