Flink CDC 读取oracle库数据性能优化

news/2024/12/15 19:42:34/

       通过综合考虑Oracle数据库配置、Flink作业配置以及其他优化措施,可以显著提升Flink CDC读取Oracle库数据的性能和效率。可以从以下几个方面进行:

一、Oracle数据库配置优化

  1. 开启归档日志‌:
    • 通过执行sqlplus /assysdba或sqlplus/nolog命令连接数据库。
    • 使用archive log list命令检查归档日志是否开启。
    • 配置归档日志参数,如设置db_recovery_file_dest_size和db_recovery_file_dest。
    • 创建表空间并启用归档日志。
  2. 优化日志参数‌:
    • 调整Oracle数据库的日志刷新参数,如log_buffer_size和log_write_batch_size,以减少日志刷新到磁盘的时间。
    • 增加redo log大小和减少归档频率,以减少CDC日志的延迟。
  3. 启用CDC功能‌:
    • 确保Oracle数据库中启用了CDC(Change Data Capture)功能。
  4. 使用并行查询‌:
    • 在Oracle数据库中使用并行查询以提高查询性能,从而减少延迟。

二、Flink作业配置优化

  1. 增加并行度‌:
    • 在Flink作业中增加并行度(parallelism),以并行处理CDC事件,从而减少延迟。
    • 根据数据源的负载和Flink集群的计算能力,合理设置并行度。
  2. 优化Checkpointing‌:
    • 调整Checkpointing间隔和模式,以减少Checkpointing对性能的影响。
    • 使用合适的状态后端,如RocksDB或HBase,以提高状态管理的性能。
  3. 调整fetchTimeout和parallelism参数‌:
    • 增加fetchTimeout参数的值,让Flink CDC在读取Oracle数据库时更加宽松。
    • 在Flink SQL中设置parallelism参数来调整并行度。
  4. 使用连接池‌:
    • 配置连接池(如DBCP或HikariCP)来复用数据库连接,减少新建和销毁session的开销。
  5. 优化网络和I/O‌:
    • 使用高速网络减少数据传输延迟。
    • 使用SSD或NVMe存储设备提高I/O性能。
  6. 监控和调整‌:
    • 定期监控Flink作业的性能指标,并根据需要调整配置。
    • 监控Oracle数据库的连接数,确保不超过最大连接数限制。

三、其他优化措施

  1. 创建专属用户并赋予权限‌:
    • 在Oracle数据库中为Flink CDC创建专属用户,并赋予足够的权限以读取所需的数据。
  2. 优化SQL查询逻辑‌:
    • 在Flink作业中优化SQL查询逻辑,减少不必要的JOIN操作和全表扫描,使用有效的索引策略减少数据库访问次数。
  3. 分批次同步数据‌:
    • 如果全量同步的数据量非常大,可以考虑将同步任务分批进行,以减少单次同步的数据量和时间。
  4. 使用物化视图‌:
    • 在Oracle数据库中考虑使用物化视图来预先计算和缓存部分或全部数据,以加速全量同步的读取操作。
  5. 调整Oracle数据库会话参数‌:
    • 根据实际需求调整Oracle数据库的会话参数,如PROCESSES和SESSIONS,以允许更多的用户连接。


http://www.ppmy.cn/news/1555390.html

相关文章

苹果全家桶接入ChatGPT,近屿智能邀您共绘AI蓝图

北京时间12月12日凌晨,OpenAI开启了备受瞩目的第五天技术直播。宣布了一个令人振奋的消息:苹果的iPhone、iPad、Mac以及智能助手Siri可以原生使用ChatGPT。 这一合作无疑为生成式AI赛道注入了新的活力,作为全球科技行业的巨头,苹果…

STM32驱动SYN6288语音合成模块实现语音播报

SYN6288语音合成模块使用说明 请跳转该专栏:SYN6288语音合成模块使用说明(MicroPython、STM32、Arduino)-CSDN博客 最终效果 未完待续 接线 STM32 SYN6288 3.3 VDD G G PA2 RXD 代码 工程文件: https://download.csdn.net/download/qq_44…

Dual-Write Problem 双写问题(微服务)

原文链接https://www.confluent.io/blog/dual-write-problem/ 双写问题发生于当两个外部系统必须以原子的方式更新时。 问题 说有人到银行存了一笔钱,触发 DepositFunds 命令,DepositFunds 命令被发送到Account microservice。 Account microservice需…

vscode无密码远程登录,不用输密码

客户端配置 生成ssh密钥,得到私钥id_rsa和公钥id_rsa.pub文件 在用户目录下找到.ssh/config文件,这是vscode远程配置文件 一般内容如下: Host 192.168.1.10HostName 192.168.1.10User xxxx这个配置文件描述了目标主机和用户名 需要添加私…

【潜意识Java】期末考试可能考的选择题(附带答案解析)

目录 选择题一:Java 数据类型 选择题二:Java 控制结构 选择题三:面向对象编程 选择题四:Java 集合框架 选择题五:Java 异常处理 选择题六:Java 方法 选择题七:Java 流程控制 选择题八&a…

b站视频爬虫-词云分析

一、设置爬虫程序 # requests 请求b站视频 import jsonimport fake_useragent import requests from lxml import etreeif __name__ == __main__:# UA伪装head = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like …

fastadmin集成kindeditor编辑器解决段后距问题--全网唯一

背景 由于项目的需求使用fastadmin推荐的编辑器kindeditor,使用过程中发现没有段后距这个bug。查询搜索了所有的网上来源,都没有解决方案。鉴宇客户非常需要该功能,奋战几天写端代码实现了该功能。 插件实现 KindEditor.plugin(paragra…

机器视觉 (深度学习 - 目标查找Faster R-CNN)

深度学习目标搜索,在工业上常被用于目标跟踪、缺陷定位等应用。 Faster R-CNN是目标查找算法中更高精度的应用。Faster R-CNN很多都是用Python来实现,下面发一个TensorFlow 实现Faster R-CNN的代码。 import tensorflow as tf from tensorflow.keras i…