ETL性能优化

目录


概述

BeeDI内置多种机制用于ETL性能优化,可选择同步、异步、并发、缓冲更新等不同数据载入方式或调整提交缓冲记录数优化单一ETL任务性能,也可调整任务并发数优化多任务运行性能。BeeDI提供性能监测功能,可输出ETL各项操作与内存关系变化曲线,通过性能监测,确定ETL性能瓶颈,最终实现ETL性能优化。

性能选项

1 程序最大内存

在程序启动前通过配置文件项设置,程序实际最大内存分配取决于启动时系统空闲内存。

2 ETL性能选项

同步查询

单线程阻塞方式查询数据。

异步查询

多线程并行查询数据,采用缓冲区存储查询数据。

联邦运算

ETL服务器进行SQL运算,降低数据库运算负载。

日志解析

通过日志偏移位置获取日志后解析还原增量数据。

同步载入

单线程阻塞方式逐条写入数据到目标表。

异步载入

多线程缓冲区方式并行逐条写入数据到目标表。

批量载入

多线程缓冲区方式并行批量写入数据到目标表。

缓冲更新

ETL服务器缓冲目标表记录校验值,通过哈希方式确定目标表操作方式,数据不存在执行插入,数据存在但校验值不同执行修改,目标数据冗余执行删除。

缓冲记录数

控制数据载入时每次最大提交记录数,同时该值会影响异步与批量载入缓冲区大小。

3 多任务并发选项

最大并发数

同时运行作业最大数,一旦运行作业数达到该值,后续作业排队等待。

工作流并行

通过工作流并行方式同时执行多个子任务,同时执行子任务数不受最大并发数限制。

分时调度

当相关任务并发执行占用内存太高时,任务设置不同的启动时间错峰运行。

工作流串行

当相关任务并发执行占用内存太高时,通过工作流串行方式顺序执行任务。

互斥锁

当相关任务并发执行占用内存太高时,通过互斥锁强制任一时间最多只有其中一个任务执行。

性能监测

BeeDI内置ETL性能监测功能,支持ETL各项操作(同步查询、异步查询、联邦运算、日志解析、同步载入、异步载入、批量载入、缓冲更新)与内存关系变化曲线显示,可查看最近10日任一时刻各项操作并发数及内存使用峰值,支持按日、按小时或按分钟查看并发数及内存峰值。

ETL性能优化

性能优化

通过性能监测分析各项操作与内存使用量关系,确定性能瓶颈,采用以下方式进行ETL性能优化:

低负载

内存处于低位时任务可选择批量载入模式、增加缓冲记录数或增加任务并行度(增加最大并发数参数、工作流并行)。

高负载

内存处于高位时避免内存溢出,通过高负载时对应的时间确定相关ETL任务,对相关任务指定同步载入模式、降低缓冲记录数或降低任务并行度(降低最大并发数参数、相关任务分时调度、使用互斥锁或工作流串行、扩展程序最大内存)。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2023年2月25日 下午12:27
下一篇 2023年2月25日 下午12:28

相关推荐