r/bigquery • • 10h ago

🔍 Not So BigQuery #300 is out - my free weekly newsletter about BigQuery and other data-related GCP news!

Thumbnail app.mailbrew.com
6 Upvotes

r/bigquery • • 1d ago

I got tired of paying for warehouse compute just to debug a model, so I started building a local BigQuery emulator

10 Upvotes

I've worked with BigQuery and Snowflake for years, and one thing has always bugged me: you can't really run anything locally.

Testing a small dbt change, debugging a join, or running CI all mean hitting a real warehouse. That means compute costs, credentials, and shared dev datasets, even for tiny changes.

Today's GCP problems in London were a good reminder too. If your warehouse region has a bad day, you can't even do development, never mind run production.

So I started Crucible, a local BigQuery API emulator backed by DuckDB. Point dbt-bigquery or the Python client at localhost and run without a real GCP project, cloud credentials, or warehouse bill.

It's pre-alpha, but here's what works so far:

  • dbt-core seed, run, test and unit tests against an example project
  • Python BigQuery client, CSV loads, MERGE, partitioned tables, JSON, arrays and window functions

The part I care most about is correctness. Supported behaviour is verified against recorded results from real BigQuery. If Crucible can't match something, it explicitly returns "Not supported by Crucible" rather than guessing. An emulator that silently gives wrong answers is worse than none.

Still missing: scripting, INFORMATION_SCHEMA, wildcard tables and the Storage Read API (so dbt Fusion can seed/run but not test).

The goal is to cover typical BigQuery/dbt projects, expand SQL compatibility from there, and eventually support Snowflake too.

I'd really appreciate feedback from anyone using BigQuery/dbt. If you try it on your project, the most useful thing you can send me is the first query it refuses. That tells me what to build next.

Criticism and "this is a bad idea because..." are equally welcome.

Repo: https://github.com/CallumWalterWhite/crucible

Quick start:

docker run --rm -p 127.0.0.1:9050:9050 ghcr.io/callumwalterwhite/crucible-emulator:latest serve --dialect bigquery

r/bigquery • • 1d ago

new fields in the source letting my views fail

2 Upvotes

table in company's data source >>> bigquery table >>> view >>> error after added field

Errror: Invalid view definition for project.business_vault.table_view with 17 columns vs. 18 columns from view query

Does anyhow have an idea how to avoid that unwanted behaviour when the created view fields to not fit anymore to the fields in the underlaying table, while a view field description is created?

context:

We have database in Bigquery that loads data from a business source into tables. Once in a while a new column is added in the source. The pipelines here work fine and fetch easily the new fields.

The tables feed into views to get the latest instances of the loaded data. Those views are what we actual work with.

Until recently, those views run smoothly, and a new field in the source and in Bigquery just did not appear in the view until it was added, but it did not cause errors and broke the view. That was until one manager decided to have field description inside the view.

I have now a spreadsheet that collects the field descriptions, and Pyhton code creates my Bigquey view creation statement. If this executions find a new field, it even catches that and does not break. This works fine.

However, as soon as the source adds a columns and before I execute my python script, a Bigquery query runs into an error and cannot execute the view anymore:

The view query is actually very small itself and does not show much, of course the CREATE statement, which is complex.

# simple SELECT in the view
SELECT
      *
FROM
      `project.dataset.table`
    QUALIFY
      ROW_NUMBER()
        OVER (PARTITION BY id ORDER BY SAFE_CAST(_dlt_load_id AS FLOAT64) DESC)
      = 1

