Connect Google Cloud
Cost Catch pulls your Google Cloud billing straight from your BigQuery billing export — GCP has no file export, so the data lives in BigQuery and Cost Catch reads it directly. Already export billing to BigQuery? Just point Cost Catch at the table.
Before you start
You'll want three things in place. The app generates everything technical for you — this is just who and what you need:
- A BigQuery billing export enabled into a dataset. Already have one? Use it — you point Cost Catch at the export table. Not enabled yet? The wizard shows you how (Billing → Billing export → BigQuery export).
- A read-only service account with BigQuery Data Viewer on the dataset and BigQuery Job User on the project, plus a JSON key. The wizard spells this out.
- A Snowflake ACCOUNTADMIN to store the key as a secret and allow outbound calls to BigQuery. The app generates the exact SQL.
Choose your options
Point Cost Catch at whichever export you already run — or enable the recommended one. Within BigQuery you choose:
- Export type — Detailed (recommended). Detailed usage cost is the superset: every standard field plus per-resource cost. Standard usage cost is smaller and cheaper if you don't need resource-level detail. FOCUS is the cross-cloud-normalized shape (preview). Pricing data is SKU metadata, usually a separate connection.
- Dataset location. Match the export dataset's location (US, EU, or a region like
us-central1) — it's shown on the dataset's Details page.
Already running an export or a view under a different name? Choose Custom and enter it. You can connect more than one billing account, each as its own connection.
Enable the export
No BigQuery export yet? Turn one on — it's a few clicks, then Google backfills it:
- In the Google Cloud console, go to Billing → Billing export and choose your billing account.
- Open the BigQuery export tab and click Enable under Detailed usage cost.
- Pick the project and dataset to hold the export (create a dataset first if you don't have one), then Save. If prompted, enable the BigQuery API.
Full guide: Set up Cloud Billing data export to BigQuery.
Create the read-only key
Cost Catch reads BigQuery with a dedicated service account. Create one, grant it read-only access, and download a JSON key:
- In IAM & Admin → Service Accounts, create a service account (e.g.
cost-catch-reader). - Grant it BigQuery Data Viewer on the export dataset and BigQuery Job User on the project.
- Open the account, go to the Keys tab, choose Add key → Create new key → JSON, and Create. The key downloads once — keep it safe; you'll paste it into the wizard.
Reference: Create and delete service account keys.
Refresh cadence
Pick how often Cost Catch checks for new data. Every connection offers the same menu; we suggest a default that matches how often Google Cloud actually publishes.
| Cadence option | Good for |
|---|---|
| Every hour | Tightest freshness; more runs |
| Every 6 hours Recommended | The BigQuery export appends continuously, so this keeps data fresh cheaply — go hourly if you want tighter alerting. |
| Every 12 hours | Twice a day; low cost |
| Daily | A once-a-day snapshot; lowest cost |
| Custom | Any schedule you like, on your own cron |
The app pre-selects Every 6 hours and shows this reasoning right next to the picker — override it any time.
What to expect
- First load can take up to 5 days. A brand-new export backfills from the start of the previous month, and Google takes a few days to finish the initial load. An export you already run has data ready immediately.
- Recent numbers settle over a few days as GCP finalizes usage — Cost Catch keeps pulling new and revised rows, so your data reflects GCP's latest figures.
- Where your data lands. Raw evidence goes to
RAW.VENDOR_BILLING; current committed totals viaRAW.VENDOR_BILLING_CURRENT. Nothing leaves your account.
Connect it
That's every decision. Open Google Cloud in the setup wizard — it pre-fills the export table name from your billing account, and generates the Snowflake secret and BigQuery access grant for you.
Stuck on a step? Email [email protected].