Oracle ADW自治数据仓库不仅是一种领先的数据仓库解决方案,内置了强大的服务管理和机器学习等工具来帮助您更好地管理和使用您的数据;而且是一个非常开放的架构,支持企业数据开发、数据集成和商务智能分析的多种工具,不仅包括Oracle的诸多工具,也支持许多第三方的云上或云下的工具。
在数据集成服务方面,ADW就支持多种工具和方法,轻松完成将数据集成。比如Oracle 公司提供的OGG、OGGCS、ODI、ODICS等工具,以及Data Virtually Pipes、WANdisco和Informatica PowerCenter等第三方的工具。下面我们将使用开源ETL工具kettle将本地Oracle数据库中的数据导入到ADW,完成简单的数据交换。
演示环境:
1.本地Oracle数据库,解锁HR模式,我们将使用其中的REGIONS表作为源表;
2.假设已获得一个Oracle ADW的实例,并下载了wallet文件。
实现方式:
在Kettle上创建一个转换任务,将本地数据库中表REGIONS的数据导入到ADW上表REGIONS2。
实现步骤:
1. 配置JDK环境
在使用kettle之前,需要安装JRE或JDK环境(注意:需要安装64位版本)。
步骤1:下载并安装JDK,下载链接:https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html
步骤2:配置JDK环境变量,将JDK安装目录下bin目录地址增加到系统变量Path的结尾。
2.下载kettle软件包
步骤1:下载最新版本kettle,下载链接:https://community.hitachivantara.com/docs/DOC-1009855
步骤2:将下载包解压到准备存放的位置,本次实验直接放在了C盘(C:\pdi-ce-8.2.0.0-342)。
3. 配置Oracle Instant Client
因为kettle连接ADW要使用OCI的方式,所以需要下载并配置Oracle Instant Client。
步骤1:下载 instantclient-basic-windows.x64-18.5.0.0.0dbru.zip 和 instantclient-sqlplus-windows.x64-18.5.0.0.0dbru.zip 两个压缩包,并解压到同一个目录下面,本次实验直接放在了C盘(C:\instantclient_18_5),下载链接:https://www.oracle.com/technetwork/topics/winx64soft-089540.html,
步骤2:在instantclient_18_5目录下创建network\admin目录,将ADW的wallet加密包复制到admin目录下,并解压。
步骤3:修改sqlnet.ora文件,更改DIRECTORY参数,使其指向步骤2创建的存放wallet目录。
步骤6:配置环境变量:增加path变量,将值指向Oracle Instant Client安装目录;新建TNS_ADMIN变量,将值指向步骤3创建的目录。
4.配置kettle依赖包
步骤1:在kettle安装目录的lib文件下确认已经包含ojdbc8.jar的文件。
步骤2:将instantclient_18_5目录下的ocijdbc18.dll文件拷贝至kettle的pdi-ce-8.2.0.0-342\data-integration\libswt\win64目录下。
5.准备环境
本次Demo主要演示通过kettle导入数据到ADW中,因此创建一个简单测试。
步骤1:查看本地Oracle数据库中REGIONS表的数据,主要有4行数据,每行数据有两个属性。
步骤2:使用下面的SQL命令。在ADW中创建表REGIONS2,REGIONS2与REGIONS具有同样的表结构,但表REGIONS2不包含任何数据。创建表的SQL语句如下:
CREATE TABLE REGIONS2
(
REGION_ID NUMBER NOT NULL,
REGION_NAME VARCHAR2(25)
);
6.数据导入
使用kettle创建简单转换任务,将region数据从本地数据库的表REGIONS中导入到ADW的表REGIONS2中。
步骤1:在kettle目录pdi-ce-8.2.0.0-342下的data-integration中找到spoon.bat文件,通过双击它,启动kettle工具,并创建一个新的转换任务并保存,命名为ADW。
步骤2:点击“主对象树”,新建DB连接,创建与本地数据库的连接,如下图设置相关信息,然后点击“测试”按钮,确认是否配置正确。
步骤3:新建DB连接,创建与ADW的连接。注意,这里要选择OCI的方式,然后点击“测试”按钮,确认是否配置正确。
步骤4:至此,我们已经完成kettle与源数据库及目标数据库的连接。可以在“主对象树”下发现DB连接有LOCAL和ADW。
步骤5:点击“核心对象”,分别从“输入”中拖拽“表输入”,从“输出”中拖拽“插入/更新”到任务窗口。
步骤6:配置“表输入”,双击“表输入”,数据库连接选择LOCAL,将本地数据库作为数据源。这里配置简单SQL语句,将REGIONS表中的所有数据查询出来。可以通过“预览”查看预览数据,然后点击“确定”。
步骤7:配置“插入/更新”,双击“插入/更新”,数据库连接选择ADW,将ADW中的表REGIONS2作为目标表。设置“用来查询的关键字”,并将“REGION_ID”关键字作为执行的逻辑,即如果REGIONS表中的记录在REGIONS2中不存在,那么就插入它;设置“更新字段”,更新关键条件和映射。设置完成后点击保存。
步骤7:在“表输入”上同时按住shift健和鼠标左键滑向“插入/更新“,建立“表输入”和“插入/更新”的连接。
步骤8:运行这个转换,单击“启动”,实现数据的导入。
6.数据验证
验证1:通过查看Kettle执行结果中的日志,kettle数据转换完成,成功将数据从本地导入ADW。
验证2:通过SQL查询显示REGIONS2中的数据,数据从LOCAL数据库成功导入ADW中。
扫描下方QR Code即刻预约ADW演示
编辑:殷海英