If your table does not consist of record / retype fields - your simple option:
Select valid columns when filtering invalid records in a new temporary table
SELECT <list of source columns>
FROM YourTable
WHERE <filter to remove bad entries here>
Record up to temp table - YourTable_Temp
Back up your broken table - YourTable_Backup
- Remove
YourTable - Copy
YourTable_Temp to YourTable - Make sure everything looks as expected, and if so, get rid of temporary and backup tables
Please note: the cost above # 1 is exactly the same as the action in the first pool in your question. The remaining actions (copy) are free.
If you have repeated / field entries - you can still execute above the plan, but in # 1 you will need to use the BigQuery User-Defined Functions to have the correct output scheme
You can see examples below - of course, this will require several additional developers, but if you are in a critical situation, this should work for you.
Create a table with a record type column
create table with column record type
Hopefully, at some point, the Google BigQuery team will add better support for cases like yours, when you need to manipulate and display repeated / written data, but at the moment this is the best workaround I have found - at least for myself.
source share