kettle 同步Oracle 与 Postgres
环境: PDI 8.2 ,windows, oracle 12C, postgres 12
整个过程性能很好,10分钟+1分钟完成。接下是动态更新任务。
所使用的时间戳字段必须是按时间入库的字段,不能是业务数据的时间戳字段。比如入库时间是递增的,业务里面的某一个时间戳字段不一定就是递增的。
在spoon上,建立一个数据库连接postgres_150,并共享出来。
建议使用jndi的方式,下面更新后,需要重启spoon(这是它的缺点)
simple-jndi/jdbc.properties的设置如下:
postgres_150/type=javax.sql.DataSource
postgres_150/driver=org.postgresql.Driver
postgres_150/url=jdbc:postgresql://ip:ports/yourdatabase
postgres_150/user=username
postgres_150/password=****
1.建立时间中间表
create table D_BZDZ_MLP_TIMES
(id NUMERIC not null,last_load TIMESTAMP(6),current_load TIMESTAMP(6)
)
插入初始化的数据
INSERT INTO topology.d_bzdz_mlp_times(id, last_load, current_load)VALUES (1, to_timestamp('1971-01-01 01:01:01','YYYY-MM-DD HH24:MI:SS'),
to_timestamp('1971-02-02 01:01:01','YYYY-MM-DD HH24:MI:SS') );# 或者
INSERT INTO topology.d_bzdz_mlp_times(id, last_load, current_load)VALUES (1, '1971-01-01 01:01:01'::timestamp,'1971-01-01 01:01:01'::timestamp);
2..先把数据一次性从Oralce导入postgres,采用表输入和表输出
在表输出中通过SQL建立表,添加gemo字段,注意Oracle与postgres数据类型的不一样。
如果目标表和源表的字段类型不一致,需要在select * ^语句中转换,比如to_number("string")把字符串转成数字
create table D_BZDZ_MLP_new
(systemid VARCHAR(50),sssqcjwhdm VARCHAR(13),ssjlxdm VARCHAR(20),sspcsdm VARCHAR(12),dzxxd TEXT,
........... ......zxjd NUMERIC(30,20),zxwd NUMERIC(30,20),geom GEOMETRY(Point,4326),zxzt TEXT,smzt TEXT,sffw TEXT,uuid VARCHAR(50),cccjsj TIMESTAMP(6),lastupdatedtime TIMESTAMP(6)
)
Postgres中对表建立索引
不建立索引的话,后面的插入/更新转换步骤会非常慢。
因为插入/更新都需要进行select操作(这里是select systemid ***),再决定是插入还是更新。
create index d_bzdz_mlp_idx_sysid on d_bzdz_mlp(systemid);
然后建立一个转换,从Oralce中输入,输出到Postgres,一次性批量输出数据。
具体步骤包括:获取系统时间、更新时间中间表、获取时间中间表数据、查询数据、表输出。
记下上面同步完毕的时间,对时间中间表进行更新:
update topology.D_MLP_TIMES set last_load = current_load where id=1;
3.建立四个转换,用一个作业把这四个转换运转起来。
3.1时间同步转换
从systemdate 获取当前时间,插入更新时间中间表的 当前时间
3.2 数据同步转换。
按照时间中间表,从oracle中查询变化的数据
SELECTLAST_LOAD last_load
, CURRENT_LOAD current_load
FROM topology.D_BZDZ_MLP_TIMES
last_load 和 current_load 作为参数传入下面的查询
SELECTsystemid,.....zxjd,zxwd,
......cccjsj,lastupdatedtime
FROM LG.D_MLP
WHERE (x > 112.916 and x <114.082 and y>22.526 and y>24.005) AND lastupdatedtime >= ? AND lastupdatedtime < ?
把上面表输入的数据,插入/更新到postgres
以systemid作为查询的关键字
3.3 时间中间表同步转换
这是一个SQL脚本转换
update topology.D_BZDZ_MLP_TIMES set last_load = current_load where id=1;
3.4 更新geom字段
update table set geom=ST_SetSRID(st_point(x,y),4326) where geom is null ;
kettle 同步Oracle 与 Postgres相关推荐
- Kettle连接Oracle
kettle通过域名或者IP连接Oracle,因为今天客户要求把数据库由原来的MySQL切换到Oracle,历史数据的迁移.本篇博客主要讲解kettle连接Oracle数据库.本机不需要安装Oracl ...
- kettle 连接 Oracle 异常
kettle 连接 Oracle 异常 参考文章: (1)kettle 连接 Oracle 异常 (2)https://www.cnblogs.com/taadis/p/10622297.html 备 ...
- Navicate在同步oracle数据,不同数据库之间同步
下载网站:www.SyncNavigator.CN 客服QQ1793040 ---------------------------------------------------------- 关 ...
- kettle oracle数据从库到库,kettle 使用oracle数据库当做资源库
kettle 使用oracle数据库当做资源库 kettle 使用oracle数据库当做资源库 连接oracle 12C数据库同理 第二步 找到kettle的安装目录下的 jdbc.propertie ...
- Ogg For Bigdata 同步Oracle数据到KAFKA(包括初始化历史数据)
OGG同步Oracle数据到KAFKA:OGG初始化进程初始化历史数据 在前面曾写过几篇关于OGG同步Oracle等库数据到kafka的文章: OGG实时同步Oracle数据到Kafka实施文档(供f ...
- 【大数据实时数据同步】超级详细的生产环境OGG(GoldenGate)12.2实时异构同步Oracle数据部署方案(中)
系列文章目录 [大数据实时数据同步]超级详细的生产环境OGG(GoldenGate)12.2实时异构同步Oracle数据部署方案(上) [大数据实时数据同步]超级详细的生产环境OGG(GoldenGa ...
- kettle连接Oracle数据库详细步骤
kettle连接Oracle数据库详细步骤 JDK版本:1.8.0_281 PDI(kettle的新名字)版本:7.1.0.0-12 首先打开 "pdi-ce-7.1.0.0-12\data ...
- 使用OGG/Kettle实现Oracle到MySQL数据平滑迁移
本文目录: 一.OGG概述 (一)OGG逻辑架构 二.迁移方案 (一)环境信息 (二)表结构迁移 (三)数据迁移 1.源端OGG配置 (1)Oracle数据库配置 (2)Oracle数据库OGG用户创 ...
- kettle读取不到oracle,kettle链接Oracle数据库,百试不爽!
今天关于kettle在新建oracle数据连接失败的原因及处理办法在此给大家进行详细解析.(此文档有图片,有详细图片的word文档点击此处下载) 具体:工具-向导-创建数据连接向导-输入数据库连接名称 ...
- oracle standby同步,ORACLE 利用rman增量备份同步standby库
standby库归档日志断档,故standby库不能利用恢复归档日志和生产库保持同步,因生产库有1T多,重拉数据将非常耗时,遂利用RMAN对生产库进行增量备份,将增量备份集合成到standby库,利用 ...
最新文章
- zend studio自动添加文件注释和方法注释
- ossfs工具将OSS挂载到阿里云linux系统目录例子
- 《推荐系统实战(二)》音乐推荐系统(数据清洗、召回、排序)
- MetadataReader、ClassMetadata、AnnotationMetadata的简单使用
- 计算机五笔是什么时候学的吗,电脑五笔打字入门口诀(5分钟就能学会五笔)...
- Linux的百度云有限速吗,mac(linux)下配置aria2解决百度云限速问题
- 小米与泰尔实验室联合发布《多模态技术白皮书》
- 松下plc编程软件_松下PLC编程软件Control FPWIN Pro7.3.2.0
- 组装计算机硬盘的选购,组装电脑教程:DIY组装电脑怎么选择硬盘
- 查询2021高考成绩位次,2021年江苏高考位次表及高考个人成绩排名查询
- CSS改变table内置tbody滚动条
- 一切成功源于积累——20140928 认识货币——英镑
- Pluck Cms文件上传结合命令执行复现
- 关于校园招聘 - 秋招和春招
- Day9 化学方程式配平
- 无线AP和无线路由器区别 wifi热点
- Hello Playwright:(8)等待页面加载
- 一篇文章扫盲手机SIM卡相关知识
- Java三种设计模式
- JAVA基础班入学考试试卷