# complex part of CREATE that does not show in the view query later
CREATE OR REPLACE VIEW
 `project.business_vault.table_view`
   (id OPTIONS (DESCRIPTION = 'primary key'),
   updated_at OPTIONS (DESCRIPTION = 'timestamp for data updated in original source database'),
...
 OPTIONS (DESCRIPTION = 'What does the view do?',
 FRIENDLY_NAME = 'My friendly name for the view',
...

r/bigquery • • 6d ago

I analyzed 27k BigQuery jobs to find what actually drives the bill. 68% of it was one query pattern.

1 Upvotes

Ran a cost analysis over a 30-day window on a production project — 27,076 jobs, 45.1 TB billed, ~$282 in query cost. Anonymized.

Methodological caveat first, because it matters: BigQuery doesn't report bytes per table, so a job's entire scan gets counted against every table it references. Rank with that column, never sum it. Same for the findings below — they overlap, one query can trigger three rules. Don't add them up.

The interesting part: the project was spending ~$2.30/day. On 25 August it jumped to ~$25/day and stayed there.

Cause: one query pattern, executed 2,638 times in 30 days, billing 30.8 TB. On its own that's $192 — 68% of the entire month's query cost.

Not a badly written query. A good one running far too often.

What else showed up:

  • 633 queries used SELECT * on tables over 1 GB → 4.0 TB. BigQuery bills the columns you read, not the rows you return.
  • 2,214 queries scanned 10 GB+ with no LIMIT → 34.8 TB.
  • 126 queries read a partitioned table without its partition filter → every partition scanned instead of the few needed.
  • 42 queries ran 10+ times and re-billed 40.9 TB — the result cache only helps while the underlying data is unchanged.

The part that surprised me: 98% of query spend came from a single service account — the dbt runner. Nobody was being careless. It was a pipeline doing exactly what it was told, at a scale nobody was watching.

Which is the real problem with warehouse bills. The invoice tells you the total. It never tells you that one model, executed 2,638 times, is two-thirds of it.

Everything above comes from INFORMATION_SCHEMA.JOBS_BY_PROJECT — bytes billed, who ran it, what it referenced. No table data is read.

I built a small read-only tool around this — self-hosted, metadata-only, nothing leaves your machine.

That project's report is confidential, so I can't share it. What I can share is a sample the tool generates from built-in synthetic data — nothing in it is real, but the format and the findings are exactly what you get: [sample_report]


r/bigquery • • 8d ago

We tried BigQuery’s new property graph + Conversational Analytics on top of a canonical model

Post image
1 Upvotes

For a while we’ve been working on (among other things) text-to-SQL, and the main thing we learned is that the agent usually gets the SQL right and the meaning wrong. It picks the wrong table, or writes a join that runs fine but counts the wrong thing.

What fixed it for us was writing the meaning down once, upstream, as a canonical model: entities, relationships, join keys. Then both the tables and the agent work from that. (Longer writeup on that)

When BigQuery shipped CREATE PROPERTY GRAPH and Conversational Analytics, we thought: that’s basically the same idea, native in the warehouse. Let’s try it.

So our colleague loaded Chinook data into BigQuery, declared the graph, and pointed Conversational Analytics at it. It wrote correct GQL for a 4-hop question (customer → invoice → track → album → artist) with the Instructions field left empty.

blog link

Is anyone using property graphs beyond a demo yet? I’m curious how you find it

Transparency: I work at dltHub. We make dlt, which did the ingestion here. We recently launched maintenance background agents


r/bigquery • • 12d ago

Making Sense of BigQuery Pricing Models: On-Demand, Capacity, Editions (2026)

Thumbnail
alvin.ai
9 Upvotes

A few years ago I got thrown into BigQuery. I never did any data engineering before, coming from frontend/fullstack application engineering. It took me a while to understand all the concepts. I felt like nobody is really explaining them well. BigQuery docs do a good job of explaining the What, but not the Why or the How To Decide. In this article, I try to give you both of that. By the way, the advice has changed considerably this year with Fluidscaling, so a lot of the old guides are also out of date now. Let me know what you think! Does BigQuery's pricing model (with the improved autoscaler billing) make sense?


r/bigquery • • 16d ago

September 2026 - BigQuery Feature Summary

9 Upvotes

Hey everyone, here's the 09/2026 edition! (Apologies for the late post!)

đŸ”€ GoogleSQL Language Features & Functions

🧠 AI, Machine Learning & Foundation Models

đŸ’» Developer Experience (DX) & BigQuery Tooling

đŸ—„ïž Lakehouse Architecture, Apache Iceberg & Open Data Formats

⚡ Core Engine Performance, Indexing & Optimization

🔌 Data Integration, Pipelines & Ingestion (ELT)

🔒 Security, Governance & Workload Management

As usual, let us know if there's anything: comments, questions, concerns!


r/bigquery • • 20d ago

Open source conversational analytics tool for BigQuery?

9 Upvotes

Hi all,

Has anyone found a decent open source tool for asking questions in plain English on top of BigQuery? Something self hosted.

I tried Gemini in BigQuery and had a look at the conversational analytics API. The API gives you back SQL and a chart spec, so you still end up building the front end yourself, which is the part I was hoping to avoid.

My main worry is the numbers. If two people ask for revenue in slightly different words I'd like them to get the same answer, and I don't see how that works unless the metrics are defined somewhere.

The other thing is cost. I have no feel for how many queries a single question turns into once the model starts looking around the schema.


r/bigquery • • 22d ago

Replaced a weekly full reload (MySQL → BigQuery) with direct binlog reads, no Kafka or Debezium: first production pilot, numbers inside

Thumbnail
2 Upvotes

r/bigquery • • 23d ago

Data Agent A2A

5 Upvotes

Has anyone here managed to use Bigquery Data Agents on external applications through the A2A protocol?

Once published, the agent lets you register the agent into the Agent Registry or copy the A2A json file into your clipboard. I’ve successfully published the agent on Gemini Enterprise, for example, but I am unable to use this JSON in any other part. My main goal would be to connect it to a Copilot Studio agent so I can easily use it through Teams, without having to do any code.


r/bigquery • • 27d ago

BigQuery Cost Optimization Framework

Post image
6 Upvotes

Interesting framework on how to optimize BigQuery costs across four layers: query optimization, pricing models, commitments, and discounts. https://www.alvin.ai/blog/bigquery-cost-optimization-the-complete-finops-framework


r/bigquery • • Sep 21 '26

The BigQuery Join Problem Nobody Notices Until the Data Gets Big

Thumbnail
medium.com
10 Upvotes

A short deep dive into a BigQuery join problem that often goes unnoticed until data gets big shuffle, skew, cardinality and query performance.


r/bigquery • • Sep 14 '26

how do you handle joining a source that shares no key with anything you already have?

6 Upvotes

Partner sends us a monthly export. Different customer ID scheme to ours, no mapping table, no docs, and whoever built it on their side left last year.

Right now I fuzzy match on lower(trim(email)) plus surname and eyeball a sample before it goes anywhere. It works well enough that nobody's complained, which is not the same as it being right. I have no idea what my false match rate is.

The part that bothers me is that a bad join doesn't announce itself. A wrong customer count looks identical to a right one.

So what do people actually do here. Do you block on something cheap first to cut the comparison space, compute a score and hold back anything under a threshold, or just accept a fuzzy match and monitor downstream? And if you threshold, where did the number come from?


r/bigquery • • Sep 10 '26

Has anyone tried the Databricks AI/BI feature?

8 Upvotes

I recently came across Databricks AI/BI and was curious to know how people are finding it.

It looks like Databricks is trying to bring BI and analytics more directly into the Databricks platform, with dashboards and Genie for asking questions in natural language.

Has anyone actually tried AI/BI in a real project?

How is it compared to Power BI or Tableau from your experience? Is it good enough for regular BI use cases, or is it still better to use a separate BI tool?

Would like to know your experience, especially if you have used both.


r/bigquery • • Sep 07 '26

How did you actually learn BigQuery/cloud SQL before landing a job?

5 Upvotes

Curious how most people picked up tools like BigQuery. Did you learn and practice entirely on your own through side projects and certifications before applying, or did you just happen to be at a company when they migrated over and learned on the job?
Would love to hear what your path looked like!


r/bigquery • • Sep 07 '26

What to expect in a BigQuery SQL interview?

3 Upvotes

As a data analyst what kind of conceptual or theoretical questions get thrown at you?

What kind of SQL queries am I actually expected to write or explain on the spot? (Window functions, multiple CTEs, optimization, etc.?)


r/bigquery • • Sep 07 '26

Why BigQuery does not support natively small integer and float dtypes?

1 Upvotes

It looks like every integer dtype stored is using 64 bits, there's no real tinyint and smallint and this is just a syntatic sugar. And I didn't found the reason for that when I searched about it. Is it to make storage artificially more expensive?

Almost every open tabular engine and storage format that I knew so far allows you to really set a column as smaller types of int, independently if it is columnar or row-stored, and if it's a database or just an engine. For example, any modern apache arrow based engine (like Datafusion, DuckDB and polars), apache parquet files, almost every columnar database (like Clickhouse), almost any row-oriented database (like PostgreSQL, Oracle, MySQL and et cetera). Why BigQuery wants to be different?


r/bigquery • • Sep 07 '26

BigQuery slot contention is often not a SQL problem.

Thumbnail
medium.com
2 Upvotes

If a query suddenly takes 5–10x longer without any SQL or data changes, the bottleneck may be workload contention, capacity, or concurrency.

A practical guide on how to diagnose it using JOBS, JOBS_TIMELINE, total_slot_ms and period_estimated_runnable_units.


r/bigquery • • Sep 07 '26

Is Manage Permission in Bigquery Broken

4 Upvotes

Get "Error loading permissions for selected resources." error when I click selected table -> share -> Manage permissions.
Anyone know what has updated ?


r/bigquery • • Sep 03 '26

Meta/Facebook Ads no BigQuery via DataTransfer

3 Upvotes

OlĂĄ, pessoal!!!

AlguĂ©m que jĂĄ realizou a integração do Meta Ads ao BigQuery via DataTransfer saberia me responder que campo e tabela consideramos a visĂŁo de custo por anĂșncio? Eu estou olhando para a coluna spend da tabela AdInsights e em um mĂȘs aparece mais de 77k de custo, Ă© um nĂșmero totalmente absurdo. Estou olhando para o lugar errado e/ou da maneira incorreta?


r/bigquery • • Sep 02 '26

August 2026 - BigQuery Feature Summary

9 Upvotes

Hey everyone! Back for the monthly summary.

đŸ”€ GoogleSQL Language Features & Functions

🧠 AI, Machine Learning & Foundation Models

đŸ’» Developer Experience (DX) & BigQuery Tooling

⚡ Core Engine Performance, Indexing & Optimization

  • Restored Hybrid Search - Restored hybrid search functionality combining vector embeddings and keyword search in VECTOR_SEARCH and AI.SEARCH.

🔌 Data Integration, Pipelines & Ingestion (ELT)

🔒 Security, Governance & Workload Management

⚠ Breaking Changes, Deprecations & Pricing Updates

As usual, let us know what you think!


r/bigquery • • Sep 02 '26

I made a small Chrome extension for viewing BigQuery query results

2 Upvotes

I use BigQuery a lot and wanted a slightly easier way to inspect query results, so I made a small Chrome extension.

It opens copied query results in a separate viewer with things like nested JSON/ARRAY expansion, column pinning, search, and better handling of long cells.

If anyone finds it useful, or has feedback, I'd be happy to hear it.

https://chromewebstore.google.com/detail/query-result-viewer-for-b/fdndhccllolpcfiohahlpbncogehmdhh


r/bigquery • • Sep 01 '26

BigQuery's Iceberg REST Catalog (BigLake): how table discovery actually changed

10 Upvotes

Been digging into this lately and figured I'd share, since it cleared up something I was fuzzy on: how BigQuery actually discovers Iceberg tables, and what's genuinely new here vs. what's just been repackaged.

The old ways of doing this:

  1. Pointing BigQuery straight at a metadata file. Something like gs://bucket/orders/metadata/00003.metadata.json. It works, but it's fragile. Iceberg writes new metadata files instead of editing the old ones, so if any other engine commits a new snapshot, your pointer is instantly stale. You're stuck manually bumping it to 00004.metadata.json every time.
  2. Catalog based access, like using AWS Glue as an external catalog. This actually fixes the staleness problem since the catalog tracks current state for you. But every engine still needed its own custom integration to talk to that catalog.

What's actually new: Google now has a managed Lakehouse Runtime Catalog (BigLake) that exposes a real Apache Iceberg REST Catalog endpoint, using the same open REST Catalog spec other engines already speak. So instead of building a one off integration per engine, anything that already understands Iceberg REST can just talk to BigLake directly. The data itself never moves, it stays in Cloud Storage. BigLake is really just a metadata and governance layer with IAM sitting on top of it.

There's also a version detail worth knowing: Iceberg 1.10 shipped a native BigQueryMetastoreCatalog and BigQueryMetastoreClient, plus a GoogleAuthManager that handles Google credential auth inside Iceberg's REST auth framework. It's easy to conflate these two things, but they're not the same. One's a catalog implementation built for BigQuery Metastore specifically, the other is the standardized REST interface. Google's steering people toward the REST endpoint for anything new where cross engine interoperability matters.

The post I read also gets into the practical setup side: creating a BigLake catalog (single bucket vs multi bucket), the IAM roles Google recommends (BigLake Admin, Editor, Viewer, plus Storage Object User), and shows an open source tool called OLake Go (full disclosure, I work on this) writing Iceberg tables directly into that catalog so BigQuery can see them right away, queryable through the usual four part PROJECT.CATALOG.NAMESPACE.TABLE identifier with no manual metadata pointer updates. There's a decent troubleshooting section too. Apparently if your connection test passes but the actual sync fails, it's almost always a missing storage level IAM role rather than bad credentials.

Full post here if you want the details: https://olake.io/blog/biglake-iceberg-rest-catalog-olake-go-setup/

Curious if anyone here has already moved existing Iceberg on BigQuery setups over to the REST catalog, or if you're all still doing the manual metadata file dance like I was.


r/bigquery • • Aug 31 '26

Interesting facts from BigQuery Deep Dive

Thumbnail
2 Upvotes

r/bigquery • • Aug 24 '26

Optimisation of bigquery for better performance cost for analytics

Thumbnail
github.com
3 Upvotes