Saltar al contenido principal

Pregunta

Si tengo atributos variables en una columna que usa tipos Map, ¿cómo puedo extraerlos y utilizarlos en las consultas?

Respuesta

Este es un ejemplo básico de cómo extraer claves y valores de un campo de atributos variable. Este método creará aparentes duplicados a partir de cada fila de la tabla source/raw. Sin embargo, como se extraen las claves y los valores, pueden incluirse en la clave primaria o en un índice secundario, como un filtro bloom. En este ejemplo, básicamente tenemos una source que crea una tabla de métricas; tiene varios atributos que pueden aplicarse en un campo de atributos que contiene valores de tipo Map. Si hay atributos que siempre van a estar presentes en los registros, es mejor extraerlos a sus propias columnas y poblarlas. Deberías poder copiar y pegar sin más para ver cuáles serían los resultados y qué hace la vista materializada en este caso. Crea una base de datos de ejemplo:
Cree la tabla inicial que contendrá las filas y los atributos:
Inserte filas de ejemplo en la tabla. El tamaño de la muestra es deliberadamente pequeño para que, cuando se cree la vista materializada, pueda ver cómo las filas se multiplican para cada atributo.
Luego podemos crear una vista materializada con ARRAY JOIN para extraer los atributos de Map en columnas de claves y valores. A modo de demostración, en el ejemplo siguiente se usa una tabla implícita (con el comando POPULATE y una tabla interna como .inner.{uuid}... ). Sin embargo, la práctica recomendada es usar una tabla explícita, en la que primero se define la tabla y luego se crea una vista materializada sobre ella con el comando TO.
La nueva tabla tendrá más filas y las claves estarán extraídas, así:
A partir de aquí, para consultar las filas que tengan ciertos atributos, harías algo así:
Última modificación el 1 de julio de 2026