Google BigQuery Connections
TablePro connects to BigQuery via its REST API. Browse datasets and tables, run GoogleSQL queries, edit rows in the data grid. Plugin auto-installs or grab it from Settings > Plugins > Browse.
Quick Setup
Click New Connection, select BigQuery, pick an auth method, enter your Project ID, 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:
Google Account (OAuth 2.0): Sign in with your Google account via browser. Requires an OAuth Client ID from your GCP project:
- 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
OAuth tokens are session-only. You’ll need to re-authorize after disconnecting. For persistent auth, use Application Default Credentials instead.
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: Press Cmd+K, click the Dataset toolbar button, 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):
Backtick-quote table names: `dataset.table`. Single-quote strings: 'value'.
Query Cost: After running a query in the SQL editor, the status bar shows bytes processed, bytes billed, and estimated cost (e.g., Processed: 1.5 MB | Billed: 10 MB | ~$0.0001). Use the Dry Run option (Explain dropdown > “Dry Run (Cost)”) to check cost before executing.
Data Types: INT64, FLOAT64, NUMERIC, BIGNUMERIC, BOOL, STRING, BYTES, DATE, TIME, DATETIME, TIMESTAMP, GEOGRAPHY, JSON, STRUCT, ARRAY, RANGE. Complex types (STRUCT/ARRAY) display as JSON.
Data Editing: Edit cells, insert/delete rows. DML example:
Partitioned tables require a partition filter for UPDATE/DELETE. Every query costs money (billed per bytes scanned). Set Max Bytes Billed in Advanced settings to cap costs.
DDL: Create datasets (CREATE SCHEMA), add/drop columns (ALTER TABLE), create views (CREATE OR REPLACE VIEW). Table DDL viewable via INFORMATION_SCHEMA.
Export: CSV, JSON, SQL, XLSX formats.
IAM Permissions
Minimum roles:
roles/bigquery.user — run queries
roles/bigquery.dataViewer — browse and read data
roles/bigquery.dataEditor — INSERT, UPDATE, DELETE
Troubleshooting
Auth failed: Check key file path or run gcloud 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
- OAuth tokens are session-only (re-authorize after disconnect)