2017-03-06 1 views
1

J'ai de grandes tables partitionnées et essayer de comprendre combien d'entrées sont dans chaque day-partition. Jusqu'à présent, j'ai utilisé un for loop dans un script, mais il doit y avoir une façon plus simple de le faire.BigQuery - combien d'entrées par partition?

Google ne m'a pas aidé. Est-ce que quelqu'un sait la bonne requête?

Merci

Répondre

2

vous pouvez exécuter la requête suivante pour compter le nombre d'entrées que vous avez dans chaque partition

#standardSQL 
SELECT 
    _PARTITIONTIME AS pt, 
    COUNT(1) 
FROM 
    `dataset.table` 
GROUP BY 
    1 
ORDER BY 
    1 DESC 

et

#legacySQL 
SELECT 
    _PARTITIONTIME AS pt, 
    COUNT(1) 
FROM 
    [dataset:table] 
GROUP BY 
    1 
ORDER BY 
    1 DESC 

retourne une table comme celui-ci, s'il vous plaît noter que les entrées NULL sont toujours dans le tampon de diffusion. Astuce: pour obtenir des enregistrements qui sont en streaming nous tampons une requête avec NULL.

+-------------------------+-----+--+ 
| 2017-02-14 00:00:00 UTC | 252 | | 
+-------------------------+-----+--+ 
| 2017-02-13 00:00:00 UTC | 257 | | 
+-------------------------+-----+--+ 
| 2017-02-12 00:00:00 UTC | 188 | | 
+-------------------------+-----+--+ 
| 2017-02-11 00:00:00 UTC | 234 | | 
+-------------------------+-----+--+ 
| 2017-02-10 00:00:00 UTC | 107 | | 
+-------------------------+-----+--+ 
| null     | 13 | | 
+-------------------------+-----+--+ 
+0

Y a-t-il une raison particulière pour laquelle vous avez utilisé SQL hérité? –

+1

ajouté standard ainsi – Pentium10

+0

Brilliant @ Pentium10! –