有人用OracleXADataSource 实现 jdbc.exactlyOnceSink的吗?

有人用OracleXADataSource 实现 jdbc.exactlyOnceSink的吗? 我拿官方的例子报这个错 41250573afc670f9a27bd670acfe4a74.png

展开
收起
爱喝咖啡嘿 2022-12-20 13:20:31 399 分享 版权
1 条回答
写回答
取消 提交回答
  • 是的,可以使用OracleXADataSource实现jdbc.exactlyOnceSink。具体步骤如下:

    创建OracleXADataSource实例,并设置数据库连接参数(如URL、用户名、密码等)。

    创建JdbcSink.Builder实例,并使用OracleXADataSource实例设置数据库连接。

    设置JdbcSink.Builder的其他参数,如SQL语句、插入模式等。

    调用JdbcSink.Builder的build()方法创建JdbcSink实例。

    将JdbcSink实例添加到Flink流程图中,并运行Flink流程图。

    例如:

    OracleXADataSource xaDataSource = new OracleXADataSource(); xaDataSource.setURL("jdbc:oracle:thin:@localhost:1521:orcl"); xaDataSource.setUser("username"); xaDataSource.setPassword("password");

    JdbcSink.Builder<Tuple2<String, Integer>> builder = JdbcSink.buildDataStream(dataStream) .setBatchSize(10) .setDataSource(xaDataSource) .setQuery("INSERT INTO test_table (name, age) VALUES (?, ?)") .setParameterTypes(Types.VARCHAR, Types.INTEGER);

    JdbcSink<Tuple2<String, Integer>> sink = builder.build();

    dataStream.addSink(sink);

    flinkEnv.execute("Jdbc Sink Example");

    请注意,使用OracleXADataSource实现jdbc.exactlyOnceSink需要在Oracle数据库中开启XA事务支持。

    2022-12-31 10:34:40
    赞同 展开评论

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

收录在圈子:
实时计算 Flink 版(Alibaba Cloud Realtime Compute for Apache Flink,Powered by Ververica)是阿里云基于 Apache Flink 构建的企业级、高性能实时大数据处理系统,由 Apache Flink 创始团队官方出品,拥有全球统一商业化品牌,完全兼容开源 Flink API,提供丰富的企业级增值功能。
还有其他疑问?
咨询AI助理