Oracle 到 Elasticsearch 数据迁移同步

简述

Elasticsearch 是一个分布式的实时搜索与数据分析引擎,具有强大的可扩展性和高度的灵活性。CloudCanal 对于 Elasticsearch 的支持经过了多轮迭代,支持版本从 6.x 和 7.x 一路扩展到 8.x,并适配了其丰富多样的 API。

同时 CloudCanal 对 Oracle 源端同步技术进行了多处优化,大幅提升了数据同步的稳定性和可靠性。

本文主要介绍如何使用 CloudCanal 快速构建一条 Oracle 到 Elasticsearch 的数据同步链路。

技术点

Oracle 基于 LogMiner 的实时同步

CloudCanal 在 Oracle 源端的增量同步中,通过 LogMiner 分析 redo 日志,并结合多轮优化,显著提升了同步的稳定性与效率,已在用户生产环境中成功验证。主要特点包括:

  • Oracle RAC 支持与优化:专为 Oracle RAC 场景优化,确保数据同步的完整性和一致性。
  • 标准化 LogMiner 解析:默认采用 LogMiner 标准方法(ADD_FILE)解析 redo 日志,并提供 CONTINUOUS_MINE 作为补充(取决于 Oracle 版本)。
  • 全事件消费模式:支持全事件消费,保障同步过程中的稳定性。
  • 超大事务处理:本地缓存超大变更数据,处理源端 Oracle 超过百万级的变更。
  • 位点回溯:在消费出错时,支持使用时间戳、SCN 回溯位点,增强容错能力。
  • 数据校验与订正:提供定时的数据校验和订正机制,确保数据质量稳定。

经过以上优化,CloudCanal 在 Oracle 同步场景中表现更加稳健可靠,适应各种复杂的数据同步需求。

自动创建 Elasticsearch 索引和映射结构

CloudCanal 迁移同步任务支持自动将源端数据库表结构映射成 Elasticsearch 索引,该过程中允许用户在 级别上,个性化设置自己需要的索引和映射(Mapping)结构。这些设置包括:

  • 每个列可以指定是否需要索引。
  • 可以对 TEXT 类型的列设置 Elasticsearch 映射中的分词器(标准分词器)。
  • 自定义设置索引分片数、副本数。

生成内置 _id 并指定路由字段

在写入 Elasticsearch 时,_id 字段用于唯一标识每个文档(Doc)。数据路由基于 _id 值,确保数据分片定位一致。CloudCanal 数据同步默认遵循以下策略生成 _id:

  • 单主键表:对于单一主键表,默认使用源端关系表的主键列值作为 _id。
  • 多主键表:对于多主键表,通过分隔符 $ 连接多个主键列的值,组合成唯一 _id(可以通过参数 pkSeparator 自定义分隔符)。
  • 无主键表:若表无主键,则将所有列的值用 $ 连接,生成唯一的 _id。

此默认设置确保了每条数据在 Elasticsearch 中具有唯一的标识,同时提供稳定的分片路由。

操作示例

步骤 1: 安装 CloudCanal

请参考 全新安装(Docker Linux/MacOS),下载安装 CloudCanal 私有部署版本。

步骤 2: 添加数据源

登录 CloudCanal 控制台,点击 数据源管理 > 新增数据源

步骤 3: 创建任务

  1. 点击 同步任务 > 创建任务

  2. 配置源和目标数据源。

    1. 选择源和目标实例,并分别点击 测试连接
    2. 在源端实例下方 高级配置 中选择增量模式:LogMiner / 物化视图
    3. 在目标实例下方 高级配置 中选择时区配置:+08:00(默认)。
  3. 选择 数据同步 并勾选 全量初始化

  4. 选择需要同步的表。

  5. 选择表对应的列。如果需要选择同步的列,可先行在对端创建好索引。

  6. 点击 确认创建
    任务创建过程将会进行一系列操作,点击 同步设置 > 异步任务,找到任务的创建记录并点击 详情 即可查看。

    Oracle 源端的任务创建会有以下几个步骤:

    • 结构迁移
    • 初始化 Oracle 表级补全日志
    • 初始化 Oracle LogMiner 位点
    • 分配任务执行机器
    • 创建任务状态机
    • 完成任务创建
  7. 等待任务自动流转。
    当任务创建完成,CloudCanal 会自动进行任务流转,其中的步骤包括:

    • 结构迁移: Oracle 源端的表定义将会迁移到对端,如果同名索引在对端已经存在,则会忽略。
    • 全量数据迁移: 已存在的存量数据将会完整迁移到对端。
    • 增量数据同步: 增量数据将会持续地同步到对端数据库,并且保持实时(秒级别延迟)。

