Cloud Data Platforms · Verified June 2026

Microsoft Fabric vs Google BigQuery

Two different bets on how an enterprise should run analytics. Fabric bets the SaaS bundle wins; BigQuery bets serverless SQL wins. Here’s what each one actually costs, where each one actually breaks, and what’s changed since January — checked against Microsoft Learn and Google Cloud’s own documentation, not last year’s marketing.

Quick answer

If your reporting layer is Power BI and your org already lives in Microsoft 365, Direct Lake on OneLake removes a network hop that BigQuery’s DirectQuery can’t avoid. If your data already sits in Google Cloud and your team runs Looker or a Python-heavy stack, BigQuery’s on-demand pricing and instant slot scaling will be cheaper and faster for exploratory work. Most organizations running both don’t pick a winner — they land on BigQuery (or another engine) for ingestion and heavy SQL, a OneLake Shortcut or BigQuery Omni’s cross-cloud cache for the handoff, and Fabric strictly for the Power BI-facing layer.

A 20-person analytics team scanning roughly 15 TiB a month, US region, list pricing — illustrative only:

Fabric · F8, pay-as-you-go
F8 capacity (8 CU/s)~$1,050/mo
OneLake storage, 2 TB~$46/mo
4× Power BI Pro authors~$40/mo
Total~$1,136/mo
BigQuery · on-demand
14 TiB billable (1 free)~$87.50/mo
Active storage, 2 TB~$40/mo
Authoring & viewers$0
Total~$128/mo

At this scale, on-demand BigQuery wins by a wide margin because Fabric capacity is a fixed monthly cost regardless of usage. That gap closes, and can reverse, once Power BI distribution to dozens of viewers or sustained warehouse load enters the picture. See the pricing section for where the math actually flips.

Last verified: June 2026 ~17 min read By A.J., UIG Data Lab Microsoft Fabric docs · BigQuery docs
Storage architecture

OneLake vs BigLake: where the data actually sits

Both platforms store table data in Parquet underneath. The difference is what sits on top of it. OneLake is a SaaS wrapper over Azure Data Lake Storage Gen2, and everything Fabric writes — lakehouse tables, warehouse tables, KQL databases — lands as open Delta Parquet. You can browse petabytes of it through Windows File Explorer if you’ve got the OneLake driver installed, and any Delta-aware engine outside Fabric can read it directly without asking Microsoft’s permission.

BigQuery historically stored data in Capacitor, a proprietary columnar format tuned hard for vectorized scans and shuffle performance. It’s fast, but it’s closed: nothing outside BigQuery reads Capacitor files directly. Google’s answer is BigLake, a metadata and governance layer that lets BigQuery query open formats sitting in Cloud Storage, plus a managed Iceberg storage option with its own REST Catalog announced at Google Cloud Next 2026 — multi-table transactions, automatic file management, and read/write interoperability with Spark and other open engines. Native Capacitor tables still generally edge out open-format tables on raw scan speed inside BigQuery, but the gap that used to justify staying locked into Capacitor has narrowed.

The practical read: Fabric was built open-format from day one because OneLake had to be; BigQuery is retrofitting openness onto a closed core because customers asked for it. Neither approach is wrong, but they imply different lock-in profiles. See the Iceberg section below for how this plays out for multi-engine shops.

2026 platform direction

The agentic layer both vendors are racing to ship

If you last evaluated either platform before this spring, this is the section that changed the most. Both Microsoft and Google spent the first half of 2026 wiring AI agents directly into the warehouse rather than bolting a chatbot on top.

Fabric IQ, Graph, and Data Agents

Fabric IQ, introduced at FabCon and SQLCon 2026 in Atlanta, is a semantic and ontology layer that sits over analytical and operational data — telemetry, time series, graph, geospatial — so agents and people can reason in terms of business entities instead of raw tables. Microsoft has since added a planning capability on top, letting teams build budgets and forecasts directly on Fabric’s semantic models. Fabric Graph (public preview) adds a scalable graph database for relationship modeling, and Fabric Data Agents reached general availability this year as virtual analysts that answer questions against governed data, alongside operations agents aimed at real-time decisions. OneLake itself now exposes an MCP server, generally available, so external agent frameworks can discover and query Fabric data without a custom connector.

