Différences entre partitionnement et clusterisation

Author: Unknown

Date: 13/11/2025

Globalement, partitionner et clusteriser, ça sert un peu à la même chose oui : optimiser les coûts et les temps de réponse.

Mais pour plus de détails :

Partitionnement:

Dans l’arrière-boutique, BigQuery crée autant de tables que de partitions

Les avantages :

  • C’est facile de calculer le gain : tu ne scannes que les partitions nécessaires à la requête

  • Implication : si tu filtres sur une date qui n’existe pas en bdd, ça te coutera 0€.

  • C’est pratique pour gérer des remplacement ou des expirations de partitions. (il y a des fonctions pour ça)

Les inconvénients :

  • On ne peut partitionner que par une unique colonne, de type Date(time) ou Integer

  • Un nombre max de partition à 10000, ce qui empêche de partitionner par heure sur un long historique de données par exemple

  • C’est généralement recommandé de ne pas faire trop de petites partitions pour éviter un overhead

Clustering:

BigQuery garde ses données dans la même table, mais co-locate les données ayant le même hash de ses colonnes de clustering

Les avantages :

  • Tu es libre d’avoir plusieurs colonnes, ça peut être n’importe quel type de colonne

Les inconvénients :

  • Gain moins prédictible à l’avance, ça va dépendre du plan d’exécution de BigQuery.

  • J’ai pas testé, mais trop en mettre devrait être contre-productif je pense

Sur ****, dans l’exemple pris, les cd_type_produit = 4 représente environ 3% de l’ensemble des validations, d’où la grande efficacité du clustering, surtout combiné au partitonnement.

J’ai refait le test aujourd’hui :

SELECT cd_type_produit, dt_validation FROM prod_dwh.dim_validation_terrain;

-> 84.38Go

SELECT cd_type_produit, dt_validation FROM prod_dwh.dim_validation_terrain WHERE cd_type_produit = '4';

-> 9.05Go

SELECT cd_type_produit, dt_validation FROM prod_dwh.dim_validation_terrain WHERE dt_validation = '2025-11-11';

-> 41.45Mo

SELECT cd_type_produit, dt_validation FROM prod_dwh.dim_validation_terrain WHERE cd_type_produit = '4' AND dt_validation = '2025-11-11';

-> 9.17Mo

Tags: notes-diverses data bigquery informatique