0


DataX和Oracle使用案例

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数据库教程见下方链接:

https://juejin.cn/post/7197066611453804581

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的数据:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DC83cDRA-1675910623327)(./1.jpg)]- 导入MySQL前表student的数据:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dFA53KI8-1675910623328)(./2.jpg)]- 导入MySQL后表student的数据:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gbBWuYv6-1675910623329)(./3.jpg)]

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和其他数据库之间的数据导入导出本质上是一样的,都是通过模板配置文件来实现操作,大同小异。

全文结束!

标签: oracle 数据库 mysql

本文转载自: https://blog.csdn.net/m0_52735414/article/details/128948901
版权归原作者 WHYBIGDATA 所有, 如有侵权,请联系我们删除。

“DataX和Oracle使用案例”的评论:

还没有评论