CostCatch
Docs/ Connectors/ Microsoft Azure
Available Cloud

Connect Microsoft Azure

Cost Catch reads your Azure Cost Management exports from your own Blob storage container — FOCUS or native actual/amortized. Already run a Cost Management export to Blob? Use it as-is.

Before you start

You'll want these in place. The app generates every technical step for you — this is just who and what you need:

  • A Cost Management export delivering to a Blob storage container. Already have one? Point Cost Catch at it. None yet? The wizard shows you how (Cost Management → Exports → Create export).
  • Your Azure tenant ID, your billing account / EA enrollment ID (see Find your billing account ID below), and the storage account + container the export writes to.
  • Rights to consent Snowflake's service principal in your tenant and assign it Storage Blob Data Reader on the container, plus a Snowflake ACCOUNTADMIN for one grant. The app generates every step.

Choose your options

Use whatever export you already have — or create the recommended one. Your choices:

  • Export type — FOCUS 1.0r2 (recommended). One Cost and usage details (FOCUS) export carries both billed and effective (amortized) cost plus Azure's x_* columns — it replaces the separate actual and amortized exports without losing detail. Native actual/amortized exports also work. (FOCUS 1.2 is still preview.)
  • Format — Parquet or CSV. Parquet + Snappy is faster and smaller; CSV works too.
  • Scope — your billing account / EA enrollment (the highest you have).

One caveat: don't also export the same subscriptions separately — overlapping exports land the same costs twice and nothing downstream can tell them apart. Need history? Use Export selected dates to re-run past months (up to 13, one at a time); anything in the container is picked up automatically.

Create the export

No export yet? Create a scheduled FOCUS export to Blob storage:

  1. In the Azure portal, search for Cost Management, select your billing scope, and choose Exports in the left menu.
  2. Select + Create. On the Basics tab, pick a FOCUS template (or Create your own export and choose the Cost and usage details (FOCUS) dataset). Give it an export name.
  3. On the Destination tab, set Storage type to Azure blob storage, choose the storage account and container, and set a directory path. Choose Parquet + Snappy (or CSV + Gzip). Partitioning and overwrite are on by default — leave them.
  4. Review and select Review + create. Note the storage account, container, and path — that's what Cost Catch reads.

Full guide: Create and manage Cost Management exports.

Find your billing account ID

The wizard asks for a Billing account / EA enrollment ID. Cost Catch uses it only to label the connection, so match it to the scope you created the export at.

  1. In the Azure portal, search for Cost Management + Billing.
  2. If you have more than one billing account, open Billing scopes and select the one you want.
  3. Open Settings → Properties — the value is shown as Billing account ID (the Overview page shows it too).

The format depends on your agreement. Enterprise Agreement: your enrollment number — a plain number like 12345678, also visible at ea.azure.com. Microsoft Customer Agreement: a long compound id ending in a date, e.g. …:…_2019-05-31. Pay-as-you-go shows its billing account ID on that same Properties page.

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 Microsoft Azure actually publishes.

Cadence option Good for
Every hourTightest freshness; more runs
Every 6 hoursSame-day freshness, light footprint
Every 12 hours Recommended Azure refreshes the export about once a day (twice at month boundaries) — polling faster can't produce a new row.
DailyA once-a-day snapshot; lowest cost
CustomAny schedule you like, on your own cron

The app pre-selects Every 12 hours and shows this reasoning right next to the picker — override it any time.

What to expect

  • Data lands within ~4 hours of an export run. An export you already run is picked up on the next scheduled sync.
  • A grant can take a few minutes to propagate. If the first sync fails with a permissions error right after setup, that's just Azure propagation lag — it clears on the next run.
  • Where your data lands. RAW.VENDOR_BILLING; current committed totals via RAW.VENDOR_BILLING_CURRENT. Nothing leaves your account.

Connect it

That's every decision. Open Microsoft Azure in the setup wizard — it generates your storage-integration SQL, your tenant consent link, and the exact role-assignment steps.

Stuck on a step? Email [email protected].