如何处理来自PubSub的无效/错误JSON消息以加载CloudSQL表

时间:2019-01-25 11:10:32

标签: google-cloud-platform google-cloud-dataflow google-cloud-sql google-cloud-pubsub

我正在阅读发布到PubSub主题的JSON消息,并在数据流中使用JDBCIO.write()方法加载CloudSQL表。

我必须处理错误/无效的JSON消息场景(例如InvalidSchema,InvalidDatatype),以便流数据流作业不会在数据流图上显示错误。

在将数据加载到Bigquery中时,我们可以借助withFailedInsertRetryPolicy(InsertRetryPolicy.retryTransientErrors())处理这些情况。

我试图通过在数据流作业中使用withRetryStrategy(RetryStrategy retryStrategy)为CloudSQL处理这种情况。但是我仍然可以看到错误记录在流数据流作业中计数。因此,在数据流中接收到无效/错误的JSON消息后,我无法接收有效消息。

下面是withRetryStrategy()方法的代码段:

.withRetryStrategy(new RetryStrategy() { @Override public boolean apply(SQLException sqlException) { logger.warn("SQLState: " + sqlException.getSQLState() + "\t SQLException: " + sqlException.getMessage()); return false; } })

如果apply(SQLException)返回 true ,则JDBCIO.write()将无限次重试同一条语句。
在上面的代码中,我以覆盖的apply方法返回了 false ,但仍然出现此问题。 因此,我尝试通过返回 true 来获得相同的结果。

有人建议在流数据流作业中如何处理这种类型的无效/错误记录场景以加载CloudSQL表吗?

0 个答案:

没有答案