apache / apache/beam

Return error message/information with existing FAILED_ROW data from BigQueryWriteFn (Python SDK)

Open
#20,514 0 comments 0 reactions 0 assignees View on GitHub
gcp improvement io P3 python
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.