What is BigQuery?

Google BigQuery is a fully-managed, serverless data warehouse that enables super-fast SQL queries using the processing power of Google’s infrastructure. It’s designed for analyzing large datasets and is commonly used for business intelligence, data analytics, and machine learning.

BigQuery Connection Requirements

Unlike traditional databases that use username/password authentication, BigQuery uses Google Cloud Service Accounts for secure API access. This means you’ll need:

  1. A Google Cloud Project with BigQuery enabled

  2. A Service Account with appropriate permissions

  3. A Service Account Key (JSON file) for authentication

  4. Below are the minimum required BigQuery permissions for Julius to work.

Providing the minimum required permissions

  1. Navigate to the Google Cloud Console IAM Roles
  2. Create a new role with the following permissions:

Minimum Required Permissions

Your service account needs at least the following permissions to work with BigQuery:

  • bigquery.jobs.create - Required to execute a BigQuery job
  • bigquery.readsessions.create - Required to create a read session
  • bigquery.readsessions.getData - Required to get data from a read session
  • bigquery.tables.get - Required to access metadata about a table
  • bigquery.tables.getData - Required to get data from a table
  • bigquery.tables.list - Required to list available tables in a dataset
  • bigquery.routines.get - Required to access metadata about a routine
  • bigquery.routines.list - Required to list available routines in a dataset

  1. Assign the roles to the service account

More Granular Permissions

The following permissions allow julius to access information about available tables. Currently, BigQuery does not provide a way to restrict viewing metadata to specific tables. However, you can restrict access to viewing the data within specific tables.

  • bigquery.tables.get - Required to access metadata about a table
  • bigquery.tables.list - Required to list available tables in a dataset
  • bigquery.routines.get - Required to access metadata about a routine
  • bigquery.routines.list - Required to list available routines in a dataset

You can view Google’s documentation to understand why we need these permissions: BigQuery Information Schema Tables

With this, you could create two roles, one role that allows julius to access the high level metadata about the tables and another role that allows julius to access particular data within a subset of tables.

The second role would contain the following permissions:

  • bigquery.tables.getData - Required to get data from a table
  • bigquery.readsessions.getData - Required to get data from a read session

You can then apply more granular permissions for each table you want to allow julius to access on this role.

Connecting Julius to BigQuery

Navigate to Data Connectors

  1. Go to your Julius Data Connectors Settings 2. Click Create new Data Connector 3. Select BigQuery from the available options

Configure Connection Details

You’ll see a form with the following fields:

Fields marked with an asterisk (*) are required to establish a connection.

Connection Name*
string
  • What it is: A friendly name to identify this BigQuery connection
  • Example: “Production Analytics” or “Sales Data Warehouse”
  • Tip: Choose a name that helps you remember which BigQuery project/datasets this connects to
SERVICE_ACCOUNT_JSON*
object
  • What it is: The complete JSON content from your downloaded service account key file
  • How to use: Open the downloaded JSON file in a text editor and copy the entire contents
  • Security: Julius encrypts and securely stores these credentials

Make sure to copy the entire JSON content including the opening and closing curly braces { }. Missing any part will cause authentication to fail.

MFA_TYPE
string
  • What it is: Multi-Factor Authentication type if your organization requires additional security
  • When needed: Only if your Google Cloud organization has additional authentication requirements
  • Most users: Can leave this blank unless specifically required by your organization’s security policy

Test and Save Connection

  1. Click Add Connection to test the connection
  2. Julius will validate your service account credentials and access permissions
  3. If successful, your connector will be saved and ready to use
  4. If there’s an error, check the common issues section below

Troubleshooting Common Issues

Using Your BigQuery Connector

Once your BigQuery connector is set up:

  1. Start a conversation with Julius

  2. Ask about your data using natural language:

    • “Show me sales data from the last quarter”
    • “What’s the average order value by region?”
    • “Create a chart showing user growth over time”
  3. Julius will automatically:

    • Connect to your BigQuery project
    • Write and execute SQL queries
    • Handle BigQuery’s specific syntax and functions
    • Present results in easy-to-understand formats
    • Create visualizations when requested

Julius understands BigQuery’s unique features like nested/repeated fields, array functions, and standard SQL syntax. You don’t need to know BigQuery-specific SQL!