开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

请问flink cdc中CDC + Oracle的XStream模式么?只能获取到存量数据。

请问flink cdc中CDC + Oracle的XStream模式么?只能获取到存量数据,获取不到增量数据。

展开
收起
十一0204 2023-07-19 17:46:58 345 0
1 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    在 Flink CDC 中,Oracle XStream 模式可以用于获取 Oracle 数据库中的增量数据。与传统的 Oracle CDC 方式相比,XStream 模式可以提供更高的性能和更精确的增量数据。
    不过需要注意的是,Oracle XStream 模式只能获取到自启动以来的增量数据,无法获取到存量数据。如果需要获取存量数据,可以考虑使用 Oracle GoldenGate 或其他同步工具来完成。
    下面是一个简单的示例,展示如何使用 Flink CDC 和 Oracle XStream 模式来获取 Oracle 数据库中的增量数据:
    创建 Oracle XStream 数据源
    java
    Copy
    public class OracleXStreamSource {

    public static void main(String[] args) throws Exception {
        // 创建 Flink 环境和表执行环境
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        StreamTableEnvironment tableEnv = StreamTableEnvironment.create(env);
    
        // 创建 Oracle XStream 数据源
        OracleXStreamSource.Builder<MyRecord> builder = OracleXStreamSource.builder()
                .hostname("localhost")
                .port(1521)
                .sid("ORCLCDB")
                .username("C##MYUSER")
                .password("mypassword")
                .deserializer(new MyRecordDeserializationSchema())
                .tableList("MYUSER.MYTABLE");
    
        // 设置 XStream 模式参数
        builder.withXStreamMode(true)
                .withXStreamServerName("myserver")
                .withXStreamPort(12345)
                .withXStreamUsername("xstreamuser")
                .withXStreamPassword("xstreampassword")
                .withXStreamOutboundServerName("outboundserver")
                .withXStreamOutboundUsername("outbounduser")
                .withXStreamOutboundPassword("outboundpassword")
                .withXStreamConsumerName("myconsumer");
    
        CDCSource<MyRecord> oracleSource = builder.build();
        DataStreamSource<MyRecord> oracleStream = env.addSource(oracleSource);
    
        // 将 Oracle XStream 数据源转换为 Flink Table
        Table oracleTable = tableEnv.fromDataStream(oracleStream, "id, name, age");
    
        // 打印输出
        oracleTable.printSchema();
        oracleTable.print();
    
        // 执行 Flink 应用程序
        env.execute("OracleXStreamSource");
    }
    

    }
    在这个例子中,创建了一个 Oracle XStream 数据源,并指定了 XStream 模式的相关参数。OracleXStreamSource 是 Flink CDC 中提供的一个内置 Builder 类,可以用于构建 Oracle XStream

    2023-07-29 20:11:59
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载

    相关镜像