Actualizar propiedades de los conjuntos de datos

En este documento se describe cómo actualizar las propiedades de un conjunto de datos en BigQuery. Una vez que hayas creado un conjunto de datos, podrás actualizar las siguientes propiedades:

Antes de empezar

Concede roles de gestión de identidades y accesos (IAM) que proporcionen a los usuarios los permisos necesarios para realizar cada tarea de este documento.

Permisos obligatorios

Para actualizar las propiedades de un conjunto de datos, necesitas los siguientes permisos de gestión de identidades y accesos:

  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy (solo es necesario al actualizar los controles de acceso al conjunto de datos en la consola) Google Cloud

El rol de gestión de identidades y accesos predefinido roles/bigquery.dataOwner incluye los permisos que necesita para actualizar las propiedades del conjunto de datos.

Además, si tiene el permiso bigquery.datasets.create, puede actualizar las propiedades de los conjuntos de datos que cree.

Para obtener más información sobre los roles y permisos de IAM en BigQuery, consulta el artículo sobre funciones y permisos predefinidos.

Actualizar descripciones de conjuntos de datos

Puede actualizar la descripción de un conjunto de datos de las siguientes formas:

  • Con la Google Cloud consola.
  • Usando el comando bq update de la herramienta de línea de comandos bq.
  • Llamar al método de API datasets.patch.
  • Usar las bibliotecas de cliente.

Para actualizar la descripción de un conjunto de datos, sigue estos pasos:

Consola

  1. En el panel Explorador, expande tu proyecto y selecciona un conjunto de datos.

  2. Abre la opción Acciones y haz clic en Abrir.

  3. En el panel Detalles, haga clic en Editar detalles para modificar el texto de la descripción.

    En el cuadro de diálogo Editar detalle que aparece, haz lo siguiente:

    1. En el campo Descripción, escribe una descripción o edita la que ya haya.
    2. Para guardar el nuevo texto de descripción, haz clic en Guardar.

SQL

Para actualizar la descripción de un conjunto de datos, usa la instrucción ALTER SCHEMA SET OPTIONS para definir la opción description.

En el siguiente ejemplo se define la descripción de un conjunto de datos llamado mydataset:

  1. En la Google Cloud consola, ve a la página BigQuery.

    Ir a BigQuery

  2. En el editor de consultas, introduce la siguiente instrucción:

     ALTER SCHEMA mydataset
     SET OPTIONS (
         description = 'Description of mydataset');
     

  3. Haz clic en Ejecutar.

Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.

bq

Ejecuta el comando bq update con la marca --description. Si vas a actualizar un conjunto de datos en un proyecto que no sea el predeterminado, añade el ID del proyecto al nombre del conjunto de datos con el siguiente formato: project_id:dataset.

bq update \
--description "string" \
project_id:dataset

Haz los cambios siguientes:

  • string: el texto que describe el conjunto de datos, entre comillas
  • project_id: tu ID de proyecto
  • dataset: el nombre del conjunto de datos que quieres actualizar

Ejemplos:

Introduce el siguiente comando para cambiar la descripción de mydataset a "Descripción de mydataset". mydataset está en tu proyecto predeterminado.

bq update --description "Description of mydataset" mydataset

Introduce el siguiente comando para cambiar la descripción de mydataset a "Descripción de mydataset". El conjunto de datos está en myotherproject, no en tu proyecto predeterminado.

bq update \
--description "Description of mydataset" \
myotherproject:mydataset

API

Llama a datasets.patch y actualiza la propiedad description en el recurso de conjunto de datos. Como el método datasets.update sustituye todo el recurso del conjunto de datos, es preferible usar el método datasets.patch.

Go

Antes de probar este ejemplo, sigue las Goinstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Go de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.

import (
	"context"
	"fmt"

	"cloud.google.com/go/bigquery"
)

// updateDatasetDescription demonstrates how the Description metadata of a dataset can
// be read and modified.
func updateDatasetDescription(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{
		Description: "Updated Description.",
	}
	if _, err = ds.Update(ctx, update, meta.ETag); err != nil {
		return err
	}
	return nil
}

Java

Antes de probar este ejemplo, sigue las Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.

Crea una instancia de Dataset.Builder a partir de una instancia de Dataset con el método Dataset.toBuilder(). Configura el objeto de compilador de conjuntos de datos. Crea el conjunto de datos actualizado con el método Dataset.Builder.build() y llama al método Dataset.update() para enviar la actualización a la 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;

