Connect Google BigQuery to Tableau to visualize large datasets with live or extracted queries.
Enable the BigQuery API, create or download a service-account JSON key, and install Tableau Desktop or Tableau Cloud.Confirm you have BigQuery tables such as Customers
, Orders
, Products
, and OrderItems
.
Open Tableau → Connect pane → Google BigQuery → sign in with Google or "+ Service Account" → browse projects → pick a dataset.
Best for personal use; requires browser login each publish.
Best for production; paste JSON file path or content to allow unattended refreshes.
Tableau builds a JDBC URL behind the scenes:jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;ProjectId=<project>;OAuthType=0;OAuthServiceAcctEmail=<client_email>;OAuthPvtKeyPath=<keyfile.json>;Dataset=<dataset>;DSProxyHost=<optional>;
Drag Orders
and OrderItems
onto the canvas.Choose Inner Join on order_id
. Apply data source filters if needed.
Use Live for near-real-time dashboards with small row counts.Use Extract to cache >10 million rows, schedule refreshes, and leverage Tableau’s Hyper engine.
Select New Custom SQL → paste a query such as:SELECT c.name, SUM(oi.quantity*p.price) AS customer_ltvFROM `project.dataset.Customers` cJOIN `project.dataset.Orders` o ON o.customer_id=c.idJOIN `project.dataset.OrderItems` oi ON oi.order_id=o.idJOIN `project.dataset.Products` p ON p.id=oi.product_idGROUP BY c.name
Use BigQuery materialized views, limit columns, parameterize date filters, and enable Tableau Query Fusion.Disable “Allow Large Results” to avoid slot overuse.
1) Prefer service accounts for shared workbooks. 2) Keep extracts under 10 GB. 3) Store BigQuery temp tables in the same region as data. 4) Monitor QUERY_PLAN cache hits.
.
No. Tableau Public supports only extracts saved in the workbook; BigQuery connectors require Tableau Desktop, Cloud, or Server.
Tableau defaults to Standard SQL. Legacy SQL is possible by adding SQLDialect=legacy
in the connection string but is discouraged.
Create a service-account credential, embed it in the published data source, and schedule refreshes in Tasks → Extract Refreshes.