• ETL性能优化


    目录

    一 概述

    二 性能选项

    1 程序最大内存

    2 ETL性能选项

    3 多任务并发选项

    三 性能监测

    四 性能优化


    概述

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

    性能选项

    1 程序最大内存

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

    2 ETL性能选项

    同步查询

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

    异步查询

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

    联邦运算

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

    日志解析

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

    同步载入

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

    异步载入

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

    批量载入

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

    缓冲更新

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

    缓冲记录数

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

    3 多任务并发选项

    最大并发数

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

    工作流并行

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

    分时调度

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

    工作流串行

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

    互斥锁

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

    性能监测

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

    性能优化

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

    低负载

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

    高负载

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

  • 相关阅读:
    ChatGPT当导购员!全球最大超市,全面应用生成式AI
    环形链表(C++)
    计算机毕业设计Javaweb硕士研究生招生考试专业报考查询及学习系统设计与实现(源码+系统+mysql数据库+lw文档)
    FastDFS安装(含nginx)
    Codeforces Round 827 (Div. 4) D 1e5+双重for循环技巧
    灰色和测试环境打包串台
    1.3 Apache Hadoop的重要组成-hadoop-最全最完整的保姆级的java大数据学习资料
    欧洲云巨头OVHcloud收购边缘计算专家 gridscale
    医学之肌肉的结构和功能
    C++(day7)
  • 原文地址:https://blog.csdn.net/wahahaman/article/details/126684100