public class UpdateDatasetDescription {

  public static void runUpdateDatasetDescription() {
    // TODO(developer): Replace these variables before running the sample.
    String datasetName = "MY_DATASET_NAME";
    String newDescription = "this is the new dataset description";
    updateDatasetDescription(datasetName, newDescription);
  }

  public static void updateDatasetDescription(String datasetName, String newDescription) {
    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().setDescription(newDescription).build());
      System.out.println("Dataset description updated successfully to " + newDescription);
    } catch (BigQueryException e) {
      System.out.println("Dataset description was not updated \n" + e.toString());
    }
  }
}

Node.js

Antes de probar este ejemplo, sigue las Node.jsinstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.

// Import the Google Cloud client library
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();

async function updateDatasetDescription() {
  // Updates a dataset's description.

  // Retreive current dataset metadata
  const dataset = bigquery.dataset(datasetId);
  const [metadata] = await dataset.getMetadata();

  // Set new dataset description
  const description = 'New dataset description.';
  metadata.description = description;

  const [apiResponse] = await dataset.setMetadata(metadata);
  const newDescription = apiResponse.description;

  console.log(`${datasetId} description: ${newDescription}`);
}

Python

Antes de probar este ejemplo, sigue las Pythoninstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.

Configura la propiedad Dataset.description y llama a Client.update_dataset() para enviar la actualización a la 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.description = "Updated description."
dataset = client.update_dataset(dataset, ["description"])  # Make an API request.

full_dataset_id = "{}.{}".format(dataset.project, dataset.dataset_id)
print(
    "Updated dataset '{}' with description '{}'.".format(
        full_dataset_id, dataset.description
    )
)

Actualizar las horas de caducidad predeterminadas de las tablas

Puede actualizar la fecha de vencimiento predeterminada de las tablas de un conjunto de datos de las siguientes formas:

  • Con la Google Cloud consola.
  • Usando el comando bq update de la herramienta de línea de comandos bq.
  • Llamar al método de API datasets.patch.
  • Usar las bibliotecas de cliente.

Puedes definir una fecha de vencimiento predeterminada para las tablas a nivel de conjunto de datos o bien definir la fecha de vencimiento de una tabla cuando se cree. Si define la fecha de vencimiento al crear la tabla, se ignorará la fecha de vencimiento predeterminada del conjunto de datos. Si no defines una fecha de vencimiento predeterminada para las tablas a nivel del conjunto de datos ni al crear la tabla, esta nunca caducará y deberás eliminarla manualmente. Cuando una tabla caduca, se elimina junto con todos los datos que contiene.

Cuando actualizas el ajuste de vencimiento predeterminado de una tabla de un conjunto de datos, ocurre lo siguiente:

  • Si cambia el valor de Never a un tiempo de vencimiento definido, las tablas que ya existan en el conjunto de datos no caducarán a menos que se haya definido el tiempo de vencimiento en la tabla cuando se creó.
  • Si cambia el valor de vencimiento predeterminado de las tablas, las tablas que ya existan vencerán según el ajuste de vencimiento original. Las tablas que se creen en el conjunto de datos tendrán la nueva configuración de caducidad de la tabla, a menos que especifiques otra al crearla.

El valor de la caducidad predeterminada de la tabla se expresa de forma diferente en función de dónde se defina. Usa el método que te proporcione el nivel de granularidad adecuado:

  • En la consola Google Cloud , la caducidad se expresa en días.
  • En la herramienta de línea de comandos bq, la caducidad se expresa en segundos.
  • En la API, la caducidad se expresa en milisegundos.

Para actualizar el tiempo de vencimiento predeterminado de un conjunto de datos, sigue estos pasos:

Consola

  1. En el panel Explorador, expande tu proyecto y selecciona un conjunto de datos.

  2. Abre la opción Acciones y haz clic en Abrir.

  3. En el panel de detalles, haga clic en el icono de lápiz situado junto a Información del conjunto de datos para editar la fecha de vencimiento.

  4. En el cuadro de diálogo Información del conjunto de datos, en la sección Vencimiento predeterminado de la tabla, introduce un valor en Número de días después de la creación de la tabla.

  5. Haz clic en Guardar.

SQL