Gemini in BigQuery and the Data Engineering Agent

Google’s parallel push centers on Gemini in BigQuery. Comments-to-SQL lets engineers describe intent in plain English inline with their query and get working SQL back; Gemini can also explain and fix broken queries, and Gemini Cloud Assist offers query optimization recommendations for customers on BigQuery Editions. More significant for production teams is the Data Engineering Agent, which builds Dataform pipelines autonomously while enforcing governance rules and tests, and the Data Science Agent, which automates loading, cleaning, and visualization inside BigQuery notebooks from a plain-English goal. Google also shipped managed and remote MCP support across its database portfolio — AlloyDB, Spanner, Cloud SQL, Bigtable, Firestore — so the same agent tooling reaches well past BigQuery itself.

Field note — A.J.

Neither agent layer is mature enough to be a primary decision driver yet, but the shape of the bet is worth noting. Fabric’s agent story reaches outward from the semantic layer into Power BI and operational systems; BigQuery’s reaches outward from the warehouse into the rest of Google’s database fleet. If your organization is already standardized on one vendor’s identity and governance stack, that’s where the agentic layer will be least painful to adopt first. I wouldn’t switch platforms for this alone in 2026, but I’d factor it into a renewal decision.

Compute engines

Dremel vs Polaris and the Spark runtime

BigQuery runs on Dremel, a multi-tenant, massively parallel engine with compute fully separated from storage and a shuffle tier riding Google’s internal network fabric. You can throw thousands of slots at a query with no warm-up, which is most of why ad-hoc analysis feels instant in BigQuery. The tradeoff is that Dremel is SQL-first; Python and Spark workloads are a secondary citizen even with BigQuery’s notebook tooling.

Fabric splits the work across engines that share OneLake storage: a Spark runtime for engineering and data science, a T-SQL warehouse engine, and KQL for real-time data. You can hand the same Delta table to a notebook and a stored procedure without copying anything. The historical weak point was Spark cold start — Starter Pools cut this to roughly 5–30 seconds rather than minutes, and Fabric’s newer Autoscale Billing for Spark goes further by running Spark jobs on dedicated, serverless compute outside the shared capacity pool entirely, which removes the contention that used to make unpredictable Spark workloads expensive to size for.

Code portability

T-SQL vs GoogleSQL

Migration teams underestimate this one. The dialects diverge enough that nothing copy-pastes cleanly.

Fabric Warehouse · T-SQL
SELECT TOP 10 JSON_VALUE(data, ‘$.user.id’) AS UserID, DATEADD(day, -1, GETDATE()) AS Yesterday FROM Users WHERE Status = ‘Active’
BigQuery · GoogleSQL
SELECT JSON_EXTRACT_SCALAR(data, ‘$.user.id’) AS UserID, DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY) AS Yesterday FROM Users WHERE Status = ‘Active’ LIMIT 10

T-SQL uses TOP and DATEADD; GoogleSQL uses LIMIT and DATE_SUB. Stored procedures with branching logic, cursors, or error handling need to be rewritten by hand — there’s no reliable automatic transpiler for either direction as of this writing. Teams migrating between the two generally rebuild transformation logic in dbt rather than porting procedures.

Where each one wins

Workload performance, honestly rated

WorkloadFabricBigQuery
Daily Power BI dashboardsStrong — Direct Lake on OneLake reads in-memory with no import stepAdequate — BI Engine helps, but DirectQuery still adds a network hop
Ad-hoc exploratory SQLAdequate — Spark/Warehouse cold start, mitigated by Starter PoolsStrong — thousands of slots available instantly, no warm-up
Streaming analyticsAdequate — Eventstreams plus the new Mirrored Database Change Feed connectorStrong — native Pub/Sub integration, mature streaming inserts
GA4 / marketing analyticsWeak natively — needs export or a shortcut to GCS firstStrong — GA4’s native BigQuery export schema
Enterprise Power BI distributionStrong — F64+ removes per-viewer Pro licensing entirelyWeak — requires a gateway and DirectQuery, adds latency at scale
Python/Spark-heavy engineeringAdequate — full Spark runtime, but BigQuery notebooks now have agent automationStrong — Data Engineering and Data Science Agents automate pipeline build-out

