Cómo actualizar datos de tablas con el lenguaje de manipulación de datos

En esta página, se ofrece información sobre cómo actualizar y borrar datos en las tablas de BigQuery mediante DML. En esta página, no se explica cómo agregar filas a tablas existentes con DML. Si deseas obtener información sobre cómo agregar filas con DML, consulta la sección sobre la declaración INSERT en la referencia de sintaxis de DML.

Ten en cuenta que el uso de DML en BigQuery tiene algunas limitaciones y problemas conocidos. DML también cuenta con sus propias cuotas y precios.

Cómo actualizar los datos

Sigue las instrucciones que aparecen a continuación y usa este archivo de muestra, que representa una tabla con una columna de direcciones IP que te gustaría enmascarar para su anonimización.

En los siguientes pasos, se cargan los datos de muestra en una tabla y se actualizan los valores en la columna de ip_address:

Paso 1. Carga el archivo JSON en una tabla UserSessions.

Paso 2. Para enmascarar el último octeto en la columna ip_address de cada fila, ejecuta la siguiente consulta de DML.

#standardSQL
UPDATE sample_db.UserSessions
SET ip_address = REGEXP_REPLACE(ip_address, r"(\.[0-9]+)$", ".0")
WHERE TRUE

Cómo borrar datos

Sigue las instrucciones que aparecen a continuación y usa los archivos de muestra, que representan un conjunto de datos con múltiples tablas de estadísticas sobre sesiones de usuario y una tabla de usuarios que deben borrarse.

En los siguientes pasos, se cargan los datos en tres tablas y, luego, se borran los usuarios enumerados en la tabla DeletedUsers.

Paso 1. Carga los archivos JSON en las tablas DeletedUsers, Users y UserSessions, respectivamente.

IU web

  1. Abre la IU web de BigQuery.
  2. Desplázate sobre el ID del conjunto de datos.
  3. Haz clic en la flecha ubicada junto al ID de tu conjunto de datos. Flecha ubicada junto al nombre del conjunto de datos
  4. Haz clic en Crear tabla nueva.
  5. Selecciona Carga de archivos en Ubicación.
  6. Selecciona JSON (delimitado por saltos de línea) en Formato de archivo.
  7. Elige el Nombre de tabla.
  8. En Esquema, ingresa un Nombre para cada columna de la tabla y selecciona el Tipo adecuado.

    • Haz clic en Agregar campo y repite esta acción hasta haber ingresado todas las columnas de la tabla.
  9. Haz clic en Crear tabla.

Los esquemas de las tablas de muestra son los siguientes:

  • DeletedUsers
    • Nombre id, Tipo INTEGER
  • Users
    • Nombre id, Tipo INTEGER
    • Nombre date_joined, Tipo TIMESTAMP
  • UserSessions
    • Nombre id, Tipo STRING
    • Nombre user_id, Tipo INTEGER
    • Nombre login_time, Tipo TIMESTAMP
    • Nombre logout_time, Tipo TIMESTAMP
    • Nombre ip_address, Tipo STRING

Línea de comandos

Si quieres usar la herramienta de línea de comandos de bq a fin de crear las tablas, utiliza el comando bq load. Proporciona la marca --location y configura el valor como tu ubicación. La marca --location es opcional. Por ejemplo, si estás usando BigQuery en la región de asia-northeast1 (Tokio), el comando de carga se vería como se muestra a continuación:

bq --location=asia-northeast1 load ...

Para crear la tabla DeleteUsers, haz lo siguiente:

bq --location=asia-northeast1 load --source_format=NEWLINE_DELIMITED_JSON \
    sample_db.DeletedUsers \
    deletedUsersData.json \
    id:integer

Para crear la tabla Users, haz lo siguiente:

bq --location=asia-northeast1 load --source_format=NEWLINE_DELIMITED_JSON \
    sample_db.Users \
    usersData.json \
    id:integer,date_joined:timestamp

Para crear la tabla UserSessions, haz lo siguiente:

bq --location=asia-northeast1 load --source_format=NEWLINE_DELIMITED_JSON \
    sample_db.UserSessions \
    userSessionsData.json \
    id:string,user_id:integer,login_time:timestamp,logout_time:timestamp,ip_address:string

Paso 2. A fin de borrar la información sobre los usuarios en la tabla DeletedUsers, ejecuta las siguientes consultas de DML:

  • Borra los datos de UsersSessions

    #standardSQL
    DELETE FROM sample_db.UserSessions
    WHERE user_id in (SELECT id from sample_db.DeletedUsers)
    
  • Borra los datos de Users

    #standardSQL
    DELETE FROM sample_db.Users
    WHERE id in (SELECT id from sample_db.DeletedUsers)
    

¿Qué sigue?

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

¿Necesitas ayuda? Visita nuestra página de asistencia.