Para actualizar el tiempo de vencimiento predeterminado de las tablas, usa la declaración ALTER SCHEMA SET OPTIONS para definir la opción default_table_expiration_days.

En el siguiente ejemplo se actualiza el vencimiento predeterminado de una tabla de un conjunto de datos llamado mydataset.

  1. En la Google Cloud consola, ve a la página BigQuery.

    Ir a BigQuery

  2. En el editor de consultas, introduce la siguiente instrucción:

     ALTER SCHEMA mydataset
     SET OPTIONS(
         default_table_expiration_days = 3.75);
     

  3. Haz clic en Ejecutar.

Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.

bq

Para actualizar el tiempo de vencimiento predeterminado de las tablas recién creadas en un conjunto de datos, introduce el comando bq update con la marca --default_table_expiration. Si vas a actualizar un conjunto de datos en un proyecto que no sea el predeterminado, añade el ID del proyecto al nombre del conjunto de datos con el siguiente formato: project_id:dataset.

bq update \
--default_table_expiration integer \
project_id:dataset

Haz los cambios siguientes:

  • integer: el tiempo de vida predeterminado, en segundos, de las tablas recién creadas. El valor mínimo es de 3600 segundos (una hora). La hora de vencimiento se calcula como la hora UTC actual más el valor entero. Especifica 0 para eliminar la hora de vencimiento. Las tablas creadas en el conjunto de datos se eliminan integer segundos después de su creación. Este valor se aplica si no defines una caducidad de la tabla cuando se crea.
  • project_id: tu ID de proyecto.
  • dataset: el nombre del conjunto de datos que quieres actualizar.

Ejemplos:

Introduce el siguiente comando para definir el vencimiento predeterminado de las tablas nuevas creadas en mydataset en dos horas (7200 segundos) a partir de la hora actual. El conjunto de datos está en tu proyecto predeterminado.

bq update --default_table_expiration 7200 mydataset

Introduce el siguiente comando para definir el vencimiento predeterminado de las tablas nuevas creadas en mydataset en dos horas (7200 segundos) a partir de la hora actual. El conjunto de datos está en myotherproject, no en tu proyecto predeterminado.

bq update --default_table_expiration 7200 myotherproject:mydataset

API

Llama a datasets.patch y actualiza la propiedad defaultTableExpirationMs en el recurso de conjunto de datos. La caducidad se expresa en milisegundos en la API. Como el método datasets.update sustituye todo el recurso del conjunto de datos, es preferible usar el método datasets.patch.

Go

Antes de probar este ejemplo, sigue las Goinstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Go de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.

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

Antes de probar este ejemplo, sigue las Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.

Crea una instancia de Dataset.Builder a partir de una instancia de Dataset con el método Dataset.toBuilder(). Configura el objeto de compilador de conjuntos de datos. Crea el conjunto de datos actualizado con el método Dataset.Builder.build() y llama al método Dataset.update() para enviar la actualización a la API.

Configure el tiempo de vencimiento predeterminado con el método Dataset.Builder.setDefaultTableLifetime().

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 runUpdateDatasetExpiration() {
    // TODO(developer): Replace these variables before running the sample.
    String datasetName = "MY_DATASET_NAME";
    updateDatasetExpiration(datasetName);
  }

  public static void updateDatasetExpiration(String datasetName) {
    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();

      // Update dataset expiration to one day
      Long newExpiration = TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS);

      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

Antes de probar este ejemplo, sigue las Node.jsinstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.

// 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

Antes de probar este ejemplo, sigue las Pythoninstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.

Configura la propiedad Dataset.default_table_expiration_ms y llama a Client.update_dataset() para enviar la actualización a la 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
    )
)

Actualizar las horas de caducidad predeterminadas de las particiones

Puede actualizar la caducidad predeterminada de las particiones de un conjunto de datos de las siguientes formas:

  • Usando el comando bq update de la herramienta de línea de comandos bq.
  • Llamar al método de API datasets.patch.
  • Usar las bibliotecas de cliente.

Actualmente, la consola de Google Cloud no permite definir ni actualizar la caducidad predeterminada de las particiones de un conjunto de datos.

