[ABI 5.2] 百万数据如何同步最快

7054
4

jun2020 小试身手Lv3

发表于2022-3-2 11:24

悬赏1

已解决

楼主
从源数据库抽取百万条数据,每次同步都很慢,如何同步最快?

最近看过此主题的会员

esen_5F7WOBYEX9

杨国签

ESENSOFT官方技术支持

邻居门口晒花椒

伶俐

34KX4BDK48X6

yinhucdi

颜值区总司令

最佳答案
数据分区大数据量抽取
      对于这种大表结构的表,可以对库表进行分区,通过每个分区并行执行,可以优化数据抽取耗时比。

例如库表是按月进行分区,那么交换任务中使用:SQL输入+表输出组件,通过【SQL输入】组件将分区中的数据查询出来,最后存入数据库表中,如下了图:

根据不同区分创建多个交换任务,然后在交换任务流中利用分支任务,连接多个交换任务,以实现并行的效果,如下图:
4个回答

只看楼主

颜值区总司令 数据老手Lv5

发表于2022-3-2 13:35

只看该作者

取消 关注该作者的回复

沙发

您是使用的ABI数据整合吗,ETL里只有表输入和表输出组件吗

jun2020 小试身手Lv3

发表于2022-3-2 14:18

只看该作者

取消 关注该作者的回复

板凳

颜值区总司令 发表于 2022-3-2 13:35
您是使用的ABI数据整合吗,ETL里只有表输入和表输出组件吗

是的,ETL整合数据,只有输入和输出组建,没有其他组建

颜值区总司令 数据老手Lv5

发表于2022-3-2 14:34

只看该作者

取消 关注该作者的回复

地板

常规数据转换优化
遇到Etl性能不好时,可以使用以下通用方法来提升Etl性能。

表输入输出优化
使用表输入+表输出组件数据抽取,明明数据量只有几十万,为什么耗时却要半个小时呢?可能是你忽略了表输出组件中“目标表设置”页面的功能。

对于表输出组件的“更新方式”作用肯定都知道,但是【直接路径插入】、【截断表】、【批量大小】的作用大家知道吗?这三个设置就是数据写入提升效率的关键所在。

直接路径插入 :使用直接路径方式插入数据,数据库在表中已有数据之后追加数据,即直接使用高水位线以上的新块,不会像传统路径一样去扫描高水位线以下的空闲块使用,并且直接路径插入不会记录undo日志。相对于传统路径插入,直接路径插入效率提高很显著。

截断表:默认情况下,清空表使用delete方式,勾选【截断表】后使用truncate方式清空表数据,truncate快速清理,但是不可回滚。

批量大小:插入数据时,每次批量提交的记录行数,如果设置太小就要频繁访问目标数据库,如果太大一直存在内存中可能内存溢出。

推荐最佳设置:勾选【直接路径插入】、【截断表】,批量大小:5000。 设置后,同库oracle数据抽取,可以达到10000条/s,oracle->oracle异库数据抽取,可以达到5000/s,大大提升了运行耗时,如下图设置:

颜值区总司令 数据老手Lv5

发表于2022-3-2 11:24

只看该作者

取消 关注该作者的回复

5#

数据分区大数据量抽取
      对于这种大表结构的表,可以对库表进行分区,通过每个分区并行执行,可以优化数据抽取耗时比。

例如库表是按月进行分区,那么交换任务中使用:SQL输入+表输出组件,通过【SQL输入】组件将分区中的数据查询出来,最后存入数据库表中,如下了图:

根据不同区分创建多个交换任务,然后在交换任务流中利用分支任务,连接多个交换任务,以实现并行的效果,如下图:

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号