es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Vista de BigQuery para actualizar una tabla

Tengo una tabla de registro que consta de datos sin procesar que requieren procesamiento, lo cual a veces requerirá establecer una tabla de destino para evitar errores de recursos.

Actualmente estoy usando una Vista de BigQuery para procesar y persistir el resultado en otra tabla de BigQuery, con una Consulta Programada configurada para sobrescribir la tabla.

A medida que el volumen de datos crece, encuentro que el costo se está volviendo más caro, ¿cómo puedo construirlo de manera más eficiente/mejor práctica para ahorrar costos?

La lógica de mi script actual de la Vista de BigQuery es así:

con el último<em>timestamp como(
seleccionar max(timestamp) latest from persist</em>table
),

seleccionar col1, col2, col3 from logging<em>table where timestamp >= (seleccionar latest from latest</em>timestamp)
unión todo
seleccionar * from persist<em>table where timestamp < (seleccionar latest from latest</em>timestamp)

Tengo que usar el timestamp como columna de partición, y para evitar datos duplicados/faltantes en el resultado.
No estoy seguro si hay alguna otra manera mejor de hacer esto, así que estaré abierto a cualquier sugerencia.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Una sugerencia para reducir costos es utilizar la característica de particionado de BigQuery. En lugar de utilizar una vista para procesar toda la tabla de registros, puedes particionar la tabla de registros basándote en la columna de marca de tiempo. De esta manera, las consultas se pueden limitar a particiones específicas y no a toda la tabla, lo que reduce significativamente el costo de la consulta.

    Otra sugerencia es utilizar actualizaciones incrementales en lugar de sobrescribir toda la tabla persistente. BigQuery admite tanto las fusiones como las actualizaciones en streaming, lo que te permite actualizar solo las filas que han cambiado desde la última actualización. Esto reducirá aún más el costo incurrido por tu método de sobrescribir la tabla cada vez.

    En general, es importante considerar el tamaño de los datos y la frecuencia de las actualizaciones para determinar el mejor enfoque para equilibrar costos y eficiencia. El particionado, las actualizaciones incrementales y la optimización de consultas pueden contribuir a ahorrar costos.

Comments are closed.