Función UNNEST() en BigQuery

Muchas veces nos hemos encontrado que al recolectar datos directamente de eventos la estructura de ellos viene en forma jerárquica o en algunas ocasiones al hacer uso de tablas particionadas y puede resultar confuso trabajarlos. Ejemplo:

  • A continuación podemos observar cómo para un block_id se realizaron varias transacciones en un tiempo determinado, pero al venir de un evento directamente viene con estructura jerárquica. alt

Ahora el problema empieza cuando intentamos realizar análisis a estos tipos de data sets ya que las consultas en varias ocasiones no funcionan. Aquí entra a la función UNNEST(), ésta función nos permite llenar los metadatos, en este caso, del campo block_id con el mismo id cuando hay varias transacciones para él y así posteriormente realizar el análisis respectivo de forma más sencilla.

  • A continuación se muestra la consulta para ver sólo tres campos de la tabla y el uso de la función UNNEST() para que muestre el mismo block_id para todas sus transacciones.

    alt

    alt

Como se puede observar la tabla ya no contiene estructura jerárquica para el mismo block_id. Esto facilita en muchas ocasiones el manejo del data set no sólo en momentos de realizar consultas para analizarlo, sino al realizar cruces con otras fuentes y otras tareas de consumo.

PD: Para los que deseen jugar y hacer pruebas, el data set utilizado es público en bigquery. Proyecto: bigquery-public-data, Data set: bitcoin_blockchain, Tabla: blocks

Aprovechemos al máximo el poder de BigQuery!

comments powered by Disqus
Information Workers
Explore, extract, refine and consume your data to get valuable information
Visit us