Cómo actualizar conjuntos de datos

Este documento describe cómo actualizar las propiedades del conjunto de datos en BigQuery. Después de crear un conjunto de datos, puedes actualizar las siguientes propiedades del conjunto de datos:

Permisos necesarios

Para actualizar las propiedades de un conjunto de datos, debes tener acceso de OWNER a nivel de conjunto de datos o tener asignada una función de IAM a nivel de proyecto que incluya permisos de bigquery.datasets.update. Las siguientes funciones de IAM a nivel de proyecto predefinidas incluyen los permisos bigquery.datasets.update:

Además, debido a que la función bigquery.user tiene los permisos bigquery.datasets.create, un usuario asignado a la función bigquery.user puede actualizar cualquier conjunto de datos que cree el usuario. Cuando un usuario asignado a la función bigquery.user crea un conjunto de datos, se le otorga acceso de OWNER al conjunto de datos. El acceso de OWNER a un conjunto de datos permite al usuario un control total sobre este.

Para obtener más información sobre las funciones de IAM y los permisos en BigQuery, consulta Control de acceso. Para obtener más información sobre las funciones a nivel de conjunto de datos, consulta Funciones básicas para conjuntos de datos.

Cómo actualizar las descripciones de los conjuntos de datos

A fin de actualizar la descripción de un conjunto de datos, puedes usar la IU web de BigQuery, el comando bq update de CLI o el método datasets.patch de la API.

Para actualizar la descripción de un conjunto de datos, haz lo siguiente:

IU clásica

  1. Selecciona tu conjunto de datos en el panel de navegación.

  2. En la página Dataset Details (Detalles del conjunto de datos), en la sección Description (Descripción), haz clic en Describe this dataset (Describir este conjunto de datos) para abrir la casilla de descripción si el conjunto de datos no tiene descripción. De lo contrario, haz clic en el texto de descripción existente.

  3. Ingresa una descripción en la casilla o edita la descripción existente. Cuando sales del cuadro, el texto se guarda.

    Descripción del conjunto de datos

Línea de comandos

Ejecuta el comando bq update con la marca --description. Si actualizas un conjunto de datos en un proyecto que no es el predeterminado, agrega el ID del proyecto al nombre del conjunto de datos con el siguiente formato: [PROJECT_ID]:[DATASET].

bq update --description "[DESCRIPTION]" [PROJECT_ID]:[DATASET]

Donde:

  • [DESCRIPTION] es el texto que describe el conjunto de datos entre comillas.
  • [PROJECT_ID] es el ID de tu proyecto.
  • [DATASET] es el nombre del conjunto de datos que vas a actualizar.

Ejemplos:

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

bq update --description "Description of mydataset" mydataset

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

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

API

Llama datasets.patch y utiliza la propiedad description para aplicar la descripción de tu conjunto de datos. Debido a que el método datasets.update reemplaza a todo el recurso de conjunto de datos, se prefiere el método datasets.patch.

Go

Antes de probar esta muestra, sigue las instrucciones de configuración para Go de la Guía de inicio rápido de BigQuery con bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Go.

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
}

Java

Antes de probar esta muestra, sigue las instrucciones de configuración para Java de la Guía de inicio rápido de BigQuery con bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.

Crea una instancia Dataset.Builder a partir de una instancia Dataset existente con el método Dataset.toBuilder(). Configura el objeto compilador de datos. Compila 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.
Dataset oldDataset = bigquery.getDataset(datasetName);
DatasetInfo datasetInfo = oldDataset.toBuilder().setDescription(newDescription).build();
Dataset newDataset = bigquery.update(datasetInfo);

Python

Antes de probar esta muestra, sigue las instrucciones de configuración para Python que se encuentran en la Guía de inicio rápido de BigQuery con bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Python.

Configura la propiedad Dataset.description y llama a Client.update_dataset() para enviar la actualización a la API.

# from google.cloud import bigquery
# client = bigquery.Client()
# dataset_ref = client.dataset('my_dataset')
# dataset = client.get_dataset(dataset_ref)  # API request

