更新数据集的默认表到期时间。
包含此代码示例的文档页面
如需查看上下文中使用的代码示例,请参阅以下文档:
代码示例
Go
在尝试此示例之前,请按照《BigQuery 快速入门:使用客户端库》中的 Go 设置说明进行操作。如需了解详情,请参阅 BigQuery Go API 参考文档。
import (
"context"
"fmt"
"time"
"cloud.google.com/go/bigquery"
)
// updateDatasetDefaultExpiration demonstrats setting the default expiration of a dataset
// to a specific retention period.
func updateDatasetDefaultExpiration(projectID, datasetID string) error {
// projectID := "my-project-id"
// datasetID := "mydataset"
ctx := context.Background()
client, err := bigquery.NewClient(ctx, projectID)
if err != nil {
return fmt.Errorf("bigquery.NewClient: %v", err)
}
defer client.Close()
ds := client.Dataset(datasetID)
meta, err := ds.Metadata(ctx)
if err != nil {
return err
}
update := bigquery.DatasetMetadataToUpdate{
DefaultTableExpiration: 24 * time.Hour,
}
if _, err := client.Dataset(datasetID).Update(ctx, update, meta.ETag); err != nil {
return err
}
return nil
}
Java
试用此示例之前,请按照《BigQuery 快速入门:使用客户端库》中的 Java 设置说明进行操作。 如需了解详情,请参阅 BigQuery Java API 参考文档。
import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryException;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.Dataset;
import java.util.concurrent.TimeUnit;
public class UpdateDatasetExpiration {
public static void main(String[] args) {
// TODO(developer): Replace these variables before running the sample.
String datasetName = "MY_DATASET_NAME";
// Update dataset expiration to one day
Long newExpiration = TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS);
updateDatasetExpiration(datasetName, newExpiration);
}
public static void updateDatasetExpiration(String datasetName, Long newExpiration) {
try {
// Initialize client that will be used to send requests. This client only needs to be created
// once, and can be reused for multiple requests.
BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();
Dataset dataset = bigquery.getDataset(datasetName);
bigquery.update(dataset.toBuilder().setDefaultTableLifetime(newExpiration).build());
System.out.println("Dataset description updated successfully to " + newExpiration);
} catch (BigQueryException e) {
System.out.println("Dataset expiration was not updated \n" + e.toString());
}
}
}
Node.js
在尝试此示例之前,请按照《BigQuery 快速入门:使用客户端库》中的 Node.js 设置说明进行操作。如需了解详情,请参阅 BigQuery Node.js API 参考文档。
// Import the Google Cloud client library
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();
async function updateDatasetExpiration() {
// Updates the lifetime of all tables in the dataset, in milliseconds.
/**
* TODO(developer): Uncomment the following lines before running the sample.
*/
// const datasetId = "my_dataset";
// Retreive current dataset metadata
const dataset = bigquery.dataset(datasetId);
const [metadata] = await dataset.getMetadata();
// Set new dataset metadata
const expirationTime = 24 * 60 * 60 * 1000;
metadata.defaultTableExpirationMs = expirationTime.toString();
const [apiResponse] = await dataset.setMetadata(metadata);
const newExpirationTime = apiResponse.defaultTableExpirationMs;
console.log(`${datasetId} expiration: ${newExpirationTime}`);
}
Python
在尝试此示例之前,请按照《BigQuery 快速入门:使用客户端库》中的 Python 设置说明进行操作。如需了解详情,请参阅 BigQuery Python API 参考文档。
from google.cloud import bigquery
# Construct a BigQuery client object.
client = bigquery.Client()
# TODO(developer): Set dataset_id to the ID of the dataset to fetch.
# dataset_id = 'your-project.your_dataset'
dataset = client.get_dataset(dataset_id) # Make an API request.
dataset.default_table_expiration_ms = 24 * 60 * 60 * 1000 # In milliseconds.
dataset = client.update_dataset(
dataset, ["default_table_expiration_ms"]
) # Make an API request.
full_dataset_id = "{}.{}".format(dataset.project, dataset.dataset_id)
print(
"Updated dataset {} with new expiration {}".format(
full_dataset_id, dataset.default_table_expiration_ms
)
)