Return error message/information with existing FAILED_ROW data from BigQueryWriteFn (Python SDK)
- Dominant language
- Java
- Stars
- 8.7k
- Forks
- 4.7k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 196
Description
A user may call `apache_beam.io.gcp.bigquery.WriteToBigQuery` to write their streamed data to BQ. If any rows fail to write, this will return a tagged pcollection `BigQueryWriteFn.FAILED_ROWS`. This data includes a tuple `(destination_table, failed_row_payload)`.
My suggestion is to include the error information in the `FAILED_ROWS` pcollection. From the source code we can see that we have access to the error information, e.g. that the row failed because field `id` was `invalid` because `this field is not a record`. I think we should surface this to the user.
I'm happy to open a PR for this myself (as I've already had to overwrite the original code in several projects), but it looks like we'd need a breaking change by either extending the tuple which would cause unpacking issues in existing code, or by returning a different data structure entirely.
Relevant owners:
[~altay]
[~charleschen70@yahoo.com]
Imported from Jira [BEAM-10233](https://issues.apache.org/jira/browse/BEAM-10233). Original Jira may contain additional context.
Reported by: tomhardman0.
Contributor guide
Assessment
This issue has not been assessed yet.