Saltar al contenido

BigQuery: eliminar filas de la tabla particionada

Solución:

DML tiene algunos problemas / limitaciones conocidos en esta fase.

Tal como:

  • Las declaraciones DML no se pueden utilizar para modificar tablas con campos REQUERIDOS en su esquema.
  • Cada declaración DML inicia una transacción implícita, lo que significa que los cambios realizados por la declaración se confirman automáticamente al final de cada declaración DML exitosa. No hay soporte para transacciones de estados de cuenta múltiples.
  • Las siguientes combinaciones de declaraciones DML pueden ejecutarse simultáneamente en una tabla: ACTUALIZAR e INSERTAR
    BORRAR e INSERTAR
    INSERTAR e INSERTAR
    De lo contrario, se cancelará una de las declaraciones DML. Por ejemplo, si dos sentencias UPDATE se ejecutan simultáneamente en la tabla, solo una de ellas tendrá éxito.
  • Las tablas que se escribieron recientemente a través de BigQuery Streaming (tabledata.insertall) no se pueden modificar con declaraciones UPDATE o DELETE. Para verificar si la tabla tiene un búfer de transmisión, verifique la respuesta de tables.get para una sección llamada streamingBuffer. Si está ausente, la tabla se puede modificar mediante las instrucciones UPDATE o DELETE.
  • Las declaraciones DML que modifican tablas particionadas aún no son compatibles.

También tenga en cuenta los límites de la cuota

  • Máximo de declaraciones UPDATE / DELETE por día por tabla: 48
  • Máximo de declaraciones UPDATE / DELETE por día por proyecto: 500
  • Máximo de declaraciones INSERT por día por tabla: 1,000
  • Declaraciones INSERT máximas por día por proyecto: 10,000

Lo que puede hacer es copiar toda la partición en una tabla no particionada y ejecutar la instrucción DML allí. Luego, vuelva a escribir la tabla temporal en la partición. Además, si se encontró con declaraciones de límite de actualización de DML por día por tabla, debe crear una copia de la tabla y ejecutar el DML en la nueva tabla para evitar el límite.

Puede eliminar particiones en tablas particionadas usando la línea de comandos bq rm, como esto:

bq rm 'mydataset.mytable$20160301'
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *