Kettle是一款国外开源的ETL工具,纯java编写,可以在Windows、Linux、Unix上运行,数据抽取高效稳定。
1. 说在前面的话
最近遇到客户因成本限制,想用开源工具Kettle(现在更名叫PDI了)进行定时数据抽取到Oracle自治数据仓库(ADWC)。因在服务器上使用OCI模式连接失败,改为使用JNDI+JDBC Thin模式连接成功。ADW支持多种连接方式(见下图),本文档只讨论JDBC thin模式,其它连接方式请参见我的其它笔记。
2. 下载ADW客户端凭据
登入Oracle Cloud,进入创建的ADW界面,点击服务控制台。
Administration > Download Client credentials (Wallet)
输入一个密码之后,点击Download按钮。(BTW: 这个密码用于保护下载credential中PKCS12,java keystore和truststore文件)
浏览器会下载一个名为” Wallet_<ADW_NAME>.zip”的压缩包,解压后放到电脑中,这里例位置为: D:\instantclient_18_3\network\admin\anbao
3. 如果JDK版本低于JDK8u162,下载 JCE文件
下载地址: https://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
将将下载好的jce解压后文件拷贝到JDK安装路径jdk1.8.0_221\jre\lib\security下
4. 下载JDBC相关JAR包
19.3 JDBC driver 或者 18.3 JDBC driver均可。
这里我采用JDBC 8,下载解压后提取ojdbc8.jar, raclepki.jar, osdt_core.jar, osdt_cert.jar(粗暴点就复制所有jar包,嘿嘿)到Kettle相应lib目录中(例中为:D:\pdi-ce-8.3.0.0-371\data-integration\lib)。
5. 在Kettle中配置连接
5.1 配置JNDI
修改Kettle中jdbc.properties 文件。(例中目录: D:\pdi-ce-8.3.0.0-371\data-integration\simple-jndi),添加新行(密码已隐藏)如下:
ThinConn/type=javax.sql.DataSource
ThinConn/driver=oracle.jdbc.driver.OracleDriver
ThinConn/url=jdbc:oracle:thin:@anbaoadw201909_low?TNS_ADMIN=D:\\instantclient_18_3\\network\\admin\\anbao
ThinConn/user=erp
ThinConn/password=***
其中TNS_ADMIN指定wallet所在文件夹,anbaoadw201909_low为ADW连接字符串,需配置Oracle Client。
如果没有安装oracle客户端,可以直接复制连接字符串
ThinConn/url=jdbc:oracle:thin:/@(description= (address=(protocol=tcps)(port=1522)(host=adb.us-ashburn-1.oraclecloud.com))(connect_data=(service_name=vhtn8jjg3nsyglx_xxxadw_high.adwc.oraclecloud.com))(security=(ssl_server_cert_dn="CN=adwc.uscom-east-1.oraclecloud.com,OU=Oracle BMCS US,O=Oracle Corporation,L=Redwood City,ST=California,C=US")))
5.2 Kettle中配置数据库连接
6. 结语
原创文章,需转载请留言和私信联系。如有疑问,欢迎留言或私信共同探讨。