Numeriblog Hors-sujet BigQuery : considérations relatives aux performances pour le chargement de données

BigQuery : considérations relatives aux performances pour le chargement de données

Il n’est pas rare que les clients chargent des ensembles de données très volumineux dans leur entrepôt de données d’entreprise. Les données peuvent être chargées dans BigQuery à l’aide de plusieurs outils de l’écosystème GCP. Vous pouvez […]

personnes ont consulté cet article

3 minutes

Rédigé par Thierry Vanoffe - il y a 2 ans

Ce que vous allez découvrir

  • Format de fichier de données dans BigQuery
  • Faut-il compresser les données avant chargement dans BigQuery ? 
  • Chargement des données dans BigQuery

BigQuery : considérations relatives aux performances pour le chargement de données

Il n’est pas rare que les clients chargent des ensembles de données très volumineux dans leur entrepôt de données d’entreprise. Les données peuvent être chargées dans BigQuery à l’aide de plusieurs outils de l’écosystème GCP. Vous pouvez utiliser la console Google Cloud, la commande bq load, l’API BigQuery ou les bibliothèques clientes.

Plusieurs facteurs doivent être pris en compte lors du chargement de données dans BigQuery. 

  1. Format de fichier de données ;
  2. Compression des données ;
  3. Outil utilisé pour charger des données ;
  4. Niveau de parallélisation du chargement des données ;
  5. Détection automatique du schéma ‘ON’ ou ‘OFF’.

Format de fichier de données dans BigQuery

L’insertion groupée dans BigQuery est le moyen le plus rapide d’insérer des données pour plus de rapidité et de rentabilité. Les insertions en continu sont cependant plus efficaces lorsque vous avez besoin de générer des rapports sur les données immédiatement. Aujourd’hui, les fichiers de données sont disponibles dans de nombreux types de fichiers différents.

Les fichiers CSV 

Les fichiers CSV (valeurs séparées par des virgules) contiennent des données tabulaires avec une ligne d’en-tête nommant les colonnes. Lors du chargement des données, on peut analyser l’en-tête pour les noms de colonne. Lors du chargement à partir de fichiers csv, vous pouvez utiliser la ligne d’en-tête pour la détection automatique du schéma afin de récupérer les colonnes. Lorsque la détection automatique de schéma est désactivée, vous pouvez ignorer la ligne d’en-tête et créer un schéma manuellement, en utilisant les noms de colonne dans l’en-tête. Les fichiers CSV peuvent également utiliser d’autres caractères de séparation de champ/nouvelle ligne comme séparateur, car de nombreuses sorties de données ont déjà une virgule dans les données. Vous ne pouvez pas stocker de données imbriquées ou répétées au format de fichier CSV.

Les données JSON

Les données JSON (notation d’objet JavaScript) sont stockées sous la forme d’une paire clé-valeur dans un format semi-structuré. JSON est préféré comme type de fichier car il peut stocker des données dans un format hiérarchique. La nature sans schéma des lignes de données JSON donne la flexibilité de faire évoluer le schéma et donc de modifier la charge utile. Les formats JSON et XML sont lisibles par l’utilisateur, mais les documents JSON sont généralement beaucoup plus petits que XML. Les services Web basés sur REST utilisent json plutôt que d’autres types de fichiers.

Parquet

Parquet est un format de fichier de données orienté colonne conçue pour un stockage et une récupération efficaces des données. La compression et l’encodage Parquet sont très efficaces et offrent des performances améliorées pour gérer des données complexes en masse.

Image de référence

Avro

Les données sont stockées au format binaire et le schéma est stocké au format JSON. Cela aide à minimiser la taille du fichier et maximise l’efficacité. Avro offre une prise en charge fiable de l’évolution du schéma en gérant les champs ajoutés, manquants et modifiés.

Du point de vue du chargement des données, divers tests ont été effectués avec des millions à des centaines de milliards de lignes avec des données de colonnes étroites à larges. Ce test a été fait avec un ensemble de données public nommé ` bigquery-public-data:worldpop.population_grid_1km `. Il y a 4000 emplacements flexibles pour le test et le nombre d’emplacements de chargement est limité au nombre d’emplacements que vous avez alloués à votre environnement, bien que les emplacements de chargement n’utilisent pas tous les emplacements que vous lui lancez. La détection automatique de schéma était définie sur ‘NON’. Pour la parallélisation des fichiers de données, chaque fichier doit généralement être inférieur à 256 Mo pour un débit plus rapide. Voici un résumé des conclusions :

1 Chargement des données.jpg

Faut-il compresser les données avant chargement dans BigQuery ? 

Parfois, les fichiers batch sont compressés pour des transferts réseau plus rapides vers le cloud. Surtout pour les fichiers de données volumineux qui sont transférés, il est plus rapide de compresser les données avant de les envoyer via l’interconnexion cloud ou la connexion VPN. Dans ce cas, est-il préférable de décompresser les données avant de les charger dans BigQuery ? Voici les tests effectués pour différents types de fichiers avec différents algorithmes de compression. Les résultats affichés sont la moyenne de cinq exécutions :

2 Chargement des données.jpg

Chargement des données dans BigQuery

Il existe différentes manières de charger les données dans BigQuery. Vous pouvez utiliser Google Cloud Console, la ligne de commande, la bibliothèque client (illustrée ici en python) ou utiliser l’appel d’API direct. Ces techniques de chargement de données ont été comparées, ainsi que l’efficacité de chaque méthode. Vous pouvez également voir que Schema Autodetect fonctionne très bien, lorsqu’il n’y a pas de problèmes de qualité de type de données dans les données source et que vous obtenez systématiquement les mêmes colonnes à partir d’une source de données.

3 Chargement des données.jpg

Finalement il a été conclu qu’il n’y avait aucun avantage en temps de chargement lorsque le fichier source est au format compressé. En fait, la plupart des données non compressées se chargent dans le même temps ou plus rapidement que les données compressées.

Articles similaires

  • Articles connexes
  • Plus de l'auteur

Rédacteur

Photo de profil de l'auteur
Thierry Vanoffe

Thierry VANOFFE, consultant, formateur, coach Google Workspace CEO de Numericoach, leader de la formation Google Workspace en France. Passionné par Google, ce blog me permet de partager cette passion et distiller tutos, trucs, astuces, guides sur les outils Google. N'hésitez pas à me solliciter pour vos projets de formation.

S’abonner
Notification pour
0 Commentaires
Commentaires en ligne
Afficher tous les commentaires