Bigquery Le partitionnement est un moyen efficace d'optimiser les performances de vos requêtes dans BigQuery de Google. Mais qu'est-ce que BigQuery exactement, et comment le partitionnement peut-il accélérer l'analyse des données ?
BigQuery est un entrepôt de données d'entreprise sans serveur, entièrement géré, proposé dans le cadre de Google Cloud Platform. Il vous permet d'exécuter des requêtes SQL rapides en utilisant la puissance de traitement de l'infrastructure de Google.
Cependant, au fur et à mesure que vos données augmentent, les performances des requêtes peuvent ralentir. C'est là que le partitionnement entre en jeu. En divisant vos grandes tables en partitions plus petites, le partitionnement permet d'organiser vos données et d'accélérer les requêtes.
Consultez ce guide étape par étape sur le partitionnement BigQuery pour comprendre comment il fonctionne et comment vous pouvez créer des tables partitionnées pour optimiser l'analyse de vos données.
Comment fonctionne le partitionnement BigQuery
Dans BigQuery, vous pouvez diviser les grandes tables en morceaux de données plus petits et plus faciles à gérer, appelés partitions. L'objectif est de stocker les données liées ensemble dans les partitions, séparées des données non liées dans d'autres partitions. Lorsque vous interrogez une table, BigQuery analyse uniquement les partitions liées à cette requête au lieu de la table entière.
Par exemple, supposons que vous disposiez d'une table de données financières s'étendant sur 10 ans, avec 10 millions de lignes au total. Avec le partitionnement BigQuery, vous pouvez diviser cette table par année en 10 partitions, une pour chaque année.
Lorsque vous interrogez les données d'une année spécifique, BigQuery récupère les données d'une seule partition, ce qui réduit la quantité de balayage nécessaire pour les requêtes.
Par conséquent, BigQuery renverra les résultats plus rapidement qu'il ne le ferait en balayant l'ensemble de la table. Étant donné que vous êtes facturé pour le nombre d'octets traités par chaque requête, vous pouvez également économiser de l'argent en évitant d'analyser des données non pertinentes.
Comment créer des tables partitionnées dans BigQuery ?
Pour démontrer comment nous pouvons créer des tableaux partitionnés, nous utiliserons un ensemble de données contenant des informations sur les termes de recherche en hausse dans Google Trends.
Je vais écrire une requête SQL pour filtrer les données de le tableau “rising_terms” et retourner des colonnes spécifiques basées sur ces critères : le score est supérieur à 99 et la date est comprise entre 2018-01-01 et 2019-01-01.
Note : si vous voulez apprendre à écrire des requêtes SQL de base, consultez cet article sur Syntaxe de BigQuery.
Voici à quoi ressemblerait la requête :
SELECT terme, score, semaine, rang, nom_du_pays
FROM `bigquery-dataset-396013.Google_trends.rising_terms`
WHERE week BETWEEN ‘2018-01-01’ AND ‘2019-01-01’
ET score > 99
LIMITE 1000 ;
Voyons cela en détail :
SELECT terme, score, semaine, rang, nom_du_pays - ce sont les colonnes que je veux que BigQuery retourne.
FROM `bigquery-dataset-396013.Google_trends.rising_terms` - il s'agit de la table à partir de laquelle les données sont interrogées.
WHERE week BETWEEN ‘2018-01-01’ AND ‘2019-01-01’ - cette clause filtre les lignes en ne retenant que celles dont la semaine est comprise entre ces deux dates.
ET score > 99 - il s'agit d'un filtre supplémentaire permettant de n'inclure que les lignes dont le score est supérieur à 99.
LIMITE 1000 ; - cette clause limite les résultats à un maximum de 1000 lignes.
Après avoir exécuté cette requête, BigQuery renvoie les colonnes et les lignes qui répondent à ces critères. Lorsque j'ai exécuté la requête, elle a dû analyser toutes les lignes pour renvoyer les données correspondant à ces critères.
C'est là que le partitionnement de BigQuery s'avère utile. En divisant la table en partitions plus petites, BigQuery peut analyser uniquement les segments qui correspondent aux critères que j'ai établis lors de la rédaction de la requête.
Pour partitionner la table, j'utiliserai la syntaxe suivante :
CREATE TABLE nom_de_la_table
PARTITION BY partition_expression
Je vais écrire une requête pour créer une table partitionnée en utilisant une instruction SELECT pour la remplir avec des données provenant d'une table existante. Cette requête crée une nouvelle table appelée rising_terms_by_year dans l'ensemble de données spécifié. En outre, elle spécifie que cette nouvelle table doit être partitionnée par la colonne semaine. Elle sélectionne également les colonnes spécifiées dans la table rising_terms existante pour en extraire les données.
CREATE TABLE `bigquery-dataset-396013.Google_trends.rising_terms_by_year`
PARTITION BY week AS
SELECT terme, score, semaine, rang, nom_du_pays
FROM `bigquery-dataset-396013.Google_trends.rising_terms`
Comme vous pouvez le voir, BigQuery a créé une table partitionnée appelée “rising_terms_by_year”.
Un guide pas à pas sur le partitionnement BigQuery
Voici comment créer des tables partitionnées dans BigQuery. En créant des tables partitionnées, vous pouvez diviser de grandes tables en morceaux de données plus petits et plus faciles à gérer. Cela permet à BigQuery de renvoyer des résultats plus rapidement et plus efficacement.
Si vous souhaitez en savoir plus sur BigQuery, consultez cet article sur comment utiliser les fonctions agrégées de BigQuery.
