Update model metadata
This page shows you how to update BigQuery ML model metadata. You can update model metadata by:
- Using the Google Cloud console.
- Using the
bq update
command in the bq command-line tool. - Calling the
models.patch
API method directly or by using the client libraries.
The following model metadata can be updated:
- Description: Can be updated by using the Google Cloud console, bq command-line tool, API, or client libraries.
- Labels: Can be updated by using the Google Cloud console, bq command-line tool, API, or client libraries.
- Expiration time: Can be updated by using the bq tool, API, or client libraries.
Required permissions
To update model metadata, you must be assigned the
WRITER
role on the dataset, or you must be assigned a project-level Identity and Access Management (IAM) role that
includes bigquery.models.updateMetadata
permissions. If you are granted
bigquery.models.updateMetadata
permissions at the project level, you can
update metadata for models in any dataset in the project. The following
predefined, project-level IAM roles include bigquery.models.updateMetadata
permissions:
bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
For more information on IAM roles and permissions in BigQuery ML, see Access control.
Update a model's description
A model's description is a text string that is used to easily identify the model.
To update a model's description:
Console
In the Google Cloud console, go to the BigQuery page.
In the navigation panel, in the Resources section, expand your project name and dataset name.
Click your model name. Models are indicated by the model icon: .
Click the Details tab.
To update the model's description, click the edit icon (pencil) to the right of Description.
In the Edit description dialog, enter your text and then click Update.
bq
To update a model's description, issue the bq update
command with the
--model
or -m
flag and the --description
flag.
If you are updating a model in a project other than your default project,
add the project ID to the dataset in the following format:
[PROJECT_ID]:[DATASET]
.
bq update --model --description "[STRING]" [PROJECT_ID]:[DATASET].[MODEL]
Where:
[STRING]
is the text string that describes your model in quotes.[PROJECT_ID]
is your project ID.[DATASET]
is the name of the dataset.[MODEL]
is the name of the model.
The command output looks like the following:
Model '[PROJECT_ID]:[DATASET].[MODEL]' successfully updated.
You can confirm your changes by issuing the bq show
command. For more
information, see Get model metadata.
Examples:
Enter the following command to update the description of mymodel
in
mydataset
in your default project.
bq update --model --description "My updated description" \
mydataset.mymodel
Enter the following command to update the description of mymodel
in
mydataset
in myotherproject
.
bq update --model --description "My updated description" \
myotherproject:mydataset.mymodel
API
To update a model's description by using the API, call the
models.patch
method and provide the projectId
, datasetId
, and modelId
. To modify
the description, add to or update the "description" property for the
model resource.
Go
Before trying this sample, follow the Go setup instructions in the BigQuery quickstart using client libraries. For more information, see the BigQuery Go API reference documentation.
To authenticate to BigQuery, set up Application Default Credentials. For more information, see Set up authentication for client libraries.
Java
Before trying this sample, follow the Java setup instructions in the BigQuery quickstart using client libraries. For more information, see the BigQuery Java API reference documentation.
To authenticate to BigQuery, set up Application Default Credentials. For more information, see Set up authentication for client libraries.
Node.js
Before trying this sample, follow the Node.js setup instructions in the BigQuery quickstart using client libraries. For more information, see the BigQuery Node.js API reference documentation.
To authenticate to BigQuery, set up Application Default Credentials. For more information, see Set up authentication for client libraries.
Python
Before trying this sample, follow the Python setup instructions in the BigQuery quickstart using client libraries. For more information, see the BigQuery Python API reference documentation.
To authenticate to BigQuery, set up Application Default Credentials. For more information, see Set up authentication for client libraries.
Update a model's labels
Labels are key-value pairs that you can attach to a resource. When you create BigQuery ML resources, labels are optional. For more information, see Adding and using labels.
To update a model's labels:
Console
In the Google Cloud console, go to the BigQuery page.
In the navigation panel, in the Resources section, expand your project name and dataset name.
Click your model name. Models are indicated by the model icon: .
Click the Details tab.
To update the model's labels, click the edit icon (pencil) to the right of Labels.
In the Edit labels dialog:
- To apply additional labels, click Add label. Each key can be used only once per dataset, but you can use the same key in different datasets in the same project.
- Modify the existing keys or values to update a label.
- Click Update to save your changes.
bq
To update a model's labels, issue the bq update
command with the
--model
or -m
flag and the --set_label
flag. Repeat the --set_label
flag to add or update multiple labels.
If you are updating a model in a project other than your default project,
add the project ID to the dataset in the following format:
[PROJECT_ID]:[DATASET]
.
bq update --model --set_label [KEY:VALUE] \
[PROJECT_ID]:[DATASET].[MODEL]
Where:
[KEY:VALUE]
corresponds to a key:value pair for a label that you want to add or update. If you specify the same key as an existing label, the value for the existing label is updated. The key must be unique.[PROJECT_ID]
is your project ID.[DATASET]
is the name of the dataset.[MODEL]
is the name of the model.
The command output looks like the following.
Model '[PROJECT_ID]:[DATASET].[MODEL]' successfully updated.
You can confirm your changes by issuing the bq show
command. For more
information, see Get model metadata.
Examples:
To update the department
label on mymodel
, enter the bq update
command
and specify department
as the label key. For example, to update the
department:shipping
label to department:logistics
, enter the following
command. mydataset
is in myotherproject
, not your default project.
bq update --model --set_label department:logistics \
myotherproject:mydataset.mymodel
API
To update a model's labels by using the API, call the
models.patch
method and provide the projectId
, datasetId
, and modelId
. To modify
the labels, add to or update the "labels" property for the
model resource.
Update a model's expiration time
A model's expiration time is a timestamp value that dictates when a model is deleted. You can set a model's expiration time when the model is created by using the CLI, the API, or the client libraries. You can also set or update the expiration time on a model after it is created. A model's expiration time is often referred to as "time to live" or TTL.
If you do not set an expiration time on a model, the model never expires and you must delete the model manually.
The value for the expiration time is expressed differently depending on where the value is set. Use the method that gives you the appropriate level of granularity:
- In the command-line tool, expiration is expressed in seconds from the current UTC time. When you specify the expiration on the command line, the integer value in seconds is added to the current UTC timestamp.
- In the API, expiration is expressed in milliseconds since the epoch. If you specify an expiration value that is less than the current timestamp, the model expires immediately.
To update the expiration time for a model:
Console
Setting or updating the expiration time on a model is not currently supported by the Google Cloud console.
bq
To update a model's expiration time, issue the bq update
command with the
--model
or -m
flag and the --expiration
flag.
If you are updating a model in a project other than your default project,
add the project ID to the dataset in the following format:
[PROJECT_ID]:[DATASET]
.
bq update --model --expiration [INTEGER] \
[PROJECT_ID]:[DATASET].[MODEL]
Where:
[INTEGER]
is the lifetime (in seconds) for the model. The minimum value is 3600 seconds (one hour). The expiration time evaluates to the current UTC time plus the integer value.[PROJECT_ID]
is your project ID.[DATASET]
is the name of the dataset.[MODEL]
is the name of the model.
The command output looks like the following.
Model '[PROJECT_ID]:[DATASET].[MODEL]' successfully updated.
You can confirm your changes by issuing the bq show
command. For more
information, see Get model metadata.
Examples:
Enter the following command to update the expiration time of mymodel
in
mydataset
to 5 days (432000 seconds). mydataset
is in your default
project.
bq update --model --expiration 432000 mydataset.mymodel
Enter the following command to update the expiration time of mymodel
in
mydataset
to 5 days (432000 seconds). mydataset
is in myotherproject
,
not your default project.
bq update --model --expiration 432000 myotherproject:mydataset.mymodel
API
To update a model's expiration by using the API, call the
models.patch
method and provide the projectId
, datasetId
, and modelId
. To modify
the expiration, add to or update the "expirationTime" property for the
model resource.
"expirationTime" is expressed in milliseconds since the epoch.
What's next
- For an overview of BigQuery ML, see Introduction to BigQuery ML.
- To get started using BigQuery ML, see Create machine learning models in BigQuery ML.
- To learn more about working with models, see: