Estoy planeando agregar datos incrementales a diario a una tabla de BigQuery. Cada vez que agrego datos incrementales a la tabla existente, quiero eliminar los registros duplicados (basados en una columna de clave principal) de los datos existentes en la tabla. Un enfoque sería -Eliminación de registros duplicados en una tabla de BigQuery
- recoja el conjunto de claves de los datos incrementales (llamémosle
INCR_KEYS
) - ejecutar una consulta en las líneas de -
SELECT all_cols from table where pkey_col NOT IN (INCR_KEYS)
- y almacenar los resultados en una tabla nueva. - Agregue los datos incrementales a la nueva tabla.
Mi preocupación con este enfoque es que crea una copia duplicada de una gran mesa y se agrega a mis cuentas.
¿Existe una forma mejor de lograr lo mismo sin crear una tabla duplicada?
¿Qué tan grande es la tabla? Si se comprime más de 64 MB, el # 2 fallará. –
@RyanBoyd - Eso no debería ser un problema. Si INCR_KEYS> 64MB, podría dividir INCR_KEYS en trozos más pequeños y repetir <2> – user1659408
El problema es si la tabla completa (es decir, los datos que no están en INCR_KEYS) es> 64MB. La consulta SELECT en # 2 no tendrá éxito. –