This document describes how to create pipelines in BigQuery. Pipelines are powered by Dataform.
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
roles/resourcemanager.projectCreator), which contains the
resourcemanager.projects.create permission. Learn how to grant
roles.
Verify that billing is enabled for your Google Cloud project.
Enable the BigQuery, Dataform, and Vertex AI APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin), which
contains the serviceusage.services.enable permission. Learn how to grant
roles.
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
roles/resourcemanager.projectCreator), which contains the
resourcemanager.projects.create permission. Learn how to grant
roles.
Verify that billing is enabled for your Google Cloud project.
Enable the BigQuery, Dataform, and Vertex AI APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin), which
contains the serviceusage.services.enable permission. Learn how to grant
roles.
To get the permissions that you need to create pipelines, ask your administrator to grant you the following IAM roles on the project:
roles/dataform.codeCreator)
roles/dataform.editor)
For more information about granting roles, see Manage access to projects, folders, and organizations.
You might also be able to get the required permissions through custom roles or other predefined roles.
For more information about Dataform IAM, see Control access with IAM.
To get the permissions that
you need to select a runtime template in notebook options,
ask your administrator to grant you the
Notebook Runtime User (roles/aiplatform.notebookRuntimeUser) IAM role on the project.
For more information about granting roles, see Manage access to projects, folders, and organizations.
You might also be able to get the required permissions through custom roles or other predefined roles.
If you don't have this role, you can select the default notebook runtime specification.
All new code assets in your Google Cloud project use a default region. After the asset is created, you can't change its region.
To set the default region for new code assets, do the following:
Go to the BigQuery page.
In the left pane, click Files to open the file browser:
Next to the project name, click View files panel actions > Switch code region.
Select the code region that you want to use as a default.
Click Save.
For a list of supported regions, see BigQuery Studio locations.
You can also use the BigQuery Pipelines & Connections page in the Google Cloud console to create a Dataform pipeline that uses a streamlined, BigQuery-specific workflow. This feature is in preview.
To create a pipeline, follow these steps:
Go to the BigQuery page.
In the tab bar of the editor pane, click the arrow next to the + sign, and then click Pipeline.
Optional: To rename the pipeline, click the pipeline name, and then type a new name.
Click Get started, and then go to the Settings tab.
In the Authentication section, choose to authorize the pipeline with the user credentials for your Google Account or a service account.
To use the user credentials for your Google Account (Preview), select Run with my user credentials.
To use a service account, select Run with selected service account, and then select a service account. If you need to create a service account, click New service account.
In the Processing location section, select a processing location for the pipeline.
To enable the automatic selection of a location, select Automatic location selection. This option selects a location based on the datasets referenced in the request. The selection process is as follows:
US multi-region.To pick a specific region, select Region, then choose a
region in the Region menu. Alternatively, you can use the
@@location system variable
in your query. For more information, see
Specify locations.
To pick a multi-region, select Multi-region, then choose a multi-region in the Multi-region menu.
The pipeline processing location doesn't need to match your default storage location for code assets.
To configure the SQLX settings for your pipeline, do the following in the SQLX options section:
In the Default project field, enter the name of an existing
Google Cloud project. This value is used for defaultProject in the
workflow_settings.yaml file and for defaultDatabase in the
dataform.json file. The default project is used by pipeline tasks during their
execution.
Optional: In the Default dataset field, search for and select an existing
dataset. The list of available datasets is filtered based on the selected
project and processing location. This value is used for defaultDataset in
the workflow_settings.yaml file. The default dataset is used by pipeline tasks
during their execution.
To add a notebook to your pipeline, do the following in the Notebook options section:
In the Runtime template field, either accept the default notebook runtime, or search for and select an existing runtime.
In the Cloud Storage bucket field, click Browse and select or create a Cloud Storage bucket for storing the output of notebooks in your pipeline.
Follow the steps in
Add a principal to a bucket-level policy
to add your custom Dataform service account as a principal to the
Cloud Storage bucket that you plan to use for storing output of
scheduled pipeline runs, and grant the
Storage Admin role
(roles/storage.admin) to this principal.
The selected custom Dataform service account must be granted the Storage Admin IAM role on the selected bucket.
You can add multiple tasks to a pipeline that executes code assets in a specific sequence.
When you name a pipeline task, follow these naming conventions:
_), and hyphens (-)..) are prohibited in task names. When naming or renaming a task,
don't include file extensions such as .sql or .py. If a task name
contains a period, the Run button is deactivated.To add a task to a pipeline, follow these steps:
In the Google Cloud console, go to the BigQuery page.
In the left pane, click Explorer:

