from google.colab import auth
auth.authenticate_user()
Pour utiliser BigQuery de Colab, vous devez d'abord vous authentifier.
C'est un code court donc c'est difficile à retenir, mais il y a un extrait de code que vous pouvez utiliser pour ajouter rapidement.
Vous pouvez utiliser la Magic Command de google.cloud.bigquery
pour obtenir le résultat de la requête en tant que Pandas DataFrame en une seule fois.
%%bigquery df --project myproject
SELECT * FROM `myproject.foo.logs`
Un DataFrame est créé avec le nom spécifié dans l'argument de la commande Magic et peut être référencé du côté Python.
df.head(5)
%%bigquery --project myproject df --params {"user_id": 123}
SELECT * FROM `myproject.foo.logs` WHERE user_id = @user_id
Vous pouvez également passer des paramètres de type dictionnaire avec --params
. Les paramètres passés peuvent être référencés par @parameter name.
import os
df.to_csv(os.path.join("output.csv"), index=False)
Le DataFrame acquis peut être écrit dans un fichier CSV avec to_csv
. Si vous montez Google Drive, vous pouvez l'exporter sur Google Drive, ce qui est pratique.
Selon le contenu de l'analyse, la création d'une table intermédiaire peut économiser la quantité de calcul, et les résultats intermédiaires peuvent être visualisés / vérifiés pour améliorer l'efficacité.
Dans la dernière google-cloud-bigquery, en spécifiant --destination_table
, une table est créée telle quelle à partir du résultat de l'exécution de la requête. Vous pouvez, mais à partir de juin 2020, cette option n'est pas disponible dans la version de google-cloud-bigquery
qui est incluse par défaut dans Google Colab, alors écrivez du code pour créer une tâche sans utiliser les commandes Magic.
from google.cloud import bigquery
client = bigquery.Client(project="myproject")
table_id = "myproject.foo.purchase_logs"
job_config = bigquery.QueryJobConfig(destination=table_id)
sql = r'''
SELECT transaction_id, user_id, transaction_date, product_id
FROM `myproject.foo.transactions`
WHERE action = "purchase"
'''
query_job = client.query(sql, job_config=job_config)
query_job.result()
Documentation officielle: https://cloud.google.com/bigquery/docs/writing-results?hl=ja
QueryJobConfig [WriteDisposition](https: / Si vous spécifiez WRITE_TRUNCATE
dans /cloud.google.com/bigquery/docs/reference/auditlogs/rest/Shared.Types/WriteDisposition), vous pouvez supprimer le contenu et recréer la table si elle existe déjà. (Notez que les données de la table d'origine seront supprimées)
job_config = bigquery.QueryJobConfig(destination=table_id, write_disposition=bigquery.WriteDisposition.WRITE_TRUNCATE)
Si WRITE_APPEND
est spécifié, plus de données seront ajoutées à la table existante.
Si vous souhaitez créer une table à partir d'un fichier CSV, utilisez la commande bq
bg load. Et téléchargez.
!bq load --project_id=myproject --autodetect --source_format=CSV myproject:foo.products sample.csv
Le contenu du paramètre spécifié est modifié comme il convient en fonction du contenu du CSV à lire.
Si vous spécifiez --replace
, vous pouvez supprimer le contenu de la table si elle existe déjà, puis la recréer.
https://cloud.google.com/bigquery/docs/loading-data-cloud-storage-csv?hl=ja