Quick Setup
Click New Connection, select BigQuery, pick an auth method, enter your Project ID, and click Save & Connect.Authentication
Service Account Key: Point to a.json key file from Google Cloud Console (IAM > Service Accounts > Keys), or paste the raw JSON content directly into the field.
Application Default Credentials: Uses cached credentials from gcloud CLI. Supports authorized_user, service_account, and impersonated_service_account credential types. Run this first:
- Go to Google Cloud Console > APIs & Services > Credentials
- Click “Create Credentials” > “OAuth client ID”
- Select “Desktop app” as application type
- Copy the Client ID and Client Secret into TablePro
- On first connect, your browser opens for Google authorization
- After approving, TablePro receives the token automatically
Connection Settings
Features
Dataset Browsing: The sidebar lists every dataset as an expandable node. Click a dataset to load its tables; they load the first time you open it. Search filters across the datasets you have open. Dataset Switching: PressCmd+K, click the dataset chip in the toolbar, or use File > Open Dataset… to jump to another dataset. The switcher also creates new datasets (Cmd+N inside the popover) and drops datasets from the row context menu.
Table Structure: Columns with full BigQuery types: STRUCT<name STRING, age INT64>, ARRAY<STRING>, nullable status, field descriptions. Clustering and partitioning info in the Indexes tab.
GoogleSQL Queries (docs):
Processed: 1.5 MB | Billed: 10 MB | ~$0.0001). Use the Dry Run option (Explain dropdown > “Dry Run (Cost)”) to check cost before executing.

Query cost in the status bar after execution
CREATE SCHEMA for datasets, ALTER TABLE ... ADD COLUMN and DROP COLUMN, CREATE OR REPLACE VIEW. The DDL tab reads each table’s definition from INFORMATION_SCHEMA.TABLES. The Structure tab is read-only for BigQuery.
Export: CSV, JSON, SQL, XLSX formats.
IAM Permissions
Minimum roles:roles/bigquery.user: run queriesroles/bigquery.dataViewer: browse and read dataroles/bigquery.dataEditor: INSERT, UPDATE, DELETE
Troubleshooting
Auth failed: Check key file path or rungcloud auth application-default login.
Permission denied: Ensure bigquery.user role is granted on the project.
Project not found: Use the Project ID (not name or number).
Query timeout: BigQuery runs jobs async. The plugin polls up to 5 minutes (configurable).
Cost: Use LIMIT, select specific columns, prefer partitioned tables. Set Max Bytes Billed to prevent expensive queries. Table browsing caps rows automatically.
No tables after connect: Expand a dataset node in the sidebar to load its tables. Empty datasets stay empty; open another dataset that has tables.
Limitations
- No SSH tunneling (HTTPS only to BigQuery API)
- No transactions
- STRUCT/ARRAY columns excluded from UPDATE/DELETE WHERE clauses
- Deep pagination (large OFFSET) scans from start. Use filters to narrow results
- No streaming inserts
- Browser OAuth re-authorizes on each connect unless a refresh token is saved in the connection