总结

本文简单介绍了如何使用 CloudCanal 进行 Oracle 到 Elasticsearch 数据迁移同步,帮助企业增强数据分析及实时搜索能力,提升数据的价值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/475803.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DDei在线设计器V1.2.43版发布

2024-11-21-----V1.2.43 一、bug 修复 1. 修复只读情况下,连线依然可以通过特殊点调整的 bug 2. 修复了同一页面多个实例时,部分方法只会引用最后一个实例的问题 3. 修复了组合控件和容器控件改变容器后没有清理的问题,优化了容器的实现 4. …

C++进阶:哈希表实现

目录 一:哈希表的概念 1.1直接定址法 1.2哈希冲突 1.3负载因子 1.4实现哈希函数的方法 1.4.1除法散列法/除留余数法 1.4.2乘法散列法 1.4.3全域散列法 1.5处理哈希冲突 1.5.1开放地址法 线性探测 二次探测 ​编辑 双重散列 1.5.2链地址法 二.代码实现 2.1开放地址…

鸿蒙NEXT开发案例:血型遗传计算

【引言】 血型遗传计算器是一个帮助用户根据父母的血型预测子女可能的血型的应用。通过选择父母的血型,应用程序能够快速计算出孩子可能拥有的血型以及不可能拥有的血型。这个过程不仅涉及到了简单的数据处理逻辑,还涉及到UI设计与交互体验的设计。 【…

(十八)JavaWeb后端开发案例——会话/yml/过滤器/拦截器

目录 1.业务逻辑实现 1.1 登录校验技术——会话 1.1.1Cookie 1.1.2session 1.1.3JWT令牌技术 2.参数配置化 3.yml格式配置文件 4.过滤器Filter 5.拦截器Interceptor 1.业务逻辑实现 Day10-02. 案例-部门管理-查询_哔哩哔哩_bilibili //Controller层/*** 新增部门*/Pos…

2024.5 AAAiGLaM:通过邻域分区和生成子图编码对领域知识图谱对齐的大型语言模型进行微调

GLaM: Fine-Tuning Large Language Models for Domain Knowledge Graph Alignment via Neighborhood Partitioning and Generative Subgraph Encoding 问题 如何将特定领域知识图谱直接整合进大语言模型(LLM)的表示中,以提高其在图数据上自…

amd显卡和nVidia显卡哪个好 amd和英伟达的区别介绍

AMD和英伟达是目前市场上最主要的两大显卡品牌,它们各有自己的特点和优势,也有不同的适用场景和用户群体。那么,AMD显卡和英伟达显卡到底哪个好?它们之间有什么区别?我们又该如何选择呢?本文将从以下几个方…

接口加密了怎么测?

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 1、定义加密需求 确定哪些数据需要进行加密。这可以是用户敏感信息、密码、身份验证令牌等。确定使用的加密算法,如对称加密(如AES&am…

接口上传视频和oss直传视频到阿里云组件

接口视频上传 <template><div class"component-upload-video"><el-uploadclass"avatar-uploader":action"uploadImgUrl":on-progress"uploadVideoProcess":on-success"handleUploadSuccess":limit"lim…

springboot基于数据挖掘的广州招聘可视化分析系统

摘 要 基于数据挖掘的广州招聘可视化分析系统是一个创新的在线平台&#xff0c;旨在通过深入分析大数据来优化和改善广州地区的招聘流程。系统利用Java语言、MySQL数据库&#xff0c;结合目前流行的 B/S架构&#xff0c;将广州招聘可视化分析管理的各个方面都集中到数据库中&a…

VIM的下载使用与基本指令【入门级别操作】

VIM——超级文本编辑器 在当今时代&#xff0c;功能极其复杂的代码编辑器和集成开发环境&#xff08;IDE&#xff09;有很多。 但如果只想要一个超轻量级的代码编辑器&#xff0c;用于 Unix、C 或其他语言/系统&#xff0c;而不需要那些华而不实的功能&#xff0c;该怎么办呢&…

心情追忆-首页“毒“鸡汤AI自动化

之前&#xff0c;我独自一人开发了一个名为“心情追忆”的小程序&#xff0c;旨在帮助用户记录日常的心情变化及重要时刻。我从项目的构思、设计、前端&#xff08;小程序&#xff09;开发、后端搭建到最终部署。经过一个月的努力&#xff0c;通过群聊分享等方式&#xff0c;用…

开源代码统计工具cloc的简单使用

一.背景 公司之前开发了个小系统&#xff0c;要去申请著作权&#xff0c;需要填写代码数量。应该怎么统计呢&#xff1f;搜索了一下&#xff0c;还是用开源工具cloc吧&#xff01;我的操作系统是windows&#xff0c;代码主要是java项目和vue项目。 二.到哪里找 可以去官方下载…

基于单片机的条形码识别结算设计

本设计基于单片机的条形码辨识与结算系统。该系统主要用于超市、商场等场所的商品结算&#xff0c;实现了在超市内对不同种类商品进行自动识别及自动分类结算的功能。该系统由STM32F103C8T6单片机、摄像头、显示、蜂鸣器报警、按键和电源等多个模块构成。该系统可实现商品自动识…

进程间通信的信号艺术:机制、技术与实战应用深度剖析

目录 1 什么是信号 2 为什么要有信号 3 对于信号的反应 3.1 默认行为 3.2 signal()函数 -- 自定义行为对信号做出反应 3.3 对信号进行忽略 4 信号的产生的类型 4.1 kill命令 4.2 键盘输入产生信号 4.3 系统调用接口 4.3.1 kill() 4.3.2 raise() 函数 4.4 软件条件 …

美畅物联丨JT/T 808 终端设备如何加入畅联云平台

在道路运输行业中&#xff0c;JT/T 808终端设备的应用正变得越来越广泛&#xff0c;把该设备接入畅联云平台&#xff0c;能够达成更高效的车辆管理与监控功能。今天&#xff0c;我们就来探讨一下JT/T 808终端设备接入畅联云平台的步骤与要点。 一、了解畅联云平台接入要求 首先…

【微服务】SpringBoot 整合ELK使用详解

目录 一、前言 二、为什么需要ELK 三、ELK介绍 3.1 什么是elk 3.2 elk工作原理 四、ELK搭建 4.1 搭建es环境 4.1.1 获取es镜像 4.1.2 启动es容器 4.1.3 配置es参数 4.1.4 重启es容器并访问 4.2 搭建kibana 4.2.1 拉取kibana镜像 4.2.2 启动kibana容器 4.2.3 修改…

jenkins的安装(War包安装)

‌Jenkins是一个开源的持续集成工具&#xff0c;基于Java开发&#xff0c;主要用于监控持续的软件版本发布和测试项目。‌ 它提供了一个开放易用的平台&#xff0c;使软件项目能够实现持续集成。Jenkins的功能包括持续的软件版本发布和测试项目&#xff0c;以及监控外部调用执行…

低速接口项目之串口Uart开发(一)——串口UART

本节目录 一、串口UART 二、串口协议 三、串口硬件 四、往期文章链接本节内容 一、串口UART 串口UART,通用异步收发传输器&#xff08;Universal Asynchronnous Receiver / Transmitter&#xff09;,一种异步收发传输器&#xff0c;全双工传输。数据发送时&#xff0c;将并行…

WEB攻防-通用漏洞SQL注入Tamper脚本Base64Jsonmd5等

知识点&#xff1a; 1、数据表现格式类型注入&#xff1b; 2、字符转义绕过-宽字节注入&#xff1b; 3、数字&字符&搜索&编码&加密等&#xff1b; 参考资料&#xff1a; https://www.cnblogs.com/bmjoker/p/9326258.html SQL注入课程体系&#xff1a; 1、…

[Unity]TileMap开发,TileMap地图缝隙问题

环境&#xff1a; windows11 unity 2021.3.14f1c1 tilemap使用的图是美术已经拼接到一起的整图&#xff0c;块与块之间没有留缝隙 问题&#xff1a; TileMap地图直接在Unity中使用时&#xff0c;格子边缘会出现缝隙&#xff0c;移动或缩放地图时较明显。 解决方案&#x…