Puedes definir un tiempo de vencimiento de partición predeterminado a nivel de conjunto de datos que afecte a todas las tablas con particiones que se creen, o bien puedes definir un tiempo de vencimiento de partición para tablas concretas cuando se creen las tablas con particiones. Si define la fecha de vencimiento predeterminada de las particiones a nivel del conjunto de datos y la fecha de vencimiento predeterminada de las tablas a nivel del conjunto de datos, las nuevas tablas particionadas solo tendrán una fecha de vencimiento de las particiones. Si se definen ambas opciones, la caducidad de la partición predeterminada anula la caducidad de la tabla predeterminada.

Si define la hora de caducidad de la partición al crear la tabla particionada, ese valor anulará la hora de caducidad predeterminada de la partición a nivel de conjunto de datos, si existe.

Si no defines una fecha de vencimiento de partición predeterminada a nivel de conjunto de datos y no defines una fecha de vencimiento de partición al crear la tabla, las particiones nunca caducarán y deberás eliminarlas manualmente.

Cuando defines un vencimiento de partición predeterminado en un conjunto de datos, el vencimiento se aplica a todas las particiones de todas las tablas con particiones creadas en el conjunto de datos. Cuando defines la fecha de vencimiento de las particiones de una tabla, se aplica a todas las particiones creadas en esa tabla. Actualmente, no puedes aplicar diferentes tiempos de vencimiento a diferentes particiones de la misma tabla.

Cuando actualizas el ajuste de caducidad predeterminado de las particiones de un conjunto de datos, ocurre lo siguiente:

  • Si cambia el valor de never a un tiempo de vencimiento definido, las particiones que ya existan en las tablas particionadas del conjunto de datos no caducarán a menos que se haya definido el tiempo de vencimiento de la partición en la tabla cuando se creó.
  • Si cambia el valor del vencimiento de la partición predeterminada, las particiones de las tablas ya creadas vencerán según el vencimiento de la partición predeterminada original. Las tablas con particiones que se creen en el conjunto de datos tendrán aplicada la nueva configuración predeterminada de caducidad de particiones, a menos que especifiques otra caducidad de particiones en la tabla cuando se cree.

El valor de la caducidad de la partición predeterminada se expresa de forma diferente en función de dónde se defina el valor. Usa el método que te proporcione el nivel de granularidad adecuado:

  • En la herramienta de línea de comandos bq, la caducidad se expresa en segundos.
  • En la API, la caducidad se expresa en milisegundos.

Para actualizar el tiempo de vencimiento predeterminado de las particiones de un conjunto de datos, sigue estos pasos:

Consola

Actualmente, no se puede actualizar la caducidad predeterminada de las particiones de un conjunto de datos en la consola Google Cloud .

SQL

Para actualizar el tiempo de vencimiento de la partición predeterminada, usa la ALTER SCHEMA SET OPTIONS declaración para definir la opción default_partition_expiration_days.

En el siguiente ejemplo se actualiza la caducidad predeterminada de las particiones de un conjunto de datos llamado mydataset:

  1. En la Google Cloud consola, ve a la página BigQuery.

    Ir a BigQuery

  2. En el editor de consultas, introduce la siguiente instrucción:

     ALTER SCHEMA mydataset
     SET OPTIONS(
         default_partition_expiration_days = 3.75);
     

  3. Haz clic en Ejecutar.

Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.

bq

Para actualizar el tiempo de vencimiento predeterminado de un conjunto de datos, introduce el comando bq update con la marca --default_partition_expiration. Si vas a actualizar un conjunto de datos de un proyecto que no sea el predeterminado, añade el ID del proyecto al nombre del conjunto de datos con el siguiente formato: project_id:dataset.

bq update \
--default_partition_expiration integer \
project_id:dataset

Haz los cambios siguientes:

  • integer: el tiempo de vida predeterminado, en segundos, de las particiones de las tablas particionadas recién creadas. Esta marca no tiene ningún valor mínimo. Especifica 0 para eliminar la hora de vencimiento. Las particiones de las tablas con particiones recién creadas se eliminan integer segundos después de la fecha UTC de la partición. Este valor se aplica si no defines una caducidad de la partición en la tabla cuando se crea.
  • project_id: tu ID de proyecto.
  • dataset: el nombre del conjunto de datos que quieres actualizar.

Ejemplos:

Introduce el siguiente comando para definir la caducidad de partición predeterminada de las nuevas tablas con particiones creadas en mydataset en 26 horas (93.600 segundos). El conjunto de datos está en tu proyecto predeterminado.