assert dataset.description == 'Original description.'
dataset.description = 'Updated description.'

dataset = client.update_dataset(dataset, ['description'])  # API request

assert dataset.description == 'Updated description.'

Cómo actualizar los tiempos de caducidad predeterminados de la tabla

Para actualizar el tiempo de caducidad predeterminado de un conjunto de datos, usa la IU web de BigQuery, el comando bq update de CLI o el método datasets.patch de la API.

Puedes configurar un tiempo de caducidad predeterminado de la tabla a nivel de conjunto de datos o puedes establecer el tiempo de caducidad cuando se crea la tabla. Si configuras la caducidad cuando creas la tabla, se ignora la caducidad predeterminada de la tabla del conjunto de datos. Si no configuras una caducidad predeterminada para la tabla a nivel de conjunto de datos ni una caducidad para la tabla cuando la creas, la tabla nunca caducará y deberás borrarla de forma manual.

Ten en cuenta lo siguiente cuando actualizas la configuración predeterminada de caducidad de la tabla de un conjunto de datos:

  • Si cambias el valor de Never a un tiempo de caducidad definido, cualquier tabla que ya exista en el conjunto de datos no caducará a menos que se haya configurado el tiempo de caducidad en la tabla cuando se creó.
  • Si cambias el valor de la caducidad predeterminada de la tabla, cualquier tabla que ya exista caducará según la configuración de caducidad de la tabla original. A todas las tablas nuevas creadas en el conjunto de datos se les aplica la nueva configuración de caducidad de la tabla, a menos que especifiques una caducidad diferente en la tabla cuando la creas.

El valor para la caducidad predeterminada de la tabla se expresa de manera diferente según dónde se configure el valor. Usa el método que te dé el nivel apropiado de detalle:

  • En la IU web de BigQuery, la caducidad se expresa en días.
  • En la herramienta de línea de comandos, la caducidad se expresa en segundos.
  • En la API, la caducidad se expresa en milisegundos.

Para actualizar el tiempo de caducidad predeterminado para un conjunto de datos, haz lo siguiente:

IU clásica

Para actualizar el tiempo de caducidad predeterminado con la IU web, haz lo siguiente:

  1. Selecciona tu conjunto de datos en el panel de navegación.

  2. En la página Dataset Details (Detalles del conjunto de datos), en la sección Description (Descripción) a la derecha de Default Table Expiration (Caducidad predeterminada de la tabla), haz clic en Edit (Editar).

    Vencimiento de la tabla

  3. En el diálogo Update Expiration (Actualizar caducidad), para Data expiration (Caducidad de los datos), haz clic en In (En) y luego ingresa el tiempo de caducidad en días. El valor predeterminado es Never (Nunca).

Línea de comandos

Para actualizar el tiempo de caducidad predeterminado para las tablas recién creadas en un conjunto de datos, ingresa el comando bq update con la marca --default_table_expiration. Si actualizas un conjunto de datos en un proyecto que no es el predeterminado, agrega 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]

Donde:

  • [INTEGER] es el tiempo de vida predeterminado (en segundos) para las tablas recién creadas. El valor mínimo es 3,600 segundos (una hora). El tiempo de caducidad se evalúa según el tiempo actual más el valor del número entero. Especifica 0 para eliminar el tiempo de caducidad existente. Cualquier tabla creada en el conjunto de datos se borra después de [INTEGER] segundos a partir de su hora de creación. Este valor se aplica si no configuras una caducidad en la tabla cuando la creas.
  • [PROJECT_ID] es el ID de tu proyecto.
  • [DATASET] es el nombre del conjunto de datos que vas a actualizar.

Ejemplos:

Ingresa el siguiente comando para configurar la caducidad predeterminada de la tabla para las tablas nuevas creadas en mydataset a dos horas (7,200 segundos) a partir de la hora actual. El conjunto de datos se encuentra en tu proyecto predeterminado.

bq update --default_table_expiration 7200 mydataset

Ingresa el siguiente comando para configurar la caducidad predeterminada de la tabla para las tablas nuevas creadas en mydataset a dos horas (7,200 segundos) a partir de la hora actual. El conjunto de datos se encuentra en myotherproject, no en tu proyecto predeterminado.

bq update --default_table_expiration 7200 myotherproject:mydataset

API

Llama a datasets.patch y utiliza la propiedad defaultTableExpirationMs para aplicar la caducidad predeterminada de la tabla en milisegundos. Debido a que el método datasets.update reemplaza a todo el recurso de conjunto de datos, se prefiere el método datasets.patch.

Go

Antes de probar esta muestra, sigue las instrucciones de configuración para Go de la Guía de inicio rápido de BigQuery con bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Go.

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
}

Java

Antes de probar esta muestra, sigue las instrucciones de configuración para Java de la Guía de inicio rápido de BigQuery con bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.

Crea una instancia Dataset.Builder a partir de una instancia Dataset existente con el método Dataset.toBuilder(). Configura el objeto compilador de datos. Compila 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.

Configura el tiempo de caducidad con el método Dataset.Builder.setDefaultTableLifetime().

Long beforeExpiration = dataset.getDefaultTableLifetime();

Long oneDayMilliseconds = 24 * 60 * 60 * 1000L;
DatasetInfo.Builder builder = dataset.toBuilder();
builder.setDefaultTableLifetime(oneDayMilliseconds);
bigquery.update(builder.build());  // API request.

Python

Antes de probar esta muestra, sigue las instrucciones de configuración para Python que se encuentran en la Guía de inicio rápido de BigQuery con bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Python.

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
# client = bigquery.Client()
# dataset_ref = client.dataset('my_dataset')
# dataset = client.get_dataset(dataset_ref)  # API request

assert dataset.default_table_expiration_ms is None
one_day_ms = 24 * 60 * 60 * 1000  # in milliseconds
dataset.default_table_expiration_ms = one_day_ms

dataset = client.update_dataset(
    dataset, ['default_table_expiration_ms'])  # API request

assert dataset.default_table_expiration_ms == one_day_ms

Cómo actualizar los tiempos de caducidad predeterminados de la partición

Para actualizar la caducidad predeterminada de una partición, usa el comando bq update de CLI o el método datasets.patch de la API. Actualmente, la IU web de BigQuery no admite la configuración o actualización de la caducidad predeterminada de la partición.

Puedes configurar un tiempo de caducidad predeterminado de la partición a nivel de conjunto de datos que se aplique a todas las tablas particionadas, o puedes configurar un tiempo de caducidad de la partición para tablas individuales cuando se crean las tablas particionadas. Si configuras la caducidad predeterminada de la partición a nivel de conjunto de datos y configuras la caducidad predeterminada de la tabla a nivel de conjunto de datos, las nuevas tablas particionadas solo tendrán una caducidad de partición. Si se configuran ambas opciones, la caducidad predeterminada de la partición anula la caducidad predeterminada de la tabla.

Si configuras el tiempo de caducidad de la partición cuando se crea la tabla particionada, ese valor anula la caducidad predeterminada de la partición a nivel de conjunto de datos, si existe.

Si no configuras una caducidad predeterminada para la partición a nivel de conjunto de datos ni una caducidad para la partición cuando creas la tabla, las particiones nunca caducarán y deberás borrarlas de forma manual.

Cuando configuras una caducidad predeterminada para la partición en un conjunto de datos, la caducidad se aplica a todas las particiones en todas las tablas particionadas creadas en el conjunto de datos. Cuando configuras la caducidad de la partición en una tabla, la caducidad se aplica a todas las particiones creadas en la tabla especificada. Actualmente, no puedes aplicar diferentes tiempos de caducidad a distintas particiones en la misma tabla.

Ten en cuenta lo siguiente cuando actualizas la configuración predeterminada de caducidad de la partición de un conjunto de datos:

  • Si cambias el valor de "never" a un tiempo de caducidad definido, cualquier partición que ya exista en las tablas particionadas del conjunto de datos no caducará a menos que se haya configurado el tiempo de caducidad de la partición en la tabla cuando se creó.
  • Si cambias el valor para la caducidad predeterminada de la partición, cualquier partición en las tablas particionadas existentes caducará según la caducidad predeterminada de la partición original. Todas las tablas particionadas nuevas creadas en el conjunto de datos tienen la configuración de caducidad nueva de la partición, a menos que especifiques una caducidad diferente para la partición en la tabla cuando la creas.

