在Flink中使用CDC同步Oracle中的RowID

简介: 在Flink中使用CDC同步Oracle中的RowID

Flink CDC(Change Data Capture)是一种用于捕获数据库中数据变化的技术。要在Flink中使用CDC同步Oracle中的RowID,您需要按照以下步骤操作:

  1. 确保您的Oracle数据库已经启用了归档日志功能。这可以通过修改参数db_recovery_file_dest_sizedb_recovery_file_dest来实现。例如,将db_recovery_file_dest_size设置为10GB,并将db_recovery_file_dest指向一个空闲磁盘空间较大的文件夹。

  2. 创建一个具有足够权限的Oracle用户,以便Flink可以访问数据库。这个用户应该能够执行DDL(数据定义语言)语句,如ALTER TABLECREATE TABLE

  3. 为要同步的表或数据库启用增量日志记录。这通常是通过在ALTER TABLE语句后添加ENABLE ROWID LOGGING来完成的。例如:

    ALTER TABLE my_table ENABLE ROWID LOGGING;
    
  4. 安装并配置Apache Flink环境。确保已安装Java JDK和Scala编译器。然后,从Apache Flink官方网站下载最新版本的Flink发行版。

  5. 克隆Flink CDC connector for Oracle仓库到本地:

    git clone https://github.com/ververica/flink-cdc-connectors.git
    
  6. flink-connector-oracle-cdc模块导入到您的项目中。这可以通过将该模块添加到项目的pom.xml文件中来完成。例如:

    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-connector-oracle-cdc</artifactId>
        <version>{
        {FLINK_VERSION}}</version>
    </dependency>
    
  7. 在Flink作业中添加一个新的DataStream应用程序,并在其中添加一个ReadOnlyTableSourceFunction函数。此函数将读取来自Oracle数据库的数据。例如:

    val tableSource = new ReadOnlyTableSourceFunction("jdbc:oracle:thin:@localhost:1521:xe", "my_user", "my_password", "my_schema.my_table")
    
  8. 运行Flink作业以启动数据流处理任务。这可以通过在命令行中输入以下命令来完成:

    ```
    ./bin/flink run -m "exec" -c org.apache.flink.streaming.api.scala.StreamExecutionEnvironment \
    -p output_path output_path \
    -p checkpoint_interval 1000 \
    -p parallelism 1 \
    -p table_source tableSource \
    -p job_name MyJob \
    -p zookeeper_quorum localhost:2181 \
    -p group_id testGroup \
    -p application_timeout 60 \
    -p rest_port 8081 \
    -p rest_addresses localhost:8081 \
    -p state_backend_type rocksdb \
    -p state_backend_path file:///opt/cloudera/parcels/CDH-5.13.-SNAPSHOT/etc/hadoop/conf \
    -p keyed_state_backend_path file:///opt/cloudera/parcels/CDH-5.13.
    -SNAPSHOT/etc/hadoop/conf \
    -p default_parallelism 1 \
    -p taskmanager_memory 4096 \
    -p network_card_memory --- \
    -p slot_num 1 \
    -p slots_per_task 1 \
    -p yarn_session_application_timeout 60 \
    -p hadoop_binary_home /usr/lib/hadoop/ \
    -p hive_metastore_uris thrift://localhost:9083 \
    -p oozie_url http://localhost:11

相关实践学习
基于Hologres+Flink搭建GitHub实时数据大屏
通过使用Flink、Hologres构建实时数仓,并通过Hologres对接BI分析工具(以DataV为例),实现海量数据实时分析.
实时计算 Flink 实战课程
如何使用实时计算 Flink 搞定数据处理难题?实时计算 Flink 极客训练营产品、技术专家齐上阵,从开源 Flink功能介绍到实时计算 Flink 优势详解,现场实操,5天即可上手! 欢迎开通实时计算 Flink 版: https://cn.aliyun.com/product/bigdata/sc Flink Forward Asia 介绍: Flink Forward 是由 Apache 官方授权,Apache Flink Community China 支持的会议,通过参会不仅可以了解到 Flink 社区的最新动态和发展计划,还可以了解到国内外一线大厂围绕 Flink 生态的生产实践经验,是 Flink 开发者和使用者不可错过的盛会。 去年经过品牌升级后的 Flink Forward Asia 吸引了超过2000人线下参与,一举成为国内最大的 Apache 顶级项目会议。结合2020年的特殊情况,Flink Forward Asia 2020 将在12月26日以线上峰会的形式与大家见面。
目录
相关文章
|
数据采集 监控 Oracle
实时计算 Flink版产品使用问题之如何从Oracle物理备用库中进行实时数据抽取
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
Oracle 关系型数据库 Java
【YashanDB知识库】Flink CDC实时同步Oracle数据到崖山
本文介绍通过Flink CDC实现Oracle数据实时同步至崖山数据库(YashanDB)的方法,支持全量与增量同步,并涵盖新增、修改和删除的DML操作。内容包括环境准备(如JDK、Flink版本等)、Oracle日志归档启用、用户权限配置、增量日志记录设置、元数据迁移、Flink安装与配置、生成Flink SQL文件、Streampark部署,以及创建和启动实时同步任务的具体步骤。适合需要跨数据库实时同步方案的技术人员参考。
【YashanDB知识库】Flink CDC实时同步Oracle数据到崖山
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用问题之Oracle数据库是集群部署的,怎么进行数据同步
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
SQL Oracle Java
实时计算 Flink版产品使用问题之采集Oracle数据时,为什么无法采集到其他TABLESPACE的表
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
消息中间件 缓存 关系型数据库
Flink CDC产品常见问题之upsert-kafka增加参数报错如何解决
Flink CDC(Change Data Capture)是一个基于Apache Flink的实时数据变更捕获库,用于实现数据库的实时同步和变更流的处理;在本汇总中,我们组织了关于Flink CDC产品在实践中用户经常提出的问题及其解答,目的是辅助用户更好地理解和应用这一技术,优化实时数据处理流程。
|
Oracle 关系型数据库 MySQL
flink cdc 插件问题之报错如何解决
Flink CDC(Change Data Capture)是一个基于Apache Flink的实时数据变更捕获库,用于实现数据库的实时同步和变更流的处理;在本汇总中,我们组织了关于Flink CDC产品在实践中用户经常提出的问题及其解答,目的是辅助用户更好地理解和应用这一技术,优化实时数据处理流程。
|
监控 关系型数据库 MySQL
Flink CDC产品常见问题之使用3.0测试mysql到starrocks启动报错如何解决
Flink CDC(Change Data Capture)是一个基于Apache Flink的实时数据变更捕获库,用于实现数据库的实时同步和变更流的处理;在本汇总中,我们组织了关于Flink CDC产品在实践中用户经常提出的问题及其解答,目的是辅助用户更好地理解和应用这一技术,优化实时数据处理流程。
|
Java 关系型数据库 MySQL
Flink CDC有见这个报错不?
【2月更文挑战第29天】Flink CDC有见这个报错不?
352 2
|
存储 关系型数据库 MySQL
Flink CDC产品常见问题之写hudi的时候报错如何解决
Flink CDC(Change Data Capture)是一个基于Apache Flink的实时数据变更捕获库,用于实现数据库的实时同步和变更流的处理;在本汇总中,我们组织了关于Flink CDC产品在实践中用户经常提出的问题及其解答,目的是辅助用户更好地理解和应用这一技术,优化实时数据处理流程。
|
资源调度 关系型数据库 测试技术
Flink CDC产品常见问题之没有报错但是一直监听不到数据如何解决
Flink CDC(Change Data Capture)是一个基于Apache Flink的实时数据变更捕获库,用于实现数据库的实时同步和变更流的处理;在本汇总中,我们组织了关于Flink CDC产品在实践中用户经常提出的问题及其解答,目的是辅助用户更好地理解和应用这一技术,优化实时数据处理流程。
1332 1

推荐镜像

更多