Ratings reflect default configuration, not the ceiling either platform can reach with tuning, dedicated reservations, or third-party acceleration.

Power BI performance

Direct Lake vs BI Engine & DirectQuery

This is the section where the original “Direct Lake just works” pitch oversimplifies, and where Fabric documentation itself has gotten more precise in 2026. There are now two distinct Direct Lake variants, and they behave differently when something goes wrong.

Direct Lake on SQL endpoints, generally available since late 2023, routes through a lakehouse or warehouse’s SQL analytics endpoint. If a query hits a guardrail — too many Parquet files for the SKU, row-level security defined at the SQL layer, an unmaterialized view — it silently falls back to DirectQuery. Reports keep working, but performance degrades without an obvious signal unless you’re watching for it.

Direct Lake on OneLake reached general availability in March 2026. It reads Delta tables directly without the SQL endpoint as an intermediary, can pull from multiple Fabric sources in one semantic model, and — deliberately — has no DirectQuery fallback at all. If guardrails are exceeded, the query fails rather than quietly getting slower. Microsoft’s own guidance treats fallback as a failure mode to design around, not a safety net, so the newer variant just enforces that by removing the escape hatch. The DirectLakeBehavior model property lets you force either mode during development to see exactly what you’re shipping.

Against that, BigQuery’s BI Engine caches data in memory to accelerate dashboard queries, and when it fully accelerates a stage, that stage reads zero bytes and costs nothing extra on-demand. The structural limit is that Power BI still talks to BigQuery over DirectQuery, which means a network round trip on every interaction regardless of how fast BigQuery executes the SQL underneath. Independent benchmarking (FourMoo, January 2026) put median query duration at roughly 174ms for Power BI Import mode, 247ms for Direct Lake, and 724ms for DirectQuery — consistent with the architectural story, though any single benchmark should be treated as directional rather than gospel for your own workload.

Cross-cloud cost

Egress fees: both platforms now cache around them

Cloud providers charge little to bring data in and a lot to send it out. The “Shortcuts avoid egress” pitch that circulates about Fabric is half-true and the missing half matters for budgeting.

A OneLake Shortcut to a GCS bucket lets Fabric’s Spark, SQL, and Power BI engines treat the bucket as a local folder. The first read of any file still crosses Google’s network and bills as standard GCS egress. What actually controls cost is shortcut caching: OneLake stores files under 1 GB in a workspace-scoped cache with a retention window you set anywhere from 1 to 28 days, refreshed on every access and automatically invalidated if the source changes. Subsequent reads within that window hit the cache, not GCS. Caching covers GCS, S3, S3-compatible, and on-premises gateway shortcuts; ADLS Gen2 shortcuts don’t need it because that data is already inside Azure.

BigQuery picked up the same idea from the other direction. BigQuery Omni’s cross-cloud caching, announced at Google Cloud Next 2026, stores AWS or Azure data on first read and serves repeat queries from that cache, cutting egress on follow-on reads of the same external data. The mechanics differ in the details — supported source types, retention controls, and how each platform prices the cache itself — but the strategic move is identical: neither vendor can make egress free, so both now make it a one-time cost per dataset rather than a recurring one.

What this means in practice

Don’t pick a platform on the egress story alone in 2026. Both sides now have an answer. The real variable is read frequency: if a workload reads the same cross-cloud data dozens of times a day, caching neutralizes egress almost entirely on either platform. If reads are sparse and the cache window keeps expiring before the next access, you’re paying egress on nearly every read regardless of vendor.

Real numbers

Pricing: F-SKUs vs Editions

Fabric is a fixed-capacity model: you rent a pool of Capacity Units and every workload draws from it, whether you’re running queries or not. BigQuery defaults to pure consumption and offers reserved capacity as an opt-in once volume justifies it. Neither model is “the cheap one” in the abstract.

