千家信息网

ORACLE物化视图怎么解决CMS数据同步与来不及的DATA PIPLELINE

发表于:2025-02-24 作者:千家信息网编辑
千家信息网最后更新 2025年02月24日,这篇文章给大家介绍ORACLE物化视图怎么解决CMS数据同步与来不及的DATA PIPLELINE,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。为啥要牵扯仅DataPiple L
千家信息网最后更新 2025年02月24日ORACLE物化视图怎么解决CMS数据同步与来不及的DATA PIPLELINE

这篇文章给大家介绍ORACLE物化视图怎么解决CMS数据同步与来不及的DATA PIPLELINE,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

为啥要牵扯仅DataPiple Line, 因为如果有DataPipe Line,我下面的故事就不用写了。所以一项新技术和软件的开发可以解决不少头疼的问题。那下面就先来看看问题。

人有多少想法,其实就有能满足你需求的东西,例如Dta Pipleline ,它能解决的问题我现在就能想到几个

1 异构数据库的灰度发布,更换数据库系统的麻烦事就可以通过这个数据管道系统解决。

2 大数据的实时分析。

3 数据同步与单库对多库数据下发,并能解决可能出现的性能问题。

4 生产库到测试库的数据脱敏与数据实时同步

当然还有他本身的功能,数据管道。

故事是开始最近由于要拆分原有ORACLE数据库的部分功能,到MYSQL上,需要数据同步,数据库同步方法很多,但找到一个合适的确不容易,不是技术上困难,而是方法太多,可能会有选择恐惧症。而且我发现一个问题,就是怎么想都是简单的事情,到真做的时候,就变得不那么单纯了,各种问题出现,其实干了这么多年,大风浪还是见过的,所以一直不敢说,这个没问题,那个很一般,这个一定能行(当然打气,鼓励别人或自己的时候,还是要说的)。

任何一项技术的使用其实都要根据业务来决定,单纯从技术出发的方式来决定某项技术的使用,嗯...... 这次的任务的一开始其实想的很简单,就是使用Kettle 来进行数据的抽取从ORACLE 到 MYSQL ,而问题既不在KETTLE 也不在数据库的层面,问题的发生还是在非技术的层面,问题的在对CMS 系统的某些表的数据更改的触发点还不清楚,而如果以不清楚的方式来面对如何撰写相关的提取语句,则这样的结果就会引起一个关联的效应, 1 由于抽取数据的变化点无法找到,所以提取数据的点就无法找到,2 无法找到点,则就无法进行SQL语句的增量的提取 3 无法增量提取数据,开发的同学就无法获取正确的数据 4 无法有正确的数据则整个项目就要出现问题, 连锁反应。

解决问题从来不缺技术的方案,而是缺靠谱的和稳定的方案,所以一个方案的出台,尤其是一个没有尝试过的方案,则困难的程度和失败的可能性都是有的。我们一定要找到一个能从,业务,开发,运维,三方能都承受和认可的方案来进行方案的确定。

既然是某些取数的点和数据的变化还吃不准,怎么通过技术的手段让变化能被捕捉到,方法很多。

最近我们在开始测试 DATA PIPLELINE 如果通过DATA PIPLELINE 来做这个数据同步方案,其实事情将变得简单的多,首先是从底层来进行数据的抽取,同时也能定期的进行刷新等等,所以ORACLE 到 MYSQL 数据的流就像打开水龙头那么简单,数据和水一样要来就来,要关就关。当然有了DATAPIPLE LINE 我们的KETTLE 一大部分的功能都可以不再使用。

但好事其实都需要等,项目不会等,目前的需求还是得传统的方式获得变化的数据,并且在一个时间点,这就想到了 物化视图,通过物化视图 ON DEMAND + 时间点的方式,我们就可以很方便的知道我们关切的表在一天当中数据的变化情况。

说道物化视图,ORACLE 还是传统数据库里面最强悍的,其他的都没有ORACLE 来的功能多,方式多,所以各个数据库其实也应该学习,SQL SERVER 就在2016 搞出了一个 temporal Table, 虽然可以搞定部分问题,但本身对并发时的事务的BUG 也绝对够繁忙的系统喝一壶。

话归整体ORACLE 怎么能满足我们本次KETTLE 的数据物理的方式提取方式。

首先CMS 系统所在的ORACLE 需要将需要复制的表,建立物化视图,并且建立物化视图的日志。并且要求是表和物化视图都应该有 primary key,否则就要考虑其他的方法了。

貌似问题好像解决了,但其实出其不意的问题就在你觉得没有问题的时候发生了。

我们是通过 MLOG$_CMS_TEST 里面的ID

来进行判断数据是否为增量。

那问题就来了,

问题

1 数据在操作过程中,会有 I U D 三类的操作,但如果是D 则这条数据应该是被清除了,所以我们在复制的过程中,应该从我们的复制的语句中剔除这个ID。

2 那解决这个问题就用下面的语句,直接将已经删除的记录滤除,存在的只有 insert 和 update 两种语句,那问题貌似解决了,其实呢

3 实际上,没有,如果这时我在插入数据,因为按照主键的方式,则我还插入原来的已经删除的主键,则上面的语句就会出错,因为新插入的数据被过滤了。

所以忽略业务的方案都不大是一个稳重的方案,这里假设删除的数据不会再会补,并且也不会按照原来的主键进行插入。那上面的方案就不会有问题,否则还有漏洞。

最后,我还是期待用新技术来将某些业务中问题解决掉,快速,安全,稳定,例如我期待的 Data Pipleline 能增加 postgresql 目的端的功能,则那些期待从Oracle ,sql server ,转移到Postgresql 的项目人员的头发还能茂盛更长一段时间。

关于ORACLE物化视图怎么解决CMS数据同步与来不及的DATA PIPLELINE就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

数据 问题 方案 视图 方式 同步 数据库 技术 语句 还是 功能 系统 变化 业务 方法 面的 增量 时候 时间 部分 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 校园网络安全检查简报 山西农谷田润互联网科技 叮咚在线网络技术无锡有限公司 2021年网络安全微课视频展 目前运用最广泛的服务器类型 程序设计与数据库设计同时进行吗 二手服务器回收厂 小学生简单的网络安全ppt课件 科技成果转化数据库 正版直销软件开发公司 审计要审网络安全方面内容 sci数据库简要介绍 ftp服务器新建用户 软件开发工作室平台 在软件开发中实现代码编辑功能 湖南衡阳代理服务器 oracle查看数据库用户 数据库数据输入的重要性 幼儿园网络安全宣传周试题 百度云服务器异常稍后再试 软件开发最火的方向2019 如何查看db2数据库版本 宏鹏培训管理数据库 湖南便民平台软件开发系统 审计要审网络安全方面内容 软件开发外包失败后怎么办 维护记录软件开发 做亚马逊服务器个人好还是企业好 安卓数据库驱动程序 鸟叫声音软件开发
0