Currently, BigQueryIO always assigns IDs and does a shuffle to ensure that they are atomic. This incurs a noticeable cost and is unnecessary if the user already has deterministic IDs that they can use. The sink should be able to use these IDs to skip the shuffle.
Imported from Jira BEAM-384. Original Jira may contain additional context.
Reported by: millsd@google.com.