sink端的Oracle数据库ip和端口号都是映射的,这个报错网上查的结果是端口号错误,是不是flinkcdc传输时不可以使用映射地址?
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 数据库。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。