Fabric F-SKUs (pay-as-you-go, US region, approximate)

SKUCapacity UnitsList price/mo
F22 CU/s~$262
F88 CU/s~$1,050
F3232 CU/s~$4,200
F6464 CU/s~$8,400

A 1-year reserved commitment runs roughly 40% below pay-as-you-go. OneLake storage is billed separately at approximately $0.023/GB per month. F64 is the threshold that matters most: below it, every viewer of published Power BI content needs a Pro license (~$10/user/mo); at F64 and above, that requirement disappears, which is usually the deciding factor for organizations with hundreds of report viewers.

BigQuery: on-demand and Editions

ModelRateBest for
On-demand$6.25/TiB scanned (1 TiB free/mo)Unpredictable or low-volume querying
Standard Edition$0.04/slot-hourPredictable workloads without advanced security needs
Enterprise Edition$0.06/slot-hourProduction teams needing BI Engine, row/column security
Enterprise Plus$0.10/slot-hourRegulated industries needing CMEK, VPC Service Controls

Storage runs $0.02/GB/month active, dropping to $0.01/GB/month automatically after 90 days without modification. One- and three-year slot commitments save roughly 20% and 37–40% respectively. As a practitioner rule of thumb rather than an official Google figure, the break-even between on-demand and committed capacity tends to land somewhere around 300–500 TiB scanned per month — below that, on-demand is usually cheaper; above it, commitments usually win.

Where Fabric pricing surprises people

Capacity is billed whether you use it or not unless you pause it, and pausing a reserved (not pay-as-you-go) commitment isn’t an option, you’re paying for the full term regardless of usage. Run the Fabric pricing calculator against your actual viewer count and workload mix before committing to a SKU.

Governance

Purview vs IAM, and what’s changing in 2026

BigQuery’s governance runs on Google Cloud IAM with Policy Tags for column-level control — granular and well understood by anyone already on GCP, but it stops at BigQuery’s edge; once data is exported, the label doesn’t travel with it. Enterprise Plus adds VPC Service Controls and customer-managed encryption keys for regulated environments.

Fabric integrates with Microsoft Purview, and sensitivity labels applied there persist when data moves into Excel or a Power BI report, which is the main practical advantage over IAM-only approaches. The bigger 2026 development is OneLake Security, expected to reach general availability soon, which brings unified role-based access control plus consistent row- and column-level security across every Fabric workload from one place, rather than configuring security separately per engine. For a setup walkthrough, see the Fabric Data Governance Tutorial.

Open table formats

Both platforms now speak Iceberg

Neither vendor makes you choose Iceberg over its native format anymore. OneLake exposes an Iceberg REST Catalog endpoint and a virtualization layer that presents Delta tables as Iceberg and back again without rewriting the underlying Parquet, so Snowflake, Trino, or Dremio can read Fabric data without OneLake’s blessing of a specific connector. BigQuery’s answer, announced at Google Cloud Next 2026, is managed Iceberg storage with its own REST Catalog, supporting multi-table transactions and read/write interoperability with Spark and other open engines directly inside BigQuery.

If your stack already spans more than one query engine, the table-format decision is increasingly separate from the Fabric-vs-BigQuery decision. For the deeper architectural comparison, including Delta UniForm and where the two formats are converging in 2026, see the Apache Iceberg vs Delta Lake guide.

Honest tradeoffs

Who should avoid each platform

Avoid BigQuery if…

  • You’re a Power BI-first enterprise; DirectQuery latency stays noticeable however fast BigQuery’s compute is.
  • You need a fixed monthly number for finance; on-demand billing scales with usage, which is volatile by design.
  • Most of your downstream apps live outside Google Cloud and read the same data repeatedly — egress adds up even with caching.

Avoid Fabric if…

  • You’re deeply invested in Looker, Firebase, or GA4’s native export schema; Fabric needs an extra hop to reach that data.
  • You need instant, low-latency ad-hoc SQL without thinking about Starter Pool warm-up or capacity sizing.
  • You require compute that physically runs outside Azure; Fabric’s compute layer is Azure-resident even when the data is virtualized elsewhere.