bq update --default_partition_expiration 93600 mydataset

Introduce el siguiente comando para definir la caducidad de partición predeterminada de las nuevas tablas con particiones creadas en mydataset en 26 horas (93.600 segundos). El conjunto de datos está en myotherproject, no en tu proyecto predeterminado.

bq update --default_partition_expiration 93600 myotherproject:mydataset

API

Llama a datasets.patch y actualiza la propiedad defaultPartitionExpirationMs en el recurso de conjunto de datos. La caducidad se expresa en milisegundos. Como el método datasets.update sustituye a todo el recurso del conjunto de datos, es preferible usar el método datasets.patch.

Actualizar el modo de redondeo

Puede actualizar el modo de redondeo predeterminado de un conjunto de datos con la declaración de DDL ALTER SCHEMA SET OPTIONS. En el siguiente ejemplo se actualiza el modo de redondeo predeterminado de mydataset a ROUND_HALF_EVEN.

ALTER SCHEMA mydataset
SET OPTIONS (
  default_rounding_mode = "ROUND_HALF_EVEN");

De esta forma, se define el modo de redondeo predeterminado de las tablas que se creen en el conjunto de datos. No afecta a las columnas nuevas que se añadan a las tablas. Si se define el modo de redondeo predeterminado en una tabla del conjunto de datos, se anula esta opción.

Actualizar los periodos de viaje en el tiempo

Puede actualizar el periodo de viaje en el tiempo de un conjunto de datos de las siguientes formas:

  • Con la Google Cloud consola.
  • Usando la instrucción ALTER SCHEMA SET OPTIONS.
  • Usar el comando bq update de la herramienta de línea de comandos bq.
  • Llamar al método de API datasets.patch o datasets.update. El método update sustituye todo el recurso del conjunto de datos, mientras que el método patch solo sustituye los campos que se proporcionan en el recurso del conjunto de datos enviado.

Para obtener más información sobre la ventana de retroceso en el tiempo, consulta el artículo Configurar la ventana de retroceso en el tiempo.

Para actualizar el periodo de retroceso de un conjunto de datos, sigue estos pasos:

Consola

  1. En el panel Explorador, expande tu proyecto y selecciona un conjunto de datos.
  2. Abre la opción Acciones y haz clic en Abrir.
  3. En el panel Detalles, haga clic en Editar detalles.
  4. Despliega Opciones avanzadas y selecciona el Periodo de viaje en el tiempo que quieras usar.
  5. Haz clic en Guardar.

SQL

Usa la instrucción ALTER SCHEMA SET OPTIONS con la opción max_time_travel_hours para especificar el periodo de tiempo en el que se puede viajar al pasado al modificar un conjunto de datos. El valor de max_time_travel_hours debe ser un número entero expresado en múltiplos de 24 (48, 72, 96, 120, 144 y 168) entre 48 (2 días) y 168 (7 días).

  1. En la Google Cloud consola, ve a la página BigQuery.

    Ir a BigQuery

  2. En el editor de consultas, introduce la siguiente instrucción:

    ALTER SCHEMA DATASET_NAME
    SET OPTIONS(
      max_time_travel_hours = HOURS);

    Haz los cambios siguientes:

    • DATASET_NAME: el nombre del conjunto de datos que quieres actualizar
    • HOURS con la duración del periodo de viaje en el tiempo en horas.

  3. Haz clic en Ejecutar.

Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.

bq

Usa el comando bq update con la marca --max_time_travel_hours para especificar el periodo de viaje en el tiempo al modificar un conjunto de datos. El valor de --max_time_travel_hours debe ser un número entero expresado en múltiplos de 24 (48, 72, 96, 120, 144 y 168) entre 48 (2 días) y 168 (7 días).

bq update \
--dataset=true --max_time_travel_hours=HOURS \
PROJECT_ID:DATASET_NAME

Haz los cambios siguientes:

  • PROJECT_ID: tu ID de proyecto
  • DATASET_NAME: el nombre del conjunto de datos que vas a actualizar
  • HOURS con la duración de la ventana de viaje en el tiempo en horas

API

Llama al método datasets.patch o datasets.update con un recurso de conjunto de datos definido en el que hayas especificado un valor para el campo maxTimeTravelHours. El valor de maxTimeTravelHours debe ser un número entero expresado en múltiplos de 24 (48, 72, 96, 120, 144 y 168) entre 48 (2 días) y 168 (7 días).

