云数据流云 sql 数据流运行器给出空指针异常
cloud dataflow cloud sql dataflow runner giving null pointer exception
我正在尝试使用云数据流处理大量记录。我的源是 google 云存储,我的接收器是云 SQL(MySQL)。我有以下代码写入接收器(Cloud SQL)。
p.apply()
....
.withDataSourceConfiguration(JdbcIO.DataSourceConfiguration.create(
"com.mysql.cj.jdbc.Driver", "jdbc:mysql://google/<DBNAME>?cloudSqlInstance=<INSTANCE_NAME>&socketFactory=com.google.cloud.sql.mysql.SocketFactory&user=<USERNAME>&password=<PASSWORD>&useSSL=false"
)
)
当我 运行 使用 DirectRunner
的管道时,上述工作正常。但是当 DataflowRunner
上的 运行 时它会抛出 NullPointer Exception
。异常情况如下:
java.lang.NullPointerException
at org.apache.beam.sdk.io.jdbc.JdbcIO$Write$WriteFn.executeBatch(JdbcIO.java:775)
at org.apache.beam.sdk.io.jdbc.JdbcIO$Write$WriteFn.finishBundle(JdbcIO.java:755)
Beam 版本 = 2.16.0、2.15.0 - 尝试了两个版本但失败了。发生这种情况的任何原因?
让它与 DataflowRunner
一起工作的解决方案是什么?
我已经解决了这个问题。 NUllPointerException
是 finishBundle
中的另一个原因
我正在尝试使用云数据流处理大量记录。我的源是 google 云存储,我的接收器是云 SQL(MySQL)。我有以下代码写入接收器(Cloud SQL)。
p.apply()
....
.withDataSourceConfiguration(JdbcIO.DataSourceConfiguration.create(
"com.mysql.cj.jdbc.Driver", "jdbc:mysql://google/<DBNAME>?cloudSqlInstance=<INSTANCE_NAME>&socketFactory=com.google.cloud.sql.mysql.SocketFactory&user=<USERNAME>&password=<PASSWORD>&useSSL=false"
)
)
当我 运行 使用 DirectRunner
的管道时,上述工作正常。但是当 DataflowRunner
上的 运行 时它会抛出 NullPointer Exception
。异常情况如下:
java.lang.NullPointerException
at org.apache.beam.sdk.io.jdbc.JdbcIO$Write$WriteFn.executeBatch(JdbcIO.java:775)
at org.apache.beam.sdk.io.jdbc.JdbcIO$Write$WriteFn.finishBundle(JdbcIO.java:755)
Beam 版本 = 2.16.0、2.15.0 - 尝试了两个版本但失败了。发生这种情况的任何原因?
让它与 DataflowRunner
一起工作的解决方案是什么?
我已经解决了这个问题。 NUllPointerException
是 finishBundle