El valor para la caducidad predeterminada de la partición se expresa de manera diferente dependiendo de dónde se configura el valor. Usa el método que te dé el nivel apropiado de detalle:

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

Para actualizar el tiempo de caducidad predeterminado de una partición en un conjunto de datos, haz lo siguiente:

IU clásica

Actualmente, la IU web de BigQuery no admite la actualización de la caducidad predeterminada de la partición de un conjunto de datos.

Línea de comandos

Para actualizar el tiempo de caducidad predeterminado para un conjunto de datos, ingresa el comando bq update con la marca --default_partition_expiration. Si actualizas un conjunto de datos en un proyecto que no es el predeterminado, agrega 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]

Donde:

  • [INTEGER] es el tiempo de vida predeterminado (en segundos) para las particiones en tablas particionadas recién creadas. Esta marca no tiene valor mínimo. Especifica 0 para eliminar el tiempo de caducidad existente. Todas las particiones en las tablas particionadas recién creadas se eliminan después de [INTEGER] segundos a partir de la fecha de la partición. Este valor se aplica si no configuras una caducidad para la partición en la tabla cuando la creas.
  • [PROJECT_ID] es el ID de tu proyecto.
  • [DATASET] es el nombre del conjunto de datos que vas a actualizar.

Ejemplos:

Ingresa el siguiente comando para configurar la caducidad predeterminada de la partición para las tablas particionadas nuevas creadas en mydataset en 26 horas (93,600 segundos). El conjunto de datos se encuentra en tu proyecto predeterminado.

bq update --default_partition_expiration 93600 mydataset

Ingresa el siguiente comando para configurar la caducidad predeterminada de la partición para las tablas particionadas nuevas creadas en mydataset en 26 horas (93,600 segundos). El conjunto de datos se encuentra en myotherproject, no en tu proyecto predeterminado.

bq update --default_partition_expiration 7200 myotherproject:mydataset

API

Llama a datasets.patch y utiliza la propiedad defaultPartitionExpirationMs para aplicar la caducidad predeterminada de la partición en milisegundos. Debido a que el método datasets.update reemplaza a todo el recurso de conjunto de datos, se prefiere el método datasets.patch.

Cómo actualizar los controles de acceso al conjunto de datos

El proceso para actualizar los controles de acceso a un conjunto de datos es muy similar al proceso para asignar controles de acceso a un conjunto de datos. Los controles de acceso no se pueden aplicar durante la creación del conjunto de datos mediante la IU web de BigQuery o la herramienta de línea de comandos. Primero debes crear el conjunto de datos y luego actualizar los controles de acceso de este. La API le permite actualizar los controles de acceso al conjunto de datos mediante una llamada al método datasets.patch.

Cuando actualizas los controles de acceso en un conjunto de datos, puedes modificar el acceso para los siguientes usuarios y grupos:

  • Usuario por correo electrónico: otorga a una Cuenta de Google individual acceso al conjunto de datos
  • Grupo por correo electrónico: otorga a todos los miembros de un grupo de Google acceso al conjunto de datos
  • Dominio: otorga a todos los usuarios y grupos en un dominio de Google acceso al conjunto de datos
  • Todos los usuarios autenticados: otorga a todos los titulares de la Cuenta de Google acceso al conjunto de datos (hace que el conjunto de datos sea público)
  • Propietarios del proyecto: otorga a todos los propietarios del proyecto acceso al conjunto de datos
  • Lectores del proyecto: otorga a todos los lectores del proyecto acceso al conjunto de datos
  • Editores del proyecto: otorga a todos los editores del proyecto acceso al conjunto de datos
  • Vista autorizada: otorga una vista de acceso al conjunto de datos

