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

sink端的Oracle数据库ip和端口号都是映射的是不是flinkcdc传输时不可以使用映射地址?

sink端的Oracle数据库ip和端口号都是映射的,这个报错网上查的结果是端口号错误,是不是flinkcdc传输时不可以使用映射地址?image.png
image.png

展开
收起
cuicuicuic 2023-09-28 10:33:34 34 0
1 条回答
写回答
取消 提交回答
  • Flink CDC 可以使用映射地址传输数据。

    在 Flink CDC 中,可以使用 hostname 和 port 属性设置连接 Oracle 数据库的地址和端口号。如果设置了 hostname 和 port,那么 Flink CDC 会使用这些值连接 Oracle 数据库。如果没有设置 hostname 和 port,那么 Flink CDC 会使用 hostname.jdbc.url 和 port.jdbc.url 属性设置的值连接 Oracle 数据库。如果 hostname.jdbc.url 和 port.jdbc.url 属性都没有设置,那么 Flink CDC 会使用 hostname.jdbc.url 和 port.jdbc.url 属性设置的映射地址连接 Oracle 数据库。

    因此,sink 端的 Oracle 数据库的 ip 和端口号都是映射的,是可以使用 Flink CDC 传输数据的。

    以下是使用 Flink CDC 传输数据的示例代码:

    // 创建 Flink 流处理程序
    StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

    // 从 Oracle 数据库中读取数据
    DataStream stream = env.addSource(
    new DebeziumSource<>(
    new JsonDebeziumDeserializationSchema(),
    "my-connector",
    "my-database",
    "my-table",
    "my-hostname.jdbc.url",
    "my-port.jdbc.url",
    new OracleOffsetBackingStore("my-kafka-topic", "my-offset-group")));

    // 将数据写入 sink
    stream.map(r -> r.getPayload()).addSink(
    new MySink());

    // 执行 Flink 流处理程序
    env.execute();
    在示例代码中,我们使用 hostname.jdbc.url 和 port.jdbc.url 属性设置了映射地址,因此 Flink CDC 会使用这些映射地址连接 Oracle 数据库。

    2023-10-18 10:18:12
    赞同 展开评论 打赏

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

相关电子书

更多
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载
云时代的数据库技术趋势 立即下载
超大型金融机构国产数据库全面迁移成功实践 立即下载

相关镜像