How to connect BigQuery to a BI tool: a practical guide
Max Musing
Max MusingFounder and CEO of Basedash · June 17, 2026

Max Musing
Max MusingFounder and CEO of Basedash · June 17, 2026

Connecting Google BigQuery to a BI tool is straightforward, because BigQuery is already a SQL warehouse and almost every BI product speaks SQL. The real work is three things: setting up a scoped service account so the connection is secure, controlling cost (BigQuery bills by the bytes a query scans, not by how long it runs), and deciding where your metrics live so dashboards stay consistent. Get those right and the connection itself takes minutes.
This guide is for analytics engineers, data leads, and founders who already have data in BigQuery and want dashboards without surprises on the Google Cloud bill. It covers the ways BI tools connect to BigQuery, how to set up access correctly, the governance features BigQuery gives you, and the cost controls that separate a predictable setup from a runaway one. It is the practical companion to our comparison of the best BI tools for BigQuery, which ranks the tools themselves.
BigQuery Data Viewer on specific datasets and BigQuery Job User to run queries). Do not reuse a personal account or grant project-wide editor.SELECT *, set a maximum bytes billed limit, and add BI Engine or materialized views for hot dashboards.Most warehouses are pleasant to put a BI tool on top of. There is no document-flattening problem like MongoDB, no risk of overloading a production database like Postgres or MySQL, and the data is already columnar and built for analytical scans. A live connection from Looker, Tableau, Power BI, Metabase, Sigma, or Basedash is usually a matter of pasting a service account key and picking a dataset.
The catch is the pricing model. By default, BigQuery uses on-demand pricing, where you pay for the number of bytes each query reads. The first 1 TiB per month is free per billing account, and after that the rate is $6.25 per TiB in US and EU regions (Google Cloud pricing). That model rewards careful queries and punishes lazy ones. A single SELECT * against a wide, unpartitioned table can scan hundreds of gigabytes every time a dashboard refreshes, and a dashboard that auto-refreshes for fifty viewers multiplies that scan by fifty.
This is why connecting BigQuery is the easy part and the rest of this guide spends most of its time on cost and access. The connection works on day one. The bill is what surprises teams in month two.
There are four practical patterns. Most teams use the first.
This is the default for almost every BI tool. You create a Google Cloud service account, give it read access to the datasets you want exposed and permission to run jobs, download a JSON key (or use workload identity federation), and paste the credentials into your BI tool’s BigQuery connector. The tool then pushes SQL straight to BigQuery’s engine and renders the results.
Use this when you want live dashboards on current data, which is almost always. Because BigQuery is built for analytical scans, there is no production database to protect, so live querying is the normal mode rather than a risk.
Looker and Looker Studio are Google products and integrate with BigQuery through Google authentication and IAM rather than a service account key. Looker Studio is free and connects with a few clicks, which makes it the fastest way to get a chart on BigQuery data. Looker (the enterprise product) adds a governed modeling layer in LookML on top of the same connection. Both push queries down to BigQuery, so the same cost rules apply.
BigQuery BI Engine is an in-memory analysis layer that caches frequently queried data and serves dashboard queries with sub-second latency. You reserve capacity in GB, and BI Engine accelerates compatible queries automatically without changing how the BI tool connects. It works with Looker Studio, Looker, and other tools that query through the standard interface. One caveat: BI Engine does not accelerate queries on tables that use row-level security (Google Cloud), so plan governance and acceleration together.
Some tools can import a snapshot of BigQuery data into their own in-memory engine (Power BI Import mode, Tableau extracts). This made sense when warehouses were slow and expensive to query repeatedly. With BigQuery, partitioning, caching, and BI Engine usually make live (DirectQuery) the better choice. Reach for extracts only when you have a specific reason: a fixed dataset that rarely changes, offline access, or a tool that performs noticeably better on extracts for your particular workload.
The connection should be a narrow, auditable boundary, not a copy of your own credentials.
[email protected]). Never reuse a personal account or an application’s service account.BigQuery Data Viewer lets the account read data, scoped to specific datasets rather than the whole project. BigQuery Job User lets it run queries. That combination is enough to power dashboards and nothing else.Data Viewer at the dataset level on the datasets analysts actually need. Avoid project-wide grants that quietly expose every future dataset.The same read-only, least-privilege principles apply to any source. If you also connect a production database, see how to safely connect a BI tool to your production database for the equivalent setup on Postgres and MySQL.
This is the section that decides whether your setup is a quiet success or a recurring finance conversation. BigQuery’s bytes-scanned model means cost control is a query-design problem, not a licensing problem. The levers below are ordered by impact.
Partition your tables. Partitioning by a date or timestamp column lets BigQuery prune irrelevant partitions, so a query filtered to the last 30 days scans 30 days of data instead of three years. Unpartitioned tables are the single most common cause of bloated BI bills.
Cluster within partitions. Clustering sorts data by the columns you filter on most (customer ID, region, status), which further reduces bytes scanned for selective queries. Partitioning plus clustering covers most dashboard query patterns.
Stop selecting columns you do not use. BigQuery is columnar, so it only scans the columns a query references. SELECT * scans every column; selecting the five you actually chart can cut the scan by an order of magnitude. Model your reporting views to expose only what dashboards need.
Set a maximum bytes billed limit. BigQuery lets you cap the bytes a query is allowed to scan. If the estimate exceeds the limit, the query fails before running and you are not charged (Google Cloud best practices). Set it as a guardrail on the BI service account or per query so one bad dashboard cannot scan a terabyte by accident. BigQuery also supports user-level and project-level custom cost controls.
Use BI Engine or materialized views for hot dashboards. A handful of dashboards usually drive most of the query volume. BI Engine caches them in memory; materialized views pre-aggregate expensive rollups so the BI tool reads a small summary instead of scanning the base table each time. Both cut both latency and cost for repeated queries.
Lean on the result cache. BigQuery caches query results for 24 hours, and cached results are free. Identical queries (same SQL, same data) served from cache cost nothing, which is why scheduled refreshes that reuse the same query are cheaper than they look.
Consider editions for predictable heavy usage. On-demand pricing is best for sporadic, exploratory workloads. If BI usage is heavy and steady, capacity-based BigQuery editions (slot reservations with autoscaling) can make the bill predictable and often cheaper at volume. The crossover depends on your monthly scan volume; on-demand is usually cheaper below roughly 10 TiB of unpredictable scanning per month.
For a deeper treatment of warehouse spend driven by dashboards, see how to cut cloud data warehouse costs from BI dashboards.
BigQuery gives you native, query-time access controls. Use them as the source of truth and let your BI tool’s permissions sit on top, rather than relying on the BI tool alone.
The principle: enforce data access in the warehouse where it cannot be bypassed, and use the BI tool for workspace, dashboard, and editing permissions.
BigQuery supports nested and repeated fields (STRUCT and ARRAY), which are common in event data and exports from tools like Google Analytics 4. Two things to plan for:
user.address.country). Most BI tools handle this, but some flatten awkwardly. Expose a flattened view if your tool struggles.UNNEST to become rows. Decide whether to unnest in a reporting view (so the BI tool sees clean tabular data) or rely on the tool to handle arrays. Doing it once in a view is almost always cleaner than reinventing it per dashboard.Wide, denormalized tables are idiomatic in BigQuery and usually fine, but they make SELECT * expensive. Model reporting views that select only the columns dashboards use.
For BigQuery, live (DirectQuery) is the default and usually the right answer. The warehouse is built for analytical scans, BI Engine and caching handle latency, and live data is what most dashboards need.
Choose live when:
Choose an extract when:
When in doubt, start live with partitioning, a maximum bytes billed limit, and BI Engine on the busiest dashboards. Add extracts only if a real cost or performance problem appears.
How the major BI tools connect to and behave on BigQuery:
| BI tool | Connection | Cost-control posture | AI querying | Best fit |
|---|---|---|---|---|
| Looker | Native (Google IAM), LookML modeling | Strong; governed SQL, aggregate awareness | Limited (Gemini in Looker) | Enterprises wanting governed metrics on BigQuery |
| Looker Studio | Native, free | Basic; BI Engine support | Minimal | Free, fast first dashboards |
| Tableau | Live or extract via connector | Manual; relies on query design | Limited | Visual analytics teams |
| Power BI | DirectQuery or Import | Import shifts load off BigQuery | Copilot (preview) | Microsoft-first organizations |
| Metabase | JDBC service account | Manual; caching helps | Limited | Lightweight self-hosted dashboards |
| Sigma | Live, warehouse-native | Pushdown to BigQuery | Some AI assist | Spreadsheet-style analysis on the warehouse |
| Basedash | Live via service account or managed connectors | AI generates scoped SQL, not SELECT * | AI-native (plain-English to SQL) | Startups wanting fast, AI-assisted dashboards |
No tool removes the need for partitioning and a bytes-billed cap. They differ mainly in how much governance and AI sit on top of the same BigQuery connection.
Before you share a BigQuery dashboard with the team, confirm:
BigQuery Data Viewer (on specific datasets) and BigQuery Job User.SELECT *).INFORMATION_SCHEMA.JOBS for the most expensive queries.No. BigQuery is the warehouse. If your data is already in BigQuery, you connect a BI tool directly. The only modeling worth doing first is a curated set of reporting views so dashboards are stable and scoped.
Looker Studio is free and connects natively, which makes it the cheapest tool. But tool cost is rarely the issue; query cost is. The cheapest setup is partitioned and clustered tables, reporting views that avoid SELECT *, a maximum bytes billed cap, and BI Engine on the few dashboards people actually use.
Always a dedicated service account with least-privilege roles. Personal credentials break when the person leaves, are hard to audit, and usually carry more access than a dashboard needs.
Partition and cluster the tables it reads, expose only needed columns through a view, and set a maximum bytes billed limit so oversized queries fail before running rather than after. For repeated heavy queries, pre-aggregate with a materialized view.
Yes. Apply row-level security policies on the underlying tables so each user sees only their permitted rows, then build one shared dashboard on top. Remember that BI Engine will not accelerate tables that use row-level security.
In one layer above the raw data: SQL views, dbt models, or a semantic layer, never re-derived in every dashboard. The reasoning is the same as in where to define business metrics: pick one home for each metric so every dashboard reads the same definition.
Written by
Founder and CEO of Basedash
Max Musing is the founder and CEO of Basedash, an AI-native business intelligence platform designed to help teams explore analytics and build dashboards without writing SQL. His work focuses on applying large language models to structured data systems, improving query reliability, and building governed analytics workflows for production environments.
Basedash lets you build charts, dashboards, and reports in seconds using all your data.