Para actualizar los controles de acceso en un conjunto de datos, haz lo siguiente:

IU clásica

  1. Haz clic en la flecha desplegable a la derecha del conjunto de datos y elige Compartir conjunto de datos.

  2. Para modificar las entradas existente en el cuadro de diálogo Compartir conjunto de datos, haz lo siguiente:

    • Elimina las entradas existentes haciendo clic en el ícono X a la derecha del usuario, grupo o cuenta de servicio.
    • Cambia los permisos para un usuario, grupo o cuenta de servicio haciendo clic en el botón de permisos y seleccionando el nivel de acceso correspondiente: Is owner (OWNER), Can edit (WRITER) o Can view (READER). Para obtener más información sobre las funciones a nivel de conjunto de datos, consulta Funciones básicas para conjuntos de datos.
  3. Para agregar entradas nuevas en el diálogo Compartir conjunto de datos, haz lo siguiente:

    1. Haz clic en el menú desplegable a la izquierda del campo Agregar personas y selecciona la opción correspondiente.

    2. Escribe un valor en el cuadro de texto. Por ejemplo, si seleccionaste Usuario por correo electrónico, escribe la dirección de correo electrónico del usuario.

    3. A la derecha del campo Add People (Agregar personas), haz clic en Can view (Puede ver) y selecciona la función correspondiente de la lista.

      Agregar personas a un conjunto de datos

    4. Haz clic en Add (Agregar).

  4. Cuando hayas terminado de agregar, eliminar o modificar tus controles de acceso, haz clic en Guardar cambios.

  5. Verifica tus controles de acceso haciendo clic en la flecha desplegable a la derecha del conjunto de datos y seleccionando Compartir conjunto de datos. Puedes confirmar la configuración en el cuadro de diálogo Compartir conjunto de datos.

Línea de comandos

  1. Escribe la información del conjunto de datos existente (incluidos los controles de acceso) a un archivo JSON con el comando show. Si el conjunto de datos se encuentra en otro proyecto que no sea el predeterminado, agrega el ID del proyecto al nombre del conjunto de datos en el siguiente formato: [PROJECT_ID]:[DATASET].

    bq show --format=prettyjson [PROJECT_ID]:[DATASET] > [PATH_TO_FILE]
    

    Donde:

    • [PROJECT_ID] es el ID de tu proyecto.
    • [DATASET] es el nombre de tu conjunto de datos.
    • [PATH_TO_FILE] es la ruta al archivo JSON en tu máquina local.

      Ejemplos:

      Ingresa el siguiente comando para escribir los controles de acceso para mydataset a un archivo JSON. mydataset se encuentra en tu proyecto predeterminado.

      bq show --format=prettyjson mydataset > /tmp/mydataset.json

      Ingresa el siguiente comando para escribir los controles de acceso para mydataset a un archivo JSON. mydataset se encuentra en myotherproject.

      bq show --format=prettyjson myotherproject:mydataset > /tmp/mydataset.json

  2. Realiza los cambios a la sección "access" del archivo JSON. Puedes agregar o eliminar cualquiera de las entradas specialGroup: projectOwners, projectWriters, projectReaders y allAuthenticatedUsers. También puedes agregar, quitar o modificar cualquiera de los siguientes: userByEmail, groupByEmail y domain.

    Por ejemplo, la sección de acceso del archivo JSON de un conjunto de datos se vería de la siguiente manera:

    {
     "access": [
      {
       "role": "READER",
       "specialGroup": "projectReaders"
      },
      {
       "role": "WRITER",
       "specialGroup": "projectWriters"
      },
      {
       "role": "OWNER",
       "specialGroup": "projectOwners"
      }
      {
       "role": "READER",
       "specialGroup": "allAuthenticatedUsers"
      }
      {
       "role": "READER",
       "domain": "[DOMAIN_NAME]"
      }
      {
       "role": "WRITER",
       "userByEmail": "[USER_EMAIL]"
      }
      {
       "role": "READER",
       "groupByEmail": "[GROUP_EMAIL]"
      }
     ],
    }
    

  3. Cuando tus ediciones estén completas, usa el comando update y también incluye el archivo JSON con la marca --source. Si el conjunto de datos se encuentra en otro proyecto que no sea el predeterminado, agrega el ID del proyecto al nombre del conjunto de datos en el siguiente formato: [PROJECT_ID]:[DATASET].

    bq update --source [PATH_TO_FILE] [PROJECT_ID]:[DATASET]
    

    Donde:

    • [PATH_TO_FILE] es la ruta al archivo JSON en tu máquina local.
    • [PROJECT_ID] es el ID de tu proyecto.
    • [DATASET] es el nombre de tu conjunto de datos.

      Ejemplos:

      Ingresa el siguiente comando para actualizar los controles de acceso para mydataset. mydataset se encuentra en tu proyecto predeterminado.

      bq update --source /tmp/mydataset.json mydataset

      Ingresa el siguiente comando para actualizar los controles de acceso para mydataset. mydataset se encuentra en myotherproject.

      bq update --source /tmp/mydataset.json myotherproject:mydataset

  4. Para verificar los cambios del control de acceso, ingresa otra vez el comando show sin escribir la información a un archivo.

    bq show --format=prettyjson [DATASET]

    o

    bq show --format=prettyjson [PROJECT_ID]:[DATASET]