A common real-world pattern

A company with application logs already in GCP keeps BigQuery for raw log analysis — it’s faster there and the team already knows GoogleSQL. Their sales org lives in Microsoft 365 and wants Power BI dashboards. The fix isn’t migrating either system: it’s a OneLake Shortcut to the aggregated, already-small “gold” tables, with caching enabled so the egress hit happens once instead of on every refresh. Raw data stays where it’s cheapest to process; reporting happens where the audience already works.

Questions practitioners actually ask

FAQ – Microsoft Fabric vs Google BigQuery

Can Fabric query GCS or BigQuery data without moving it, and does that avoid egress fees?
A OneLake Shortcut to a GCS bucket lets Fabric’s engines query it directly. The first read still crosses Google’s network and bills as standard egress. Shortcut caching, with a 1-to-28-day retention window you control, is what prevents repeat charges on subsequent reads of files under 1 GB. There’s no caching path for BigQuery’s native storage specifically — you’d typically export to GCS or go through Omni first.
Does BigQuery have an equivalent to OneLake’s shortcut caching?
Yes, as of Google Cloud Next 2026. BigQuery Omni’s cross-cloud caching stores AWS or Azure data on first read and serves repeat queries from the cache, reducing egress on subsequent access to the same external data. The supported sources and retention controls differ from OneLake’s, so check current docs rather than assuming exact parity.
Which is cheaper, Fabric or BigQuery?
At low to moderate volume, BigQuery on-demand ($6.25/TiB scanned, 1 TiB free monthly) is usually far cheaper, since Fabric capacity bills monthly regardless of use. The calculus shifts once you need Power BI distributed to many viewers (F64 removes per-viewer Pro licensing) or once BigQuery scanning consistently runs above roughly 300–500 TiB a month, where committed Editions pricing tends to beat on-demand. There’s no universal answer; it depends on workload shape.
Can I migrate stored procedures between the two?
Not directly. T-SQL and GoogleSQL diverge enough in control-flow and date handling that procedures need manual rewriting, not a copy-paste. Teams typically rebuild transformation logic in dbt rather than porting procedures one-to-one.
What changed with Direct Lake in 2026?
Direct Lake on OneLake reached general availability in March 2026. Unlike the original Direct Lake on SQL endpoints variant, it has no DirectQuery fallback: queries fail outright if capacity guardrails are exceeded rather than silently degrading. The DirectLakeBehavior property lets you test either mode explicitly during development.
Do both platforms support Apache Iceberg now?
Yes. OneLake exposes an Iceberg REST Catalog and virtualizes Delta tables as Iceberg without rewriting data. BigQuery added managed Iceberg storage with its own REST Catalog at Google Cloud Next 2026, with multi-table transactions and interoperability with Spark and other open engines. Neither platform requires abandoning its native format to get Iceberg compatibility.

Accuracy note: Pricing reflects US-region, list-price figures from Microsoft Learn, the Azure Fabric pricing page, and Google Cloud’s BigQuery pricing documentation as of June 2026; regional pricing, enterprise agreements, and currency will change the actual number. FabCon/SQLCon and Google Cloud Next 2026 feature details are sourced from Microsoft’s and Google’s own event recap blogs. The Direct Lake benchmark figures are from an independent third-party test (FourMoo, January 2026), not official vendor numbers. UIG Data Lab is an independent publication and isn’t affiliated with or endorsed by Microsoft or Google.

A.J. Data Engineering Researcher & Technical Writer · UIG Data Lab

A.J. researches and writes about data engineering, analytics architecture, Microsoft Fabric, and modern cloud data platforms, covering Power BI, Azure data engineering, Databricks, Snowflake, Apache Spark, dbt, and BigQuery. The focus is practitioner-level content built from official documentation, product release notes, and real deployment patterns rather than restated marketing copy.

Microsoft Fabric Google BigQuery OneLake Direct Lake Power BI Cloud Data Platforms Data Engineering

Scroll to Top