Optimiser le stockage dans BigQuery
Vous trouverez sur cette page les bonnes pratiques relatives à l'optimisation du stockage BigQuery. BigQuery stocke les données sous forme de colonnes. Les bases de données orientées colonnes sont optimisées pour les charges de travail analytiques qui agrègent les données sur un très grand nombre d'enregistrements. Comme les colonnes présentent généralement plus de redondance que les lignes, cette caractéristique permet d'améliorer la compression des données en utilisant des techniques telles que le codage par plage. Pour en savoir plus sur la manière dont BigQuery stocke les données, consultez la page Présentation du stockage BigQuery. L'optimisation du stockage BigQuery améliore les performances des requêtes et les contrôles des coûts.
BigQuery fournit des détails sur l'espace de stockage consommé par vos ressources.
Pour afficher les métadonnées de stockage des tables, interrogez les vues INFORMATION_SCHEMA
suivantes :
Données de table de cluster
Bonne pratique : Créez des tables en cluster.
Pour optimiser le stockage des requêtes, commencez par mettre en cluster les données d'une table. En mettant en cluster les colonnes fréquemment utilisées, vous pouvez réduire le volume total de données analysées par la requête. Pour en savoir plus sur la création de clusters, consultez la page Créer et utiliser des tables en cluster.
Partitionner les données de table
Bonne pratique : Divisez les grandes tables avec des partitions.
Avec les partitions, vous pouvez regrouper et trier vos données en fonction d'un ensemble de caractéristiques de colonne définies, par exemple en fonction d'une colonne d'entiers, d'une colonne d'unité de temps ou de la date d'ingestion. Le partitionnement améliore les performances des requêtes et contrôle les coûts en réduisant le nombre d'octets lus par une requête.
Pour plus d'informations sur les partitions, consultez la page Présentation des tables partitionnées.
Utiliser les paramètres d'expiration de table et de partition
Bonne pratique : Pour optimiser le stockage, configurez les paramètres d'expiration par défaut pour les ensembles de données, les tables et les tables partitionnées.
Vous pouvez contrôler les coûts de stockage et optimiser l'utilisation du stockage en définissant l'expiration de table par défaut sur les tables nouvellement créées dans un ensemble de données. Lorsqu'une table expire, elle est supprimée avec toutes les données qu'elle contient. Si vous définissez cette propriété lorsque vous créez l'ensemble de données, toute table créée dans l'ensemble de données est supprimée après le délai d'expiration. Si vous la définissez après avoir créé l'ensemble de données, seules les nouvelles tables sont supprimées après le délai d'expiration.
Par exemple, si vous définissez l'expiration de table par défaut sur sept jours, les anciennes données sont automatiquement supprimées après une semaine.
Cette option est utile si vous n'avez besoin d'accéder qu'aux données les plus récentes. Elle permet également de tester des données sans avoir à les conserver.
Si vos tables sont partitionnées par date, l'expiration de table par défaut de l'ensemble de données s'applique aux partitions individuelles. Vous pouvez également contrôler l'expiration de la partition à l'aide de l'option time_partitioning_expiration
dans l'outil de ligne de commande bq ou du paramètre de configuration expirationMs
dans l'API. Lorsqu'une partition expire, les données de la partition sont supprimées, mais la table partitionnée n'est pas supprimée même si la table est vide.
Par exemple, la commande suivante fait expirer les partitions au bout de trois jours :
bq mk \ --time_partitioning_type=DAY \ --time_partitioning_expiration=259200 \ project_id:dataset.table
Stocker des données dans BigQuery
Bonne pratique : Stocker vos données dans BigQuery.
Lorsque vous chargez des données dans BigQuery depuis Cloud Storage, nous ne facturons pas l'opération de chargement en elle-même, mais des frais s'appliquent pour le stockage des données dans Cloud Storage. Une fois les données chargées dans BigQuery, elles sont soumises aux tarifs de stockage de BigQuery. Le stockage physique ou logique que votre table utilise ainsi que les blocs de stockage de fonctionnalité temporelle vous sont facturés.
Plutôt que d'exporter vos anciennes données vers une autre option de stockage (telle que Cloud Storage), tirez parti des tarifs de stockage à long terme de BigQuery.
Si une table n'est pas modifiée pendant 90 jours consécutifs, le prix de stockage de cette table diminue automatiquement de 50 %. Si vous disposez d'une table partitionnée, chaque partition est prise en considération individuellement pour l'éligibilité à une tarification à long terme soumise aux mêmes règles que les tables non partitionnées.
Identifier les données à long terme ou à court terme
Bonne pratique : Déterminez si les données au niveau des lignes doivent être stockées à long terme et ne stockez que des données agrégées à long terme.
Dans de nombreux cas, les informations contenues dans les données transactionnelles ou au niveau des lignes sont utiles à court terme, mais sont de moins en moins référencées à long terme. Dans ces situations, vous pouvez créer des requêtes d'agrégation pour calculer et stocker les métriques associées à ces données, puis utiliser le délai d'expiration de table/partition pour supprimer systématiquement les données au niveau des lignes. Cela réduit les frais de stockage tout en conservant les métriques pour une utilisation à long terme.
Réduire la fenêtre de fonctionnalité temporelle
Bonne pratique : Selon vos besoins, vous pouvez réduire la fenêtre de fonctionnalité temporelle.
Réduire la valeur par défaut du nombre de jours de la fonctionnalité temporelle (sept jours) a pour effet de réduire le nombre total de blocks de stockage stockés pour un objet. La fenêtre de fonctionnalité temporelle est définie au niveau de l'ensemble de données.
Archiver des données dans Cloud Storage
Bonne pratique : Pensez à archiver les données dans Cloud Storage.
Vous pouvez déplacer des données de BigQuery vers Cloud Storage en fonction de vos besoins d'archivage. Nous vous recommandons de vous pencher sur la tarification à long terme de BigQuery avant d'exporter des données en dehors de BigQuery.
Étapes suivantes
- Découvrez comment optimiser les coûts.
- Découvrez comment optimiser les requêtes.
- Découvrez comment optimiser les fonctions.