Data APIs

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.

BigQueryOn-demand

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

Rates for this SKU group are not shown yet — the catalog sync has not run. We publish rates from Google’s Cloud Billing Catalog API or not at all; a hand-typed rate that looks authoritative and is six months stale is worse than no rate. In the meantime, cloud.google.com/skus has the current list price.

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.