API

Llama al datasets.patch y usa la propiedad access para actualizar tus controles de acceso. Para obtener más información, consulta Conjuntos de datos.

Debido a que el método datasets.update reemplaza todo el recurso de conjunto de datos, datasets.patch es el método preferible para actualizar los controles de acceso.

Go

Antes de probar esta muestra, sigue las instrucciones de configuración para Go de la Guía de inicio rápido de BigQuery con bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Go.

ds := client.Dataset(datasetID)
meta, err := ds.Metadata(ctx)
if err != nil {
	return err
}
// Append a new access control entry to the existing access list.
update := bigquery.DatasetMetadataToUpdate{
	Access: append(meta.Access, &bigquery.AccessEntry{
		Role:       bigquery.ReaderRole,
		EntityType: bigquery.UserEmailEntity,
		Entity:     "sample.bigquery.dev@gmail.com"},
	),
}

// Leverage the ETag for the update to assert there's been no modifications to the
// dataset since the metadata was originally read.
if _, err := ds.Update(ctx, update, meta.ETag); err != nil {
	return err
}

Java

Antes de probar esta muestra, sigue las instrucciones de configuración para Java de la Guía de inicio rápido de BigQuery con bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.

Crea una instancia Dataset.Builder a partir de una instancia Dataset existente con el método Dataset.toBuilder(). Configura el objeto compilador de datos. Compila 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.

Configura los controles de acceso con el método Dataset.Builder.setAcl().

List<Acl> beforeAcls = dataset.getAcl();

// Make a copy of the ACLs so that they can be modified.
ArrayList<Acl> acls = new ArrayList<>(beforeAcls);
acls.add(Acl.of(new Acl.User("sample.bigquery.dev@gmail.com"), Acl.Role.READER));
DatasetInfo.Builder builder = dataset.toBuilder();
builder.setAcl(acls);

bigquery.update(builder.build());  // API request.

Python

Antes de probar esta muestra, sigue las instrucciones de configuración para Python que se encuentran en la Guía de inicio rápido de BigQuery con bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Python.

Configura la propiedad dataset.access_entries con los controles de acceso para un conjunto de datos. Luego llama a la función client.update_dataset() para actualizar la propiedad.

# from google.cloud import bigquery
# client = bigquery.Client()
# dataset = client.get_dataset(client.dataset('my_dataset'))

entry = bigquery.AccessEntry(
    role='READER',
    entity_type='userByEmail',
    entity_id='sample.bigquery.dev@gmail.com')
assert entry not in dataset.access_entries
entries = list(dataset.access_entries)
entries.append(entry)
dataset.access_entries = entries

dataset = client.update_dataset(dataset, ['access_entries'])  # API request

assert entry in dataset.access_entries

Próximos pasos

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Si necesitas ayuda, visita nuestra página de asistencia.