oracle到数据仓库inceptor数据同步工具部署
下载安装dbeaver
首先下载连接数据仓库的工具dbeaver,连接数据仓库
之后按照下一步进行连接工具的安装,安装完成之后利用dbeaver工具连接数据仓库,
连接数据仓库
连接过程如下:
切换到位置:C:\Program Files\DBeaver或者在桌面上直接点击dbeaver.exe,打开工具
点文件下面的插头图标:
进入到如下界面
找到自己需要连接的数据库的标识进行连接。我连接星环的数据仓库,需要使用hadoop下面的Apache Hive进行连接,之后点下一步
点击编辑驱动设置,进入如下界面进行设置
点击添加文件,将需要加入的驱动加入到库中,如图所示,驱动如下
添加好之后点确定
最后点测试连接,连接成功即可
连接成功界面如图所示:
创建新的数据库
之后建立新的database,打开sql编辑器,执行如下sql:
Create database LGJG001;
创建新表
创建完成后打开sql编辑器,最上面菜单栏中切换数据库
新创建数据库完成之后创建新表:
创建数据转换
之后打开文档D:\data-integration\data-integration:
点击Spoon.bat
进入之后新建转换:
创建完成之后进行保存到本地
新建数据库连接
之后新建数据库连接向导:
星环数据仓库的连接信息如下:
用户名和密码:admin
填写完成之后测试确认即可,之后新建和oracle数据库的数据连接向导:
用户名:C##123 密码:123456
测试确认
创建成功样式:
之后创建转换的具体表单以及转换数据库
创建数据同步
全量数据传输
在核心对象中找到表输入
表输入的具体内容设置如下:
之后在核心对象中找到输出-表输出:
表输出中的内容设置:
之后保存,运行,如下图:
运行成功:
Oracle数据同步到incepter数仓验证:
同步前:
Incepter中的表scexptor:
进行同步:
同步过程中报错提示如下图:
cannot recognize input near 'open , high' in column name
解决方案:语法兼容问题,去掉批量插入即可
同步后
增量数据传输:
Inceptor-oracle
Oracle-inceptor
创建数据传输定时任务
工具:crontab,kettle
首先安装crontab
安装crond服务和crontab工具(CentOS7)
yum clean all 清理yum缓存
yum update 更新系统安装包到最新版本
yum install -y cronie crontabs 安装crond服务和crontab工具到centos中
验证crond 服务
验证crond服务和crontab工具(CentOS7)
检查crond服务是否安装及启动:yum list cronie&&systemctl status crond
检查crontab工具是否安装:yum list crontabs&&which crontab&&crontab -l
验证crond服务
验证crontab工具
cronrab工具使用方法以及配置:CRONTAB - 简书
LINUX系统环境变量设置
vi /etc/profile
在文件最底部添加
PATH=$PATH:/usr/local/jdk1.8.0_111/bin
export PATH
用户级别环境变量设置
vi /root/.bash_profile
如果原来有PATH=$PATH:$HOME/bin
在后面追加
PATH=$PATH:$HOME/bin:/usr/local/jdk1.8.0_111/bin
export PATH
在配置系统与用户级别环境变量后编写shell脚本与环境变量配合完成crontb表单任务的执行操作。
vi /root/test.sh
java -version 2>/root/script.out
crontab -e 添加crontab计划任务
* * * * * source /etc/profile;sh /root/test.sh
* * * * * source /root/.bash_profile;sh /root/rest.sh
systemctl restart crond 重启计划任务,使任务生效
执行文件的位置:https://www.cnblogs.com/qzqdy/p/8268389.html
kettl中定时任务的安装和配置
安装kettle所需的驱动以及依赖
Oracle对应的驱动:
位置:oracle对应的服务器上
/u01/app/oracle/product/19.3.0/dbhome_1/jdbc/lib/
将这些驱动复制到kettle的安装包lib下,如图:
Incepter的驱动:
放在kettle的安装包下的lib下,如上图
Kettle的安装
在linux中的安装
首先下载版本是 : pdi-ce-8.2.0.0-342
网址如下:
源代码下载地址
https://github.com/pentaho/pentaho-kettle/
官网下载地址:
https://nchc.dl.sourceforge.net/project/pentaho/Pentaho 8.2/client-tools/pdi-ce-8.2.0.0-342.zip
百度网盘下载地址:百度网盘 请输入提取码
提取码:lfwh
安装前先查看是否已经安装jdk
查看版本:java -version
首先创建对应的目录:
[root@node-1 ~]# mkdir /root/software/kettle
之后用xftp上传,之后解压:
[root@node-1 kettle]# unzip pdi-ce-9.1.0.0-324.zip
解压成功之后在命令中输入./pan.sh 测试是否安装完成:
root@node-1 data-integration]# ./pan.sh
如下图则为安装成功了
之后将对应数据库的驱动放在/root/software/kettle/data-integration/lib/如下图:
之后测试转换任务是否能够正常运行:
[root@node-1 data-integration]# ./pan -file=/root/software/kettle/data-integration/file/oracle-in cepter.ktr -norep
如下图则为正常:
设置定时任务
在本地设置转换完成之后抽取数据是否成功,成功后将保存的转换和作业放在linux服务器上
之后执行:
[root@node-1 data-integration]# ./pan -file=/root/software/kettle/data-integration/file/oracle-in cepter.ktr -norep
设置sh的脚本
sh 的位置:vim /root/software/kettle/data-integration/oracle-incepter.sh
内容如下
#!/bin/bash
cd /root/software/kettle/data-integration;
./pan.sh -file=/root/software/kettle/data-integration/file/oracle-incepter.ktr -norep >> /root/software/kettle/data-integration/log.log
设置crontab定时任务
Crontab -e
内容:
00 02 * * * sh /root/software/kettle/data-integration/oracle-incepter.sh
测试定时任务
完成之后进行定时任务的测试
执行成功的日志如下:
问题整理
问题:跑定时任务的时候提示
解决方案:
sudo yum install webkitgtk-2.4.9-1.el7.x86_64.rpm
执行sudo yum install webkitgtk-2.4.9-1.el7.x86_64.rpm提示:
通过手工下载之后执行:
如果下载之后还是报错。那就是文件在下载的时候损坏了,重新下载即可
下载lib64webkitgtk1
rpm -i lib64webkitgtk1.0_0-2.4.11-8-omv4002.x86_64.rpm
下载rpm
利用wget下载东西时,比如输入指令wget www.baidu.com
提示报错
“wget: unable to resolve host address …”
wget:无法解析主机地址。这就能看出是DNS解析的问题
解决办法:修改/etc/resolv.conf文件,添加nameserver即可,下面给出两个通用的谷歌域名服务器,如果有自己解析服务器也可以换成自己的
vim /etc/resolv.conf
nameserver 8.8.8.8 #google域名服务器
nameserver 8.8.4.4 #google域名服务器