mysql增量同步到oracle_利用kettle实现oracle到mysql数据库增量同步方案自创)
在线QQ客服:1922638专业的SQL Server、MySQL数据库同步软件?最近参与了一个BI项目的早期阶段,在构建数据仓库时遇到了许多问题,主要问题是,源具有以下方面:1将不同的业务数据放置在不同类型的数据库中(Oracle和mysql,Excel等)。2源数据库不同,表结构创建语句和设计也不同,导致同步性差。3源数据库仅提供只读状态,而无法启动,停止和写入源。4如果未在源数据库中定义和更
在线QQ客服:1922638
专业的SQL Server、MySQL数据库同步软件
?最近参与了一个BI项目的早期阶段,在构建数据仓库时遇到了许多问题,主要问题是,源具有以下方面:
1将不同的业务数据放置在不同类型的数据库中(Oracle和mysql,Excel等)。
2源数据库不同,表结构创建语句和设计也不同,导致同步性差。
3源数据库仅提供只读状态,而无法启动,停止和写入源。
4如果未在源数据库中定义和更新时间字段,则无法实现增量同步。
因此,纠缠和选择了哪种同步方案。
?其实有很多解决方案,例如oracle的sqldevelop中的sqlload,也尝试使用mysqldump,mysqldump,python,OGG,可以说只有实践知道有缺点。有关详细信息,请参见https://www.cnblogs.com/andy6/p/6959028.html。你懂?为什么选择水壶?
这是有关如何使用Kettle实现从oracle到mysql的增量同步的详细介绍,这也是一个摘要。
1选择服务(cpu,磁盘空间,内存越好越好,请安装?Ubuntu,下载并安装水壶软件,安装mysql。水壶安装和mysql安装非常简单,注意安装水壶所需的lib使用oracle和mysql的jar包,否则数据库将无法远程连接。配置主机网卡以确保网络畅通。
2打开烧水壶,创建一个新的事务,并添加一个控制文本文件Input,将记录复制到结果中:open file input实际上是您需要同步的文本文件,而文本文件中的内容就是您需要同步的表的名称。在这里,您需要将表名称分配给一个字段值。?
。
3获得结果后,我们需要将结果分配给变量。编写单独的事务并定义变量名称。适用于整个循环。
4新事务,创建每个数据库都链接到create表输入和表输出。注意表输入和表输出变量的使用以及提交的数量。
(我在这里是因为中间数据仓库中使用了mysql,因为每个表几乎没有时间字段,如果有编辑时间字段,建议将变量添加到Time中作为增量同步的时间戳,因此在oracle端为每个表创建一个增量物化视图,每个表的增量同步仅同步不相等的生产业务表的数据到其自己的增量实例化视图,伪列rowid用作增量的唯一指示以及判断它是否为增量的条件,在同步每个表之后,将立即刷新任务,并刷新增量实例化视图这样就可以达到增量同步的效果,不会有数据缺陷,以前已经完成了完全的数据同步,时间是i的数十倍。增量同步。可以看出,数据量很大。最好只使用增量同步。)
1创建数据库链接
<0> 4在oracle端创建一个实例化视图,这里需要先创建实例化视图日志,创建增量实例化视图时,要在mysql端结构上使用类似于oracle的表。/p>
在创建相同的表结构时,将遇到许多问题。(1同步数据会产生乱码问题,utf8
5建立数据库链接后,相同的表结构在mysql端,接下来的常见工作。我使用在Transaction之前在这里创建的作业,最后一个用于刷新物化增量物化视图,这意味着在每次将增量数据同步到mysql之后,继续刷新oracle增量物化视图,因此不会有时间差数据不同步问题。
6创建一个新作业并制定自动化任务,第一个事务和后来创建的作业被合并到一个自动化过程中,请注意,由于变量循环问题,jOB无法实现所有功能。每10分钟或每天一次刷新。请在此处查看特定需求。
-p模式剩下; “>
推荐的联合引擎表。数据可以实时远程访问。这里没有说明具体操作。与oracle dblink类似,但有很大区别。
8数据仓库建立之后,可以实时访问远程只读mysql对其性能没有影响,并且可以访问oracle,并在其自己的数据库中构建数据仓库模型。

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)