Prerequisite — Setting up BigQuery
Create your BigQuery warehouse through the Nexus setup UI or MCP, review billing before approval, and resume the same setup if a step needs attention.
Use Nexus → Integrations → BigQuery to create the warehouse for this course. Nexus handles the Google Cloud project, APIs, ingestion service account, dataset, and connection verification. You can also plan and provision the same setup through the Nexus MCP.
Learning Objectives
By the end of this lesson, you will have:
- One connected BigQuery warehouse in your Nexus workspace
- A record of its project ID, dataset, and data location
- An understanding of billing approval and how to resume a saved setup
You don't need to create a service account or download a JSON key.
Before you start
Sign in to Nexus and select your workspace. You need the owner or admin role and a Google account that can create projects and attach an eligible Google Cloud billing account.
This flow creates a new project. If your organization already has a BigQuery warehouse, ask your Nexus administrator to connect that existing warehouse and reuse it for the course.
Google bills your selected billing account directly. Usage can incur charges; setup does not install a spending cap. No Google Cloud resources are created until you review and approve a plan.
Step 1: Connect Google
Open Integrations → BigQuery in your workspace and connect the Google account you want to use for setup. Check the connected email before continuing, especially if your browser has several Google accounts.
If you already started, reopen the entry under Recent setups. Keep using that saved setup instead of starting another one.
Step 2: Enter warehouse details
| Field | What to enter |
|---|---|
| Warehouse name | A readable name, such as Doe Family Warehouse. Nexus also uses it as the Google Cloud project display name. |
| New Google Cloud project ID | Keep the generated suggestion or edit it before approval. Nexus derives it from the warehouse name and adds a suffix; Google requires global uniqueness. |
| Dataset ID | Keep os_nexus for the course's ingestion destination. |
| Data location | Choose US or EU. Use this same location in your dbt connection. |
| Google Cloud organization or folder | Use your organization's parent resource if required. Leave blank if your account can create projects without an explicit parent; Google may assign an organization. |
The project ID and dataset location cannot be changed after creation. Throughout
the course, replace example project IDs such as doe-family-dwh with the
actual generated project ID from your setup.
Step 3: Choose a billing account
Nexus lists billing accounts the connected Google account can attach. If exactly one is eligible, it is selected automatically. If several are eligible, choose the one you intend to pay for this warehouse.
If none are available, the Create a billing account card links to Google Cloud using the connected Google identity. Create an account or ask your billing administrator for access, then return to Nexus and select Check for billing accounts. This updates the choices in place. New Google permissions may take a little time to appear.
Card entry stays in Google Cloud; Nexus never collects your card details.
Step 4: Review and approve the plan
Review the saved plan's project, billing account, dataset, location, and proposed access. If you edit the details, select Review updated plan (or Refresh plan) before approving. A refreshed plan replaces the old approval; an unapproved plan expires after 30 minutes.
Select Review & approve setup, check the confirmation, and approve creation only when the details are correct. Nexus then:
- Creates the project and attaches the selected billing account.
- Enables the required services and creates its ingestion service account.
- Grants access and creates the selected dataset.
- Tests a real ingestion write and registers the connected warehouse.
The ingestion account uses short-lived credentials managed by Nexus. There is no customer service-account key to download or share.
Step 5: Confirm completion and keep the setup link
Wait for the setup to complete and the warehouse to be registered. Save its
setup link, warehouse name, project ID, dataset, and location. MCP users should
also retain the returned warehouseId.
| If you see… | What to do |
|---|---|
| Plan expired or changed details | Refresh the same unapproved plan, then review its latest details. |
| Setup needs attention | Read the failed step, resolve the reported issue, and use Review & resume setup on the same setup. Completed steps are saved. |
| Temporary Google access propagation | Let the automatic retries finish; if the run stops, resume that same setup after access is ready. |
| Nexus configuration needed | Ask a Nexus administrator to finish the server configuration, then refresh the saved plan. Reconnecting Google or creating another project will not resolve this. |
Using the Nexus MCP instead
Connect your Google setup account through the UI once, then ask your Nexus-connected assistant:
Plan a BigQuery warehouse named Doe Family Warehouse in my workspace, using my connected Google setup account, dataset os_nexus, and location US. Suggest a valid project ID and show me the billing choices and proposed changes before creating anything. Reuse my saved setup if I already started one.
The assistant uses these tools:
| Tool | Purpose |
|---|---|
plan_bigquery_setup |
Save or refresh an unapproved plan and discover billing choices. Reuse the returned setupId when changing details. |
provision_bigquery_setup |
Start after you explicitly approve the plan, passing its exact approval text. Resume a failed approved run with the same setup ID and original approval. |
get_bigquery_setup_status |
Read progress, blockers, and the resulting warehouse ID. This tool does not advance the run. |
The assistant must resolve your workspace and its Google setup connection, show the latest plan, and wait for your approval before provisioning. Choosing MCP instead of the UI does not require a second warehouse or a separate Google setup.
What this sets up for the next lessons
Nexus creates the selected ingestion dataset (os_nexus here) and gives its
runtime account access to that dataset. It does not automatically create
separate gmail, google_calendar, or notion datasets, configure dbt
credentials, or change your workspace's default warehouse.
dbt has a separate login. Use your existing organization-managed dbt
connection, or follow the local OAuth path in lesson 1.4. dbt writes its models
into a development dataset such as doe_family_dev; its own identity needs
permission to create that dataset or access one your administrator has provided.
The Nexus ingestion account is not a shared dbt credential.
Hands-On Exercise
- Create one warehouse through the UI or MCP and approve its plan.
- Confirm that setup completes, including write verification.
- Record the generated project ID,
os_nexusdataset, and location. - Keep the saved setup link so you can reopen this same warehouse.
Next Lesson
Choose your dbt environment:
- 1.3 Setting up dbt Cloud — use your organization's dbt Cloud connection.
- 1.4 Setting up dbt locally with VS Code — use an existing profile or your own Google OAuth login.
You only need one. Both use the project you just created.