我们可以在 JDBCIO.write 函数中使用 Apache Beam 管道在单个

我正在使用JDBCIO.write()apache 梁的功能将流数据写入 cloudSQL。根据我的要求,我必须在两个不同的表中写入相同的数据。

实际上,我正在创建两个不同的 JDBCIO 连接来在 cloudSQL 表中写入数据。

有没有办法在单个JDBCIO.write()函数中编写两个插入查询?


outputStringPcollection

            .apply("Write to CloudSQL table",

                    JdbcIO.<String> write()

                            .withDataSourceConfiguration(JdbcIO.DataSourceConfiguration

                                    .create(DRIVER_CLASS_NAME,

                                            URL)

                                    .withUsername(USERNAME)

                                    .withPassword(PASSWORD)

                            .withStatement(insertQueryTable1)

                            .withPreparedStatementSetter(new SetQueryParameter())

                            .withStatement(insertQueryTable2)

                            .withPreparedStatementSetter(new SetQueryParameter()));

我尝试通过在单个 JDBC 连接中编写两个不同的插入查询来执行上述代码,但数据仅插入到一个表(即 Table2)中。


那么,我们可以在单个连接中执行多个查询吗?如果是,还有其他方法吗?


提前致谢。


慕神8447489
浏览 133回答 1
1回答

慕标琳琳

不,您不能在单个连接中执行此操作。你能做的最好的事情是:JdbcIO<String>&nbsp;configuredWrite&nbsp;=&nbsp;JdbcIO.<String>.withDataSourceConfiguration(...);outputStringPcollection.apply(configuredWrite.withStatement(s1)...);outputStringPcollection.apply(configuredWrite.withStatement(s2)...);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java