You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@beam.apache.org by "Jacquelyn Wax (Jira)" <ji...@apache.org> on 2021/03/03 22:25:00 UTC
[jira] [Created] (BEAM-11919)
BigQueryIO.read(SerializableFunction): Collect records that could not be
successfully parsed into the user-provided custom-typed object into a
PCollection of TableRows
Jacquelyn Wax created BEAM-11919:
------------------------------------
Summary: BigQueryIO.read(SerializableFunction): Collect records that could not be successfully parsed into the user-provided custom-typed object into a PCollection of TableRows
Key: BEAM-11919
URL: https://issues.apache.org/jira/browse/BEAM-11919
Project: Beam
Issue Type: Wish
Components: io-java-gcp
Reporter: Jacquelyn Wax
Just as org.apache.beam.sdk.io.gcp.bigquery.WriteResult.getFailedInserts() allows a user to collect failed writes for downstream processing (e.g., sinking the records into some kind of deadletter store), could the results of a BigQueryIO.read(SerializableFunction) be collected, allowing a user to access TableRows that were not able to be parsed by the provided function , for the purpose of downstream processing (e.g., some kind of deadletter handling).
In our use case, all data loaded into our Apache Beam pipeline must meet a specified schema, where certain fields are required to be non-null. It would be ideal to collect records that do not meet the schema to output them to some kind of deadletters store.
Our current implementation requires us to use the slower BigQueryIO.ReadTableRows() and then attempt, in a subsequent transform, to parse these TableRows into a custom typed object, outputting any failures to a side output for downstream processing. This isn't incredibly cumbersome, but it would be a nice feature of the connector itself.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)