实时数仓:基于 Flink CDC 实现 Oracle 数据实时更新到 Kudu

本文详述了使用Flink CDC结合Oceanus和EMR Kudu实现Oracle到Kudu实时数据迁移的全过程,包括Oracle环境配置、Oceanus与EMR集群创建、数据同步代码开发以及遇到的表名大小写、数据延迟和并行度设置等问题的解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:于乐,腾讯 CSIG 工程师

解决方案描述

概述

Flink CDC 于 2021 年 11 月 15 日发布了最新版本 2.1,该版本通过引入内置 Debezium 组件,增加了对 Oracle 的支持。本方案主要对 flink-connector-oracle-cdc进行试用。首先在本地对 Oracle CDC 进行调试通过,然后结合腾讯云产品流计算 Oceanus、EMR(Kudu)实现了 Oracle-Oceanus-Kudu 一体化解决方案,其中并无复杂的业务逻辑实现(这里进行最简单的数据转移,用户可根据实际业务情况编写相应代码),并对其中发现的一些问题进行归纳整理与读者分享。

方案架构

这里的 Oracle 数据库环境是通过 Docker 建立在 EMR 集群下的某台 CVM 上,通过手动向 Oracle 数据库写入、更新数据,Oceanus 实时捕获变更的数据后存储在 EMR 的 Kudu 组件上。根据以上方案,设计了如下架构图:

112ec4fc73d720041678d8852852664e.png

前置准备

创建私有网络 VPC

私有网络(VPC)是一块在腾讯云上自定义的逻辑隔离网络空间,在构建 Oceanus 集群、Redis 组件等服务时选择的网络建议选择同一个 VPC,网络才能互通。否则需要使用对等连接、NAT 网关、VPN 等方式打通网络。私有网络创建步骤请参考 帮助文档 [1]。

创建流计算 Oceanus 集群

流计算 Oceanus 是大数据产品生态体系的实时化分析利器,是基于 Apache Flink 构建的具备一站开发、无缝连接、亚秒延时、低廉成本、安全稳定等特点的企业级实时大数据分析平台。流计算 Oceanus 以实现企业数据价值最大化为目标,加速企业实时化数字化的建设进程。

在 Oceanus 控制台的【集群管理】->【新建集群】页面创建集群,选择地域、可用区、VPC、日志、存储,设置初始密码等。VPC 及子网使用刚刚创建好的网络。创建完后 Oceanus 的集群如下:

d1751d2e28994a3043fbab3d2186794e.png

创建 EMR 集群

EMR 是云端托管的弹性开源泛 Hadoop 服务,支持 Kudu、HDFS、Presto、Flink、Druid 等大数据框架,本次示例主要需要使用 Kudu、Zookeeper、HDFS、Yarn、Impala、Knox 组件。

进入 EMR 控制台 [2],单击左上角【创建集群】进行集群的创建,创建过程中注意选择【产品版本】,不同的版本包含的组件不同,笔者这里选择EMR-V3.2.1版本,另外【集群网络】需选择之前创建好的 VPC 及对应的子网。具体过程可参考 创建 EMR 集群 [3]。

a9506859e1d14f98613f4d8ce354f4f8.png

配置 Oracle 环境

1. 安装 Oracle 镜像

下载 Docker:  不同 CVM 环境可能不相同,笔者这里采用离线安装模式,安装包官网地址 [4]。下载配置完成之后按如下命令启动并运行 Docker 服务。

# 启动
systemctl start docker


# 设置开机启动
systemctl enable docker.service


# 查看 docker 服务状态
systemctl status docker

下载 Oracle 镜像:

# 查找 Oracle 镜像版本
docker search oracle


# 下载相对应镜像,这里我们下载 truevoly/oracle-12c 版本
docker pull truevoly/oracle-12c


# 运行 Docker 容器
docker run -d -p 1521:1521 --name oracle12c truevoly/oracle-12c


# 进入容器
docker exec -it oracle12c /bin/bash

2. 配置 Oracle 数据库

启用日志归档:

-- 如有必要重新 source 一下 .profile 文件
source /home/oracle/.profile


-- 1. 切换到 Oracle 用户
su oracle


-- 2. 以 DBA 身份连接数据库
$ORACLE_HOME/bin/sqlplus /nolog
conn /as sysdba
show user


-- 3. 启用日志归档
alter system set
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值