-
-
jun2020 小试身手Lv3
发表于2022-3-2 11:24
悬赏1
已解决
4个回答
常规数据转换优化
遇到Etl性能不好时,可以使用以下通用方法来提升Etl性能。
表输入输出优化
使用表输入+表输出组件数据抽取,明明数据量只有几十万,为什么耗时却要半个小时呢?可能是你忽略了表输出组件中“目标表设置”页面的功能。
对于表输出组件的“更新方式”作用肯定都知道,但是【直接路径插入】、【截断表】、【批量大小】的作用大家知道吗?这三个设置就是数据写入提升效率的关键所在。
直接路径插入 :使用直接路径方式插入数据,数据库在表中已有数据之后追加数据,即直接使用高水位线以上的新块,不会像传统路径一样去扫描高水位线以下的空闲块使用,并且直接路径插入不会记录undo日志。相对于传统路径插入,直接路径插入效率提高很显著。
截断表:默认情况下,清空表使用delete方式,勾选【截断表】后使用truncate方式清空表数据,truncate快速清理,但是不可回滚。
批量大小:插入数据时,每次批量提交的记录行数,如果设置太小就要频繁访问目标数据库,如果太大一直存在内存中可能内存溢出。
推荐最佳设置:勾选【直接路径插入】、【截断表】,批量大小:5000。 设置后,同库oracle数据抽取,可以达到10000条/s,oracle->oracle异库数据抽取,可以达到5000/s,大大提升了运行耗时,如下图设置: