一图搞定Flink Oracle CDC 同步至Paimon(持续更新)

一图搞定Flink Oracle CDC 同步至Paimon(持续更新)

本文以Flink 1.18、FLink CDC 3.1为环境,配置Flink CDC 同步Oracle的数据至Paimon

在这里插入图片描述

环境配置

依赖

  • Maven

    <dependency>    
        <groupId>org.apache.flink</groupId>    
        <artifactId>flink-connector-oracle-cdc</artifactId>    
        <version>3.1.0</version> 
    </dependency>
    
  • SQL Client

    • 把flink-sql-connector-oracle-cdc-3.0.1.jar 放在<FLINK_HOME>/lib/下
    • 手动配置 com.oracle.ojdbc:ojdbc8:19.3.0.0 com.oracle.database.xml:xdb:19.3.0.0 两个jar包,可以放到lib目录下,在yarn application 模式也可以通过streampark上传

Oracle 前置设置

  • Non-CDB

    • what?

      • 非容器数据库。 单体架构、用户数据和系统数据都在同一个数据库实例中。其架构如下所示

  • 31
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现Flink CDC实时同步Oracle,需要采取以下步骤: 1. 确保Oracle中相关表已开启归档日志和补充日志。因为Flink CDC基于Debezium的LogMiner实现,LogMiner需要使用Oracle的归档日志和补充日志来获取变更数据。 2. 在Flink程序中创建Oracle CDC连接器,并设置连接器的相关配置。首先,确保在连接器中使用的Oracle字段名大写,这是因为Oracle对于大小写敏感。如果字段名不大写,Oracle的变更数据可能无法正确获取。 3. 在项目的pom.xml文件中添加Flink Oracle CDC依赖。示例依赖如下: ```xml <dependency> <groupId>com.ververica</groupId> <artifactId>flink-connector-oracle-cdc</artifactId> <version>2.2-SNAPSHOT</version> <!-- 此处依赖需要设置为 scope,其他 flink 依赖需设置为 provided --> <scope>compile</scope> </dependency> ``` 4. 使用Flink的Table API或SQL API来定义Oracle CDC连接器的数据源表和目标表。可以使用类似下面的代码来创建Oracle CDC数据源表: ```java tEnv.executeSql("CREATE TABLE oracleSource (\n" "PK BIGINT,\n" "BRANCHID VARCHAR,\n" "PRIMARY KEY(PK) NOT ENFORCED\n" ") WITH (\n" "'connector' = 'oracle-cdc',\n" "'hostname' = 'xxx',n" "'port' = '1521',\n" "'username' = 'xxx',\n" "'password' = 'xxx',\n" "'database-name' = 'xxx',\n" "'schema-name' = 'xxx',\n" "'table-name' = 'xxx',\n" "'scan.startup.mode' = 'initial'\n" ")"); ``` 请根据实际情况修改连接器的配置信息,比如主机名、端口号、用户名、密码、数据库名、模式名和表名等。 5. 定义Oracle CDC数据源表和目标表之间的转换逻辑。可以使用Flink提供的各种转换算子来对变更数据进行处理和转换,比如过滤、投影、聚合、连接等。 6. 将转换后的数据写入到目标表或其他外部系统中。可以使用Flink的Table API或SQL API提供的写入操作将数据写入到目标表或其他外部系统。 通过以上步骤,你可以实现Flink CDC实时同步Oracle的功能。请根据具体需求和情况进行配置和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值