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.

Exportación de Firebase a BigQuery: la event_timestamp cambia al pasar de una tabla intradiaria a una tabla de día completo.

Tengo una aplicación móvil que está conectada a un almacén BigQuery a través de Firebase Export. Para mantener actualizados mis paneles de control, ejecuto trabajos incrementales (dbt) varias veces al día para extraer datos de las tablas que BigQuery crea y que contienen datos importados de Firebase. (ver este artículo).

Para la transmisión de datos en tiempo real, se crea una tabla con el sufijo “_intraday”. Una vez que ese día ha terminado, los datos se transfieren a la tabla que solo contiene días completos y se elimina la tabla intraday.

Parece que cuando esto sucede (pasar de intraday a día completo), el evento “timestamp (UNIX)” cambia ligeramente (unos pocos milisegundos) para cada entrada. El problema es que he definido una combinación de “user id” y “event timestamp” como clave única. Debido a este problema, el primer trabajo que maneja la tabla movida identificará cada fila como una fila nueva y única, duplicando exactamente mis datos resultantes por 2.

¿Alguien ha visto alguna vez este problema y sabe si es normal? ¿Conoces alguna otra solución además de implementar un ID de evento en el cliente, asignando a cada evento un identificador único (a través de parámetros de evento personalizados) y usando esto en lugar de “user id” + “timestamp”?

Tablas auto-creadas

Gracias.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Solución al problema de datos duplicados en la integración de Firebase-BigQuery

    Descripción del problema

    Existe un problema en la integración de Firebase-BigQuery donde las marcas de tiempo de los eventos se modifican ligeramente (por unos pocos milisegundos) al mover los datos de la tabla de intradía a la tabla de día completo, lo que causa la duplicación de datos.

    Solución propuesta

    Una posible solución sería implementar un ID de evento en el lado del cliente, que asignaría un identificador único a cada evento a través de parámetros de evento personalizados. Esto evitaría la necesidad de depender de una combinación de user_id y event_timestamp como clave única, evitando así el problema de duplicación.

    Otra posible solución sería actualizar la definición de la clave única para incluir solo el user_id y omitir el event_timestamp. Esto requeriría cierta pérdida de datos, ya que varios eventos con el mismo user_id y event_timestamp ligeramente diferentes se tratarían como duplicados.

    Resumen

    Para evitar problemas de duplicación al utilizar la integración de Firebase-BigQuery, se recomienda utilizar un ID de evento único en el lado del cliente o actualizar la definición de la clave única para incluir solo el user_id.

Comments are closed.