Actualizar los modelos de facturación del almacenamiento

Puedes cambiar el modelo de facturación del almacenamiento de un conjunto de datos. Define el valor storage_billing_model como PHYSICAL para usar bytes físicos al calcular los cambios en el almacenamiento o como LOGICAL para usar bytes lógicos. LOGICAL es el valor predeterminado.

Cuando cambias el modelo de facturación de un conjunto de datos, el cambio tarda 24 horas en aplicarse.

Una vez que cambies el modelo de facturación del almacenamiento de un conjunto de datos, deberás esperar 14 días para volver a cambiarlo.

Consola

  1. En el panel Explorador, expande tu proyecto y selecciona un conjunto de datos.
  2. Abre la opción Acciones y haz clic en Abrir.
  3. En el panel Detalles, haga clic en Editar detalles.
  4. Despliega Opciones avanzadas y selecciona Habilitar modelo de facturación de almacenamiento físico para usar la facturación de almacenamiento físico o desactívalo para usar la facturación de almacenamiento lógico.
  5. Haz clic en Guardar.

SQL

Para actualizar el modelo de facturación de un conjunto de datos, usa la sentencia ALTER SCHEMA SET OPTIONS y define la opción storage_billing_model:

  1. En la Google Cloud consola, ve a la página BigQuery.

    Ir a BigQuery

  2. En el editor de consultas, introduce la siguiente instrucción:

    ALTER SCHEMA DATASET_NAME
    SET OPTIONS(
     storage_billing_model = 'BILLING_MODEL');

    Haz los cambios siguientes:

    • DATASET_NAME por el nombre del conjunto de datos que vas a cambiar
    • BILLING_MODEL con el tipo de almacenamiento que quieras usar: LOGICAL o PHYSICAL.

  3. Haz clic en Ejecutar.

Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.

Para actualizar el modelo de facturación del almacenamiento de todos los conjuntos de datos de un proyecto, usa la siguiente consulta SQL en cada región en la que se encuentren los conjuntos de datos:

FOR record IN
 (SELECT CONCAT(catalog_name, '.', schema_name) AS dataset_path
 FROM PROJECT_ID.region-REGION.INFORMATION_SCHEMA.SCHEMATA)
DO
 EXECUTE IMMEDIATE
   "ALTER SCHEMA `" || record.dataset_path || "` SET OPTIONS(storage_billing_model = 'BILLING_MODEL')";
END FOR;

Haz los cambios siguientes:

  • PROJECT_ID con el ID de tu proyecto
  • REGION con un calificador de región
  • BILLING_MODEL con el tipo de almacenamiento que quieras usar: LOGICAL o PHYSICAL.

bq

Para actualizar el modelo de facturación de un conjunto de datos, usa el comando bq update y define la marca --storage_billing_model:

bq update -d --storage_billing_model=BILLING_MODEL PROJECT_ID:DATASET_NAME

Haz los cambios siguientes:

  • PROJECT_ID: tu ID de proyecto
  • DATASET_NAME: el nombre del conjunto de datos que vas a actualizar
  • BILLING_MODEL: el tipo de almacenamiento que quieres usar, LOGICAL o PHYSICAL

API

Llama al método datasets.update con un recurso de conjunto de datos definido en el que se haya definido el campo storageBillingModel.

En el siguiente ejemplo se muestra cómo llamar a datasets.update mediante curl:

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -L -X PUT https://bigquery.googleapis.com/bigquery/v2/projects/PROJECT_ID/datasets/DATASET_ID -d '{"datasetReference": {"projectId": "PROJECT_ID", "datasetId": "DATASET_NAME"}, "storageBillingModel": "BILLING_MODEL"}'

Haz los cambios siguientes:

  • PROJECT_ID: tu ID de proyecto
  • DATASET_NAME: el nombre del conjunto de datos que vas a actualizar
  • BILLING_MODEL: el tipo de almacenamiento que quieres usar, LOGICAL o PHYSICAL

Actualizar controles de acceso

Para controlar el acceso a los conjuntos de datos en BigQuery, consulta el artículo Controlar el acceso a los conjuntos de datos. Para obtener información sobre el cifrado de datos, consulta el artículo Cifrado en reposo.

Siguientes pasos