Par Xavier le Dec 17, 2021
Dans un projet BigQuery, la quantité de tables peut rapidement être importante (notamment avec des tables segmentées) et il devient difficile d'estimer rapidement le volume que cela pourrait nous coûter. Voici donc quelques scripts qui permettent de nous faciliter la vie.
Code 👇
Calculer le volume et le coût mensuel d'un dataset
sqlselect round(sum(size_bytes /(1024*1024*1024)),3) AS taille_GB_dataset, round(sum(size_bytes /(1024*1024*1024))*0.02,2) AS monthly_cost from `NOM_DATASET.__TABLES__`
Calculer le volume de tables remplissant certaines conditions
sqlselect round(sum(size_bytes)/(1024*1024*1024),3) as taille_GB from `VOTRE_DATASET.__TABLES__` where table_id like '%google_ads%'
sqlselect round(sum(size_bytes)/(1024*1024*1024),3) as taille_GB from `VOTRE_DATASET.__TABLES__` where table_id like '%202112%'
Lister chaque table d'un dataset, avec son volume et nombre de lignes
sqlselect table_id, round(sum(size_bytes)/(1024*1024*1024),3) as taille_GB, sum(row_count) as nb_lignes from `VOTRE_DATASET.__TABLES__` group by table_id order by taille_GB desc
Pour plusieurs dataset, afficher le nombre de tables, le volume et le nombre de lignes respectifs
sqlselect dataset_id, count(*) as tables, sum(row_count) as total_lignes, round(sum(size_bytes)/(1024*1024*1024),3) as taille_GB from ( select * from `VOTRE_DATASET.__TABLES__` union all select * from `UN_AUTRE_DATASET.__TABLES__` /*union all select * from `DATASET_TER.__TABLES__` */ ) group by 1 order by total_lignes DESC