Interrogation de plusieurs tables dans Big Query
Comme il n'est pas possible de mettre à jour les données dans un tableau dans BigQuery, et prend en charge uniquement ajouter mécanisme, j'ai décidé de créer de nouvelles tables sur une base mensuelle. Supposons donc que pour l'année 2012, les tables seraient (tbl_012012
tbl_022012
tbl_032012
,...tbl_122012
). Chaque enregistrement sera stockée date timestamp
comme une chaîne de caractères.
Maintenant, si ma demande veut récupérer les enregistrements allant de janvier 2012(tbl_012012
) Mars 2012(tbl_032012
), sera BigQuery API automatiquement traverser le désiré des tables via SQL unique requête de plage ou je vais écrire plusieurs requêtes SQL supplémentaire avec le code de l'application pour récupérer chaque résultat de la requête, puis de les agréger en tout?
source d'informationauteur Pratik Borkar | 2012-11-01
Vous devez vous connecter pour publier un commentaire.
Une requête SQL peut faire référence à plusieurs tables. Juste séparer chaque table avec une virgule dans la clause from de la requête à travers tous les tableaux.
Vous pouvez également utiliser un Tableau Générique de la Fonction. Voici un exemple de la docs pour StandardSQL:
Et voici un exemple similaire pour LegacySQL (docs).
Cela permettra d'interroger les tables:
Il ya quelques autres options sur le docs. Je voudrais vous recommandons de vérifier.
Ici est un extrait de démontrer un exemple des multiples sélectionnez:
2017 mise à jour:
Avec BigQuery #standardSQL, vous pouvez utiliser le standard
UNION ALL
passer par de multiples tables, ou vous pouvez utiliser un*
pour correspondre à toutes les tables qui partagent le même préfixe. Lors de l'utilisation de la*
matcher, vous aurez également accès à la méta-colonne_TABLE_SUFFIX
- à savoir la table dans laquelle les lignes sont venus.Standard SQL.
Utilisez un caractère générique.