If you don't see the left pane, click Expand left pane to open the pane.
In the Explorer pane, expand your project, click Pipelines, and then select a pipeline.
To add a code asset, select one of the following options:
Click Add task, and then select Query. You can either create a new query or import an existing one.
Optional: In the Query task details pane, in the Run after menu, select a task to precede your query.
Create a new query
Click the arrow menu next to Edit Query and select either In context or In new tab.
Search for an existing query.
Select a query name and then press Enter.
Click Save.
Optional: To rename the query, click the query name on the pipeline pane, click Edit Query, click the existing query name at the top of the screen, and then type a new name.
Import an existing query
Click the arrow menu next to Edit Query and click Import a copy.
Search for an existing query to import or select an existing query from the search pane. When you import a query, the original remains unchanged because the query's source file is copied into the pipeline.
Click Edit to open the imported query.
Click Save.
Click Add task, and then select Notebook. You can either create a new notebook or import an existing one. To change settings for notebook runtime templates, see Notebook options.
Optional: In the Notebook task details pane, in the Run after menu, select a task to precede your notebook.
Create a new notebook
Click the arrow menu next to Edit Notebook and select either In context or In new tab.
Search for an existing notebook.
Select a notebook name and then press Enter.
Click Save.
Optional: To rename the notebook, click the notebook name on the pipeline pane, click Edit Notebook, click the existing notebook name at the top of the screen, and then type a new name.
Import an existing notebook
Click the arrow menu next to Edit Notebook and click Import a copy.
Search for an existing notebook to import or select an existing notebook from the search pane. When you import a notebook, the original remains unchanged because the notebook's source file is copied into the pipeline.
To open the imported notebook, click Edit.
Click Save.
Click Add task, and then select Data preparation. You can either create a new data preparation or import an existing one.
Optional: In the Data preparation task details pane, in the Run after menu, select a task to precede your data preparation.
Create a new data preparation
Click the arrow menu adjacent to Edit Data preparation and select either In context or In new tab.
Search for an existing data preparation.
Select a data preparation name and press Enter.
Click Save.
Optional: To rename the data preparation, click the data preparation name on the pipeline pane, click Edit Data preparation, click the name at the top of the screen, and enter a new name.
Import an existing data preparation
Click the arrow drop-down menu next to Edit Data preparation and click Import a copy.
Search for an existing data preparation to import or select an existing data preparation from the search pane. When you import a data preparation, the original remains unchanged because the data preparation's source file is copied into the pipeline.
To open the imported data preparation, click Edit.
Click Save.
Click Add task, and then select Table.
In the Create new pane, select Table or Incremental table.
Verify the default project for the table, or select a new project.
Verify the default dataset for the table, or select a new dataset.
Enter a name for the table.
In the Table task details pane, click Open to open the task.
Configure the task using the settings in
Details > Configuration or in the config block of the
code editor for the table.
For metadata changes, use the Configuration tab. This tab lets
you edit a specific value in the config block from the code editor,
such as a string or an array, that is formatted like a JavaScript
object. Using this tab helps you avoid syntax errors and verify that
your settings are correct.
Optional: In the Run after menu, select a task to precede your table.
You can also define the metadata for your pipeline task in the
config block in the editor. For more information, see
Creating tables.
The editor validates your code and displays the validation status.
In Details > Compiled queries, view the SQL compiled from the SQLX code.
Click Run to run the SQL in your pipeline.
In Query results, inspect the data preview.
Click Add task, and then select View.
In the Create new pane, select View or Materialized view.
Verify the default project for the view, or select a new project.
Verify the default dataset for the view, or select a new dataset.
Enter a name for the view.
In the View task details pane, click Open to open the task.
Configure the task using the settings in
Details > Configuration or in the config block of the
code editor for the view.
For metadata changes, use the Configuration tab. This tab lets
you edit a specific value in the config block from the code editor,
such as a string or an array, that is formatted like a JavaScript
object. Using this tab helps you avoid syntax errors and verify that
your settings are correct.
Optional: In the Run after menu, select a task to precede your view.
You can also define the metadata for your pipeline task in the
config block in the editor. For more information, see
Creating a view with Dataform core.
The editor validates your code and displays the validation status.
In Details > Compiled queries, view the SQL compiled from the SQLX code.
Click Run to run the SQL in your pipeline.
In Query results, inspect the data preview.
To edit a pipeline task, follow these steps:
In the Google Cloud console, go to the BigQuery page.
In the left pane, click Explorer:

If you don't see the left pane, click Expand left pane to open the pane.
In the Explorer pane, expand your project, click Pipelines, and then select a pipeline.
Click the selected task.
To change the preceding task, in the Run after menu, select a task that will precede your task.
To edit the contents of the selected task, click Edit.
In the new tab that opens, edit the task contents, and then save changes to the task.
To delete a task from a pipeline, follow these steps:
In the Google Cloud console, go to the BigQuery page.
In the left pane, click Explorer:

If you don't see the left pane, click Expand left pane to open the pane.
In the Explorer pane, expand your project, click Pipelines, and then select a pipeline.
Click the selected task.
In the Task details pane, click Delete Delete.
To share a pipeline, follow these steps:
In the Google Cloud console, go to the BigQuery page.
In the left pane, click Explorer:

If you don't see the left pane, click Expand left pane to open the pane.
In the Explorer pane, expand your project, click Pipelines, and then select a pipeline.
Click Share, and then select Manage permissions.
Click Add user/group.
In the New principals field, enter the name of at least one user or group.
For Assign Roles, select a role.
Click Save.
In the Google Cloud console, go to the BigQuery page.
In the left pane, click Explorer:

If you don't see the left pane, click Expand left pane to open the pane.
In the Explorer pane, expand your project, click Pipelines, and then select a pipeline.
Click Share, and then select Share link. The URL for your pipeline is copied to your computer's clipboard.
When running a pipeline, you can choose to run all the tasks in the pipeline, manually select specific tasks to run, or run tasks with selected tags.
To manually run the current version of a pipeline, select one of the following options:
To run all the tasks in a pipeline, do the following:
In the Google Cloud console, go to the BigQuery page.
In the left pane, click Explorer:

If you don't see the left pane, click Expand left pane to open the pane.
In the Explorer pane, expand your project, click Pipelines, and then select a pipeline.
Click Run > Run all tasks. If you selected Run with my user credentials for your authentication, you must authorize your Google Account (Preview).
Optional: To inspect the run, view past manual runs.
To run a pipeline manually, compile the default workspace and use the compilation result to create a workflow invocation.
To create a compilation result for the default workspace, use the
projects.locations.repositories.compilationResults.create method.
Run the API request with the following information:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"workspace": "projects/PROJECT_ID/locations/LOCATION/repositories/REPOSITORY_ID/workspaces/default"
}' \
"https://dataform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/repositories/REPOSITORY_ID/compilationResults"
Replace the following:
LOCATION: the Google Cloud region for your
repository, for example, us-central1. You can find the repository
location in the Google Cloud console by navigating to the
Explorer pane, selecting the pipeline, opening the Settings tab,
and clicking Open pipeline in Dataform. The location is in the
URL in the format of /locations/LOCATION/.PROJECT_ID: the unique identifier of your
Google Cloud project.REPOSITORY_ID: the unique identifier for your
Dataform repository, for example, my-secure-repo.
You can find the repository ID in the Google Cloud console by
navigating to the Explorer pane, selecting the pipeline,
opening the Settings tab, and viewing the
Dataform repository ID field.In the response body, locate the name field and copy its value,
for example,
projects/my-project/locations/us-central1/repositories/my-repo/compilationResults/12345-67890.
Trigger the pipeline run using the
projects.locations.repositories.workflowInvocations.create method.
Run the API request with the following information:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"compilationResult": "COMPILATION_RESULT"
}' \
"https://dataform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/repositories/REPOSITORY_ID/workflowInvocations"
Replace the following:
COMPILATION_RESULT: the full resource name of
the compilation result that you copied in the previous step.LOCATION: the Google Cloud region for your
repository, for example, us-central1.PROJECT_ID: the unique identifier of your
Google Cloud project.REPOSITORY_ID: the unique identifier for your
Dataform repository, for example, my-secure-repo.To run selected tasks in a pipeline, do the following:
In the Google Cloud console, go to the BigQuery page.
In the left pane, click Explorer:

If you don't see the left pane, click Expand left pane to open the pane.
In the Explorer pane, expand your project, click Pipelines, and then select a pipeline.
Click Run > Select tasks to run.
In the Run pane, in the Authentication section, authorize the execution with the user credentials for your Google Account or a service account.
To use a custom service account, select Run with selected service account, and then select a custom service account.
If you need to create a service account, click New service account.
Ensure Selection of tasks is selected.
In the Select tasks to run menu, search for specific tasks and select the tasks that you want to run.
The Tasks table lists the tasks that you've selected. Click a task name to open it directly in the SQL editor.
Optional: Configure the following execution options:
Click Run. If you selected Run with user credentials for your authentication method, you must authorize your Google Account (Preview).
Optional: To inspect the run, view past manual runs.
To run tasks with selected tags in a pipeline, do the following:
In the Google Cloud console, go to the BigQuery page.
In the left pane, click Explorer:

If you don't see the left pane, click Expand left pane to open the pane.
In the Explorer pane, expand your project, click Pipelines, and then select a pipeline.
Click Run > Run by tag, then do either of the following:
In the Run pane, in the Authentication section, authorize the execution with the user credentials for your Google Account or a service account.
To use a custom service account, select Run with selected service account, and then select a custom service account.
If you need to create a service account, click New service account.
Ensure Selection of tags is selected.
In the Select tags to run menu, search for specific tags and select the tags that you want to run.
The Tasks table lists the tasks that you've selected. Click a task name to open it directly in the SQL editor.
Optional: Configure the following execution options:
Click Run. If you selected Run with user credentials for your authentication method, you must authorize your Google Account (Preview).
Optional: To inspect the run, view past manual runs.
To authenticate the resource with your Google Account user credentials, you must manually grant permission for BigQuery pipelines to get the access token for your Google Account and access the source data on your behalf. You can grant manual approval with the OAuth dialog interface.
You only need to give permission to BigQuery pipelines once.
To revoke the permission that you granted, follow these steps:
If your pipeline contains a notebook, you must also manually grant permission for Colab Enterprise to get the access token for your Google Account and access the source data on your behalf. You only need to give permission once. You can revoke this permission on the Google Account page.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2026-06-03 UTC.