A UNNEST no BigQuery é uma função muito útil que permite achatar estruturas de dados aninhadas e repetidas para facilitar a análise. Ao lidar com dados hierárquicos complexos, como matrizes, a UNNEST vem em seu socorro.
Diferentemente dos dados tabulares tradicionais, essas matrizes contêm dados aninhados e repetidos, o que pode dificultar a agregação e as uniões. Quando isso acontece, o UNNEST permite expandir os dados aninhados ou repetidos em linhas separadas para que você possa analisar os elementos não aninhados com muito mais facilidade.
Neste artigo, exploraremos a função UNNEST no BigQuery para ver como ela pode simplificar a análise de dados aninhados.
Compreensão de estruturas de dados aninhadas e repetidas no BigQuery
Ao analisar conjuntos de dados grandes e complexos no BigQuery, é comum encontrar campos aninhados e repetidos. Essas estruturas de dados aninhadas permitem que você armazene vários valores em um único campo no BigQuery, facilitando a manipulação de vários valores de uma só vez.
Ao examinar a tabela abaixo, você notará que a coluna com os “parâmetros do evento” contém subcolunas com vários valores, que fazem parte da mesma linha.
Se você examinar o esquema da tabela, verá que o tipo de dados dessa coluna não é um inteiro, string, float ou booleano. Em vez disso, ela é definida como um registro, pois contém subcolunas.
Como você pode ver, o campo “event_params” tem subcolunas (“key” e “value”) com vários valores dentro. Observe que o BigQuery suporta dados aninhados com subcolunas dentro de subcolunas. Nessa tabela, “value” contém várias subcolunas.
Como o UNNEST funciona no BigQuery?
A função UNNEST no BigQuery é usada para achatar estruturas de dados aninhadas ou repetidas em linhas separadas. O que ela faz é tomar como entrada uma coluna com um tipo de dados aninhado, como um ARRAY, e expandir os elementos aninhados ou repetidos em várias linhas. Como resultado, ele achatará os dados em uma estrutura tabular.
Depois que a UNNEST transformar os dados aninhados ou repetidos em uma tabela plana, você poderá consultar as colunas diretamente e analisar seus elementos individuais.
Como usar o UNNEST no BigQuery
Para achatar estruturas de dados aninhadas no BigQuery, usaremos a função UNNEST. Esta é a sintaxe da UNNEST:
SELECT coluna1, coluna2, ...
FROM table_name, UNNEST(column) AS alias
Usaremos a função UNNEST para dividir a coluna “event_params” em linhas separadas.
SELECT ga.event_name, params.key, params.value
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_20210131` AS ga,
UNNEST(event_params) AS params
LIMITE 1000;
Vamos dar uma olhada mais de perto na consulta.
SELECT ga.event_name, params.key, params.value
Primeiro, especifiquei as colunas que desejo que o BigQuery retorne: event_name, params.key e params.value. “Params” é o alias que atribuirei quando escrever a função UNNEST.
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_20210131` AS ga,
Essa é a tabela que quero consultar. Usei uma instrução AS para atribuir um alias à tabela: “ga”.
UNNEST(event_params) AS params
A função UNNEST expandirá os dados aninhados em linhas separadas.
LIMITE 1000;
Essa cláusula limita o número de linhas retornadas a 1000.
O BigQuery expandiu os dados em linhas separadas, achatando os dados aninhados.
É assim que você pode aninhar dados no BigQuery. Se você quiser saber como resumir e analisar dados no BigQuery, confira este artigo sobre como usar funções agregadas.
