Les articles
BigQuery | Ce que vous devez savoir sur le datawarehouse de Google en 2024
8
min -
Publié le
25
March
2024

BigQuery | Ce que vous devez savoir sur le datawarehouse de Google en 2024

Data Tools
03
/
24
Cet article s’attachera à présenter les caractéristiques propres à BigQuery en tant que datawarehouse : avantages et inconvénients, coûts, cas d’usage… Nous aborderons tous les points clés qui pourraient mener à choisir ou non BigQuery comme solution d’entrepôt de données.

BigQuery : un service de data warehouse ? 

BigQuery est considéré comme un data warehouse incontournable en 2024.

En premier lieu, il convient de définir ce qu’est un data warehouse.

Le data warehouse est aujourd’hui une brique essentielle de la Modern Data Platform d’une entreprise souhaitant analyser ses données.

En effet, celui-ci permet de centraliser une immense quantité de données, provenant de sources multiples. Cette solution de stockage est généralement le point de départ de la plupart des transformations effectuées sur ces données en vue de leur analyse.

Le choix du datawarehouse est crucial pour une entreprise et doit être fait en cohérence avec le reste de la data stack de l’entreprise.

Qu’est-ce que BigQuery ?

BigQuery est un data warehouse lancé par Google en 2010, disponible dans l’environnement GCP (Google Cloud Platform) sur un mode de fonctionnement serverless : c’est-à-dire qu’il n’est pas nécessaire d’allouer soi-même des ressources pour le fonctionnement de BigQuery, cette partie étant gérée pour nous directement par le service.

Logo du datawarehouse BigQuery

En tant qu’entrepôt de données, BigQuery repose sur un modèle OLAP (pour OnLine Analytical Processing). Cela signifie que l’outil est prévu et optimisé pour traiter de grands volumes de données historiques, de manière analytique, c’est-à-dire en y appliquant des transformations et des jointures.

Ainsi, il en découle que BigQuery n’est pas adapté à un usage orienté vers les transactions, comme un système de gestion des stocks, ou un backend de site e-commerce par exemple. Plus généralement, on évitera l’utilisation de BigQuery (et d’un outil OLAP en général) pour un cas d’usage nécessitant un grand nombre d’insertions, suppressions et mises à jour de données et on favorisera pour ces cas d’usage, un système OLTP (OnLine Transaction Processing).

Schéma explicatif de la différence entre OLAP et OLTP
https://www.boardinfinity.com/blog/difference-between-olap-and-oltp/

Les caractéristiques de BigQuery

Une capacité de traitement de données impressionnante

BigQuery possède une importante capacité de parallélisation lors du traitement des données durant une requête. Cet avantage lui permet dans certains cas de traiter jusqu’à plusieurs pétaoctets de données en quelques secondes.

 

Intégration à Google Cloud Platform (GCP) 

Cet avantage est circonstanciel et dépend du reste de l’architecture dans laquelle on souhaite intégrer un datawarehouse. Il n’est cependant pas à négliger dans le cas où d’autres services de l’organisation sont déjà hébergés sur GCP. Il est dans ce cas important de prendre en compte que Google permet d’intégrer étroitement BigQuery avec les autres services de son écosystème Cloud, comme Google Cloud Storage, Pub/Sub, Google Cloud Dataprep, etc.

 

Entièrement managé

Nous l’avons mentionné plus haut, aucune tâche d’allocation de ressources ou de maintenance n’est nécessaire pour faire fonctionner BigQuery.

Support du SQL standard

BigQuery utilise un dialecte SQL dédié, le GoogleSQL. Ce dialecte ajoute certaines fonctions analytiques et de transformation utiles. Cependant, il est compatible avec le SQL standard: ainsi, une grande majorité du code écrit en SQL standard est supporté dans BigQuery.

Nombreuses fonctionnalités de sécurité

L’outil propose en outre de nombreuses fonctionnalités de sécurité plus ou moins avancées. Ainsi, toutes les données traitées par BigQuery sont protégées par chiffrement, à la fois au repos et en transit.

Il est aussi possible de configurer BigQuery en multi-tenant pour isoler les données, et de l’intégrer à un VPC pour contrôler finement les connexions entrantes et sortantes au service.

Enfin, comme tous les autres services GCP, BigQuery profite de toute l’infrastructure sécurisée mise en place par Google pour protéger ses services cloud, ce qui le protège notamment contre toute une gamme d’attaques web comme le DDoS.

 

