Skip to main content
Back to Blog

The Shift to Warehouse-Native Analytics: What It Means for Your Team

For most of the past decade, the dominant analytics architecture involved extracting data out of the warehouse and loading it into a separate analytics tool. Looker runs against a connection, but a significant fraction of its customers route traffic through PDTs (persistent derived tables) that materialize in-warehouse. Tableau and Power BI both offer live query modes but most production deployments use extracts. The extract model emerged from real latency constraints: warehouses in 2012 were not fast enough to serve interactive queries at reasonable cost.

Those constraints have changed substantially. Snowflake's multi-cluster warehouse architecture, BigQuery's separation of storage and compute with columnar scan throughput in the terabyte-per-second range, and Redshift's materialized view refresh now all support interactive analytics workloads at a cost and latency profile that was not viable five years ago. That change in warehouse economics is what makes the warehouse-native model not just architectural preference but practical reality.

What Warehouse-Native Actually Means

Warehouse-native analytics means that your analytical computation runs as SQL inside your warehouse rather than being extracted to a separate system. This sounds like an architectural detail, but it has downstream effects across three dimensions that matter to data teams: governance, query cost, and latency.

The governance dimension is the most significant one. When data stays in the warehouse, all access control, row-level security policies, and audit logging that your data engineering team has invested in continue to apply. When you extract data to an external BI tool's internal cache or extract store, you create a second copy of that data under a different access control model. That copy may not respect the row-level policies your warehouse enforces. It creates a separate audit trail that security teams have to reconcile. And it creates a freshness lag that depends on the extract schedule rather than on the warehouse's actual data currency.

The query cost dimension is more nuanced. Warehouse-native queries do consume compute credits. But the comparison is not "warehouse compute vs. free." The comparison is warehouse compute vs. the operational overhead of running an extract pipeline: the ELT jobs, the storage in the external tool's format, the compute the external tool uses for its own aggregations, and the engineering time to maintain the extract refresh logic when schemas change.

The Semantic Layer Connection

Warehouse-native architecture gets more interesting when you add a semantic layer on top of it. Tools like dbt's semantic layer (the MetricFlow engine behind it) or alternative semantic layer implementations define metrics as reusable SQL expressions that compile down to warehouse queries. The semantic layer lives above the raw tables but below the BI interface, and it runs its query generation against the warehouse at query time rather than materializing intermediate results in a separate store.

This changes where business logic lives. In the traditional extract model, business logic tends to accumulate in the extract transformation: a Tableau calculated field, a Looker LookML measure definition, or a Power BI DAX expression. That logic is only accessible from the tool it lives in. In the semantic layer model, that same logic lives in a version-controlled YAML definition that any downstream tool can query. The warehouse becomes the single execution engine for all analytical computation.

For attribution specifically, the semantic layer model matters because attribution requires consistent metric definitions across the dimensions it decomposes. If your conversion rate definition in Looker differs from the one your analyst uses in their ad-hoc queries by even a small filter condition, your attribution results will not match your existing dashboards. When metric definitions live in a shared semantic layer and attribution runs against the same layer, that consistency problem is structurally solved rather than requiring constant manual reconciliation.

Latency and Cost Realities

Warehouse-native does not mean instantaneous. On Snowflake, a cold start for a medium warehouse typically runs 3 to 8 seconds before the first query byte processes. BigQuery has no cold start but has per-query slot allocation overhead. Attribution workloads that scan wide fact tables across many dimension combinations can run 20 to 90 seconds depending on table size and cardinality.

That latency profile is fine for asynchronous workflows (scheduled attribution reports, async investigation requests) but is not suited for sub-second interactive dashboard experiences. The right mental model is that warehouse-native attribution is a replacement for the analyst investigation cycle, not a replacement for pre-aggregated dashboards. A dashboard showing your top-line metrics should still hit pre-materialized aggregates. The attribution layer kicks in when a metric moves and you need to know why, which is inherently an async investigation, not a real-time interaction.

On cost: attribution queries that scan large fact tables are not cheap. A single attribution run against a 10-billion-row events table in BigQuery on a month's worth of data might cost $0.50 to $2.50 depending on how many dimensional combinations get evaluated. If that run replaces 90 minutes of analyst time, the economic math is favorable. But teams should be deliberate about which metrics get attributed on what frequency, and should use warehouse-side caching (BigQuery's query cache, Snowflake's result cache) where the inputs have not changed since the last run.

What Does Not Change When You Go Warehouse-Native

The warehouse-native shift solves the data consistency and governance problems that come from maintaining a separate analytics store. It does not solve the underlying data quality problems in your warehouse. If your events table has duplicates that inflate certain session counts, warehouse-native attribution will propagate those duplicates into attribution results just as reliably as extract-based attribution would.

It also does not solve metric definition disagreements between teams. If marketing defines "activated user" differently from product, running both definitions natively in the warehouse does not make them consistent. The semantic layer helps here, but only after the business logic disagreement is resolved and encoded into shared definitions. The tooling can enforce consistency once consensus exists; it cannot create consensus.

What warehouse-native does change, practically, is the amount of pipeline infrastructure your team has to maintain. There are no extract jobs to monitor, no extract stores to keep in sync with schema changes, and no separate access control layer to reconcile with your warehouse policies. For a small data engineering team, that reduction in operational surface is meaningful. The team we are building toward at Golden Analytics is built around this model: the warehouse is the system of record, and everything we build runs SQL against it rather than maintaining a parallel copy.

The Practical Adoption Path

Moving to warehouse-native analytics does not require migrating everything at once. Most teams run a hybrid for an extended period: pre-aggregated dashboards for top-line metrics that need sub-second response times, and warehouse-native attribution for investigation workflows where a 30-second query time is acceptable because it is replacing a 90-minute investigation.

The first concrete step is usually defining your metrics in a semantic layer. Whether that is dbt's MetricFlow, a lightweight YAML-based definition in your own repository, or a structured metadata layer in your warehouse, the goal is to establish a single canonical definition for each key metric that both your dashboards and your attribution tooling can reference. Once that is in place, attribution can run against the same definitions your stakeholders see in their dashboards, and the consistency problem largely goes away.

The second step is auditing your warehouse's read-only access model. Warehouse-native tools that run arbitrary SQL need a service account with appropriate permissions. Getting that access control configuration right before connecting a new tool is substantially easier than cleaning it up after.