from google.colab import auth
auth.authenticate_user()
Um BigQuery von Colab verwenden zu können, müssen Sie sich zuerst authentifizieren.
Es ist ein kurzer Code, daher ist es schwer zu merken, aber es gibt einen Code-Ausschnitt, mit dem Sie schnell hinzufügen können.
Sie können den Magic Command von google.cloud.bigquery
verwenden, um das Abfrageergebnis auf einmal als Pandas DataFrame abzurufen.
%%bigquery df --project myproject
SELECT * FROM `myproject.foo.logs`
Ein DataFrame wird mit dem im Argument des Magic-Befehls angegebenen Namen erstellt und kann von der Python-Seite aus referenziert werden.
df.head(5)
%%bigquery --project myproject df --params {"user_id": 123}
SELECT * FROM `myproject.foo.logs` WHERE user_id = @user_id
Sie können auch Wörterbuchparameter mit --params
übergeben. Die übergebenen Parameter können durch den @ Parameternamen referenziert werden.
import os
df.to_csv(os.path.join("output.csv"), index=False)
Der erfasste DataFrame kann mit to_csv
in eine CSV-Datei geschrieben werden. Wenn Sie Google Drive bereitstellen, können Sie es auf Google Drive exportieren, was praktisch ist.
Abhängig vom Inhalt der Analyse kann durch das Erstellen einer Zwischentabelle der Rechenaufwand eingespart werden, und die Zwischenergebnisse können visualisiert / überprüft werden, um die Effizienz zu verbessern.
In der neuesten google-cloud-bigquery wird durch Angabe von "--destination_table" eine Tabelle so erstellt, wie sie aus dem Ausführungsergebnis der Abfrage stammt. Sie können, aber ab Juni 2020 ist diese Option in der Version von "google-cloud-bigquery", die standardmäßig in Google Colab enthalten ist, nicht verfügbar. Schreiben Sie also Code, um einen Job ohne Verwendung von Magic-Befehlen zu erstellen.
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()
Offizielle Dokumentation: https://cloud.google.com/bigquery/docs/writing-results?hl=ja
QueryJobConfig [WriteDisposition](https: / Wenn Sie "WRITE_TRUNCATE" in /cloud.google.com/bigquery/docs/reference/auditlogs/rest/Shared.Types/WriteDisposition angeben, können Sie den Inhalt verwerfen und die Tabelle neu erstellen, falls sie bereits vorhanden ist. (Beachten Sie, dass die Daten in der Originaltabelle verworfen werden.)
job_config = bigquery.QueryJobConfig(destination=table_id, write_disposition=bigquery.WriteDisposition.WRITE_TRUNCATE)
Wenn "WRITE_APPEND" angegeben ist, werden der vorhandenen Tabelle weitere Daten hinzugefügt.
Wenn Sie eine Tabelle aus einer CSV-Datei erstellen möchten, verwenden Sie den Befehl bq
bg load. Und hochladen.
!bq load --project_id=myproject --autodetect --source_format=CSV myproject:foo.products sample.csv
Der Inhalt des angegebenen Parameters wird je nach Inhalt der zu lesenden CSV entsprechend geändert.
Wenn Sie "--replace" angeben, können Sie den Inhalt der Tabelle verwerfen, falls er bereits vorhanden ist, und ihn dann neu erstellen.
https://cloud.google.com/bigquery/docs/loading-data-cloud-storage-csv?hl=ja
Recommended Posts