UNNEST dans BigQuery est une fonction très utile qui vous permet d'aplatir les structures de données imbriquées et répétées pour faciliter l'analyse. Lorsqu'il s'agit de données hiérarchiques complexes telles que des tableaux, UNNEST vient à la rescousse.
Contrairement aux données tabulaires traditionnelles, ces tableaux contiennent des données imbriquées et répétées, ce qui peut rendre l'agrégation et les jointures plus difficiles. Dans ce cas, UNNEST vous permet de développer les données imbriquées ou répétées dans des lignes distinctes afin d'analyser plus facilement les éléments non imbriqués.
Dans cet article, nous allons explorer la fonction UNNEST dans BigQuery pour voir comment elle peut simplifier l'analyse des données imbriquées.
Comprendre les structures de données imbriquées et répétées dans BigQuery
Lors de l'analyse d'ensembles de données volumineux et complexes dans BigQuery, il est fréquent de rencontrer des champs imbriqués et répétés. Ces structures de données imbriquées vous permettent de stocker plusieurs valeurs dans un seul champ dans BigQuery, ce qui facilite la manipulation de plusieurs valeurs à la fois.
Si vous regardez le tableau ci-dessous, vous remarquerez que la colonne des “paramètres de l'événement” contient des sous-colonnes avec des valeurs multiples, qui font toutes partie de la même ligne.
Si vous examinez le schéma de la table, vous verrez que le type de données de cette colonne n'est pas un entier, une chaîne, un flottant ou un booléen. Elle est plutôt définie comme un enregistrement puisqu'elle contient des sous-colonnes.
Comme vous pouvez le voir, le champ “event_params” comporte des sous-colonnes (“key” et “value”) avec plusieurs valeurs à l'intérieur. Remarquez que BigQuery prend en charge les données imbriquées avec des sous-colonnes à l'intérieur de sous-colonnes. Dans cette table, “value” contient plusieurs sous-colonnes.
Comment fonctionne UNNEST dans BigQuery ?
La fonction UNNEST de BigQuery est utilisée pour aplatir les structures de données imbriquées ou répétées en lignes distinctes. Elle prend en entrée une colonne avec un type de données imbriquées, comme un ARRAY, et développe les éléments imbriqués ou répétés en plusieurs lignes. En conséquence, il aplatit les données dans une structure tabulaire.
Une fois que UNNEST a transformé les données imbriquées ou répétées en un tableau plat, vous pouvez interroger directement les colonnes et analyser leurs éléments individuels.
Comment utiliser UNNEST dans BigQuery ?
Pour aplatir les structures de données imbriquées dans BigQuery, nous utiliserons la fonction UNNEST. Voici la syntaxe de la fonction UNNEST :
SELECT colonne1, colonne2, ...
FROM nom_table, UNNEST(colonne) AS alias
Nous utiliserons la fonction UNNEST pour diviser la colonne “event_params” en lignes distinctes.
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 ;
Examinons la requête de plus près.
SELECT ga.event_name, params.key, params.value
Tout d'abord, j'ai spécifié les colonnes que BigQuery doit retourner : event_name, params.key et params.value. “Params” est l'alias que j'attribuerai lorsque j'écrirai la fonction UNNEST.
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_20210131` AS ga,
Voici la table que je souhaite interroger. J'ai utilisé une instruction AS pour attribuer un alias à la table : “ga”.
UNNEST(event_params) AS params
La fonction UNNEST développe les données imbriquées en lignes distinctes.
LIMITE 1000 ;
Cette clause limite le nombre de lignes renvoyées à 1000.
BigQuery a développé les données en lignes distinctes, aplatissant ainsi les données imbriquées.
C'est ainsi que vous pouvez désennuyer des données dans BigQuery. Si vous souhaitez apprendre à résumer et à analyser des données dans BigQuery, consultez cet article sur comment utiliser les fonctions agrégées.
