BigQuery Storage API Read
A charge for bulk-reading table data through the BigQuery Storage Read API rather than by running a query. It appears on bills of teams who mostly think of BigQuery as a query engine, because the tools generating it — Spark, Dataflow, dbt exports, BI extracts — do not look like queries from the outside.
Billed: Per tebibyte read through the Storage Read API. Separate from query analysis charges — reading via the API is not a query.
What triggers this charge
- Spark, Dataflow, or Beam jobs reading BigQuery tables via the storage connector.
- BI tools extracting full tables rather than running aggregate queries.
- Data-transfer and reverse-ETL products pulling tables on a schedule.
- pandas-style client reads using the Storage API path, which most modern client libraries default to.
How to reduce it
Push filters and column selection into the read
The Storage Read API supports column projection and row restriction. A connector configured to read whole tables is paying for columns the job discards.
Aggregate in BigQuery first
Exporting a billion rows to aggregate them elsewhere pays twice — once for the read, once for the compute. A query that returns the aggregate is usually cheaper on both.
Export to Cloud Storage for repeated bulk reads
If the same snapshot is read many times, one export to GCS and many cheap reads from there beats repeated Storage API reads.
Rates
Now find out how much of this you are actually paying.
Finitizer breaks your Google Cloud bill down to the SKU, shows how each one has moved since last week, and separates rate changes from usage changes — so you know whether to talk to engineering or to procurement.