Les limites de BigQuery

Optimisation des requêtes et maîtrise des coûts

La maîtrise parfaite des coûts dans BigQuery peut s’avérer être un sujet épineux. En effet, ceux-ci sont affectés, entre autres, par la quantité de données traitées par les requêtes, l’optimisation des classes de stockage utilisées pour stocker les données, l’allocation ou non de slots réservés… Cette multiplicité de facteurs techniques et nécessitant une connaissance approfondie de l’outil peuvent rendre les coûts plus compliqués à comprendre et à maîtriser lors de cas d’utilisation poussés.

Ainsi, dans le cas de traitement de volumes importants de données et/ou de requêtes particulièrement complexes, il est nécessaire que les développeurs soient sensibilisés à l’optimisation des requêtes SQL. Cette optimisation peut en outre passer par l’utilisation de fonctionnalités spécifiques à BigQuery et à GoogleSQL, et le temps de formation éventuellement nécessaire pour acquérir la pleine maîtrise de ces outils.

Limitation des requêtes

BigQuery impose certaines limitations sur les requêtes, telles que la taille maximale des résultats de requête et le nombre de tables pouvant être interrogées dans une seule requête. Cependant, il est important de noter que ces limitations ne posent en général problème que pour certains cas d’usage très précis, et que la vaste majorité des cas d’analyse ne s’en trouvent pas concernés.

 

Une flexibilité limitée

D’une manière générale, le fait que BigQuery soit un service totalement managé implique un désavantage inhérent à ce statut : il est parfois impossible de configurer BigQuery aussi loin qu’on le souhaiterait et de s’affranchir des limitations imposées par Google Cloud.

 

La dépendance à GCP et à l’écosystème Google

Bien que BigQuery s’intègre parfaitement à tout l’environnement GCP et à ses services, il n’en est parfois pas de même pour son intégration avec d’autres services externes à GCP. De plus, utiliser BigQuery de manière optimale avec le reste des services du cloud de Google nécessite une bonne connaissance et maîtrise de ce dernier.

 

Les features additionnelles de BigQuery

Nous l’avons vu, BigQuery propose une large gamme d’avantages et de fonctionnalités nécessaires à tout bon datawarehouse, idéales pour l’analyse performante de larges volumes de données. Voici quelques fonctionnalités supplémentaires que propose l’outil et qui permettent d’aller plus loin :

BigQuery ML

BigQuery propose un service permettant de créer, entraîner et déployer des modèles de machine learning directement au sein du service. Cela est rendu possible par l’intégration de BigQuery ML directement dans GoogleSQL, qui permet l’utilisation de ces modèles au sein même de requêtes SQL. De plus, certains modèles basiques sont nativement intégrés à BigQuery ML, comme les modèles de régression linéaire ou logistique, le clustering k-means…

Image de BigQuery ML

Grande variété de types de données

Dans une base de données, un type de données spécifie la nature des valeurs que peut prendre une colonne, comme des nombres, du texte, des dates, ou des valeurs booléennes, définissant ainsi comment les données peuvent être stockées, manipulées et utilisées.

De son côté, BigQuery met à disposition des développeurs une très grande variété de types avec lesquels interagir. Ils sont regroupés en deux catégories :

  • Les types simples : on y trouve les types “classiques” comme les booléens, chaînes de caractères, nombre… BigQuery dispose de 3 types différents pour représenter les nombres (un pour les flottants et deux pour les entiers, selon leur taille), et de types dédiés pour les dates, datetime, time et timestamp.
  • Les types complexes : BigQuery permet la création et manipulation de types complexes comme les STRUCT (semblables dans le fonctionnement à des dictionnaires en Python), ainsi que les tableaux.

De plus, un grand nombre de fonctions sont à disposition du développeur pour traiter les chaînes de caractères au format JSON.

Enfin, le service propose également un type appelé GEOGRAPHY. Son utilisation, plus large que son nom pourrait le laisser croire, permet de stocker des points, mais aussi des lignes, polygones et collections multipoints. Il est donc très utile pour l’analyse en profondeur de données géospatiales.

Liste des data types de BigQuery
Source : https://blog.coupler.io/bigquery-data-types/

Optimisation des requêtes

Conscient que l’optimisation des requêtes est une problématique importante en ce qui concerne la maîtrise des coûts dans BigQuery, Google met à disposition pour son service différents outils aidant à l’optimisation des requêtes et du volume de données traitées.

Parmi eux, on trouve :

·   Le partitionnement et le clustering de tables

·   Le cache de requêtes : le service met en cache les résultats de requêtes durant 24 heures, sauf dans le cas de tables protégées par des règles de sécurités spécifiques au niveau des colonnes.

·   Des insights sur les requêtes effectuées : l’éditeur de BigQuery propose un onglet “Execution Graph”, permettant de visualiser sous forme de graphe les étapes d’une requête. Ce graphe permet aussi de mettre en lumière les étapes mal optimisées et utilisant plus de ressources qu’elles ne le devraient, en étant signalées par des icônes spécifiques à l’utilisateur.

 

Le modèle de facturation de BigQuery

En tant que service managé, BigQuery repose sur un modèle de facturation flexible et à la demande : le paiement est directement proportionnel à l’utilisation des ressources.

Plusieurs aspects entrent en compte lors du calcul de la facturation BigQuery :

La facturation de BigQuery pour le stockage des données

Dans BigQuery, le coût relatif au stockage des données est calculé proportionnellement au nombre de Gio (gibioctets) par mois stockés. Dans le cas de données stockées moins longtemps qu’un mois complet, un prorata est fait au mégaoctet et à la seconde près.

BigQuery facture actuellement $0.023 par Gio et par mois de données actives stockées en ce qui concerne le stockage logique.

Lorsque des données ne sont pas utilisées durant 90 jours consécutifs, elles sont converties en stockage dit “passif”, et les coûts inhérents à leur stockage baissent.

Enfin, BigQuery propose un tier gratuit pour les 10 premiers Gio de données stockés chaque mois.

 

La facturation inhérente aux requêtes effectuées sur les données

Dans le cadre de la facturation inhérente aux requêtes effectuées sur les données, BigQuery facture simplement en fonction de la quantité de données traitées par chaque requête, à la demande.

Ce calcul se fait sur la base de $7.81 par Tio (tébioctet) de données traitées. Google propose un tier gratuit d’un Tio de données traitées par mois.

En outre, BigQuery propose un système de slots. Un slot correspond à une capacité de calcul réservée, en échange d’un paiement récurrent fixe. Cette solution est très utile dans le cas de coûts de requêtes importants et facilement prévisibles au sein d’une grande organisation par exemple.

 

La facturation de BigQuery lors des transferts de données

Ingestion : l’ingestion de données en lot (batch) dans BigQuery est généralement gratuite. Concernant les données en streaming, l’utilisation de l’API BigQuery Storage Write peut entraîner des surcoûts au-delà de 2 Tio de données ingérées par mois.

Extraction : il est possible d’extraire gratuitement jusqu’à 50 Tio de données par jour en batch. Dans le cas d’une extraction de données en streaming via l’API BigQuery Storage Read, un surcoût peut être induit au-delà de 300 Tio de données par mois extraites.

Tableau explicatif du modèle de facturation BigQuery

 

BigQuery se distingue comme un service de datawarehouse puissant et flexible, adapté à une large gamme d'applications analytiques. Grâce à sa capacité à traiter de vastes volumes de données rapidement, son modèle de facturation flexible et ses fonctionnalités avancées telles que BigQuery ML et l'optimisation des requêtes, il offre aux entreprises les outils nécessaires pour transformer de grandes quantités de données brutes en insights utiles.

La prise en charge d’un grand nombre de types de données enrichit encore sa polyvalence, permettant aux utilisateurs de gérer efficacement des données complexes et variées.

Malgré certains inconvénients, comme la complexité de la gestion des coûts et les défis liés à l'optimisation des requêtes pour les utilisateurs moins expérimentés, BigQuery reste une option robuste pour ceux qui cherchent à exploiter la puissance du cloud pour l'analyse de données. Son intégration étroite avec les autres services GCP en font d’autant plus un premier choix dans le cas d’une organisation déjà implantée dans cet environnement cloud.

BigQuery est un outil que nous utilisons très largement chez Modeo car il répond souvent à l’ensemble des problématiques data de nos clients. Si vous souhaitez en savoir plus sur cet outil, d’autres outils de la Modern Data Stack que nous utilisons ou les solutions que nous proposons, contactez-nous !

Evann Bonnaventure
Data Engineer
No items found.
Cliquez sur "Accepter" pour nous permettre d'optimiser votre navigation sur le site.
Pour plus d'informations, veuillez consulter notre politique de confidentialité.