BigQuery-Integration für Python-Benutzer

Zusammenarbeit zwischen Python und BigQuery

Die Kombination von Python und BigQuery passt gut zur Datenanalyse.

Python ist nicht für die Verarbeitung zu großer Daten geeignet. Wenn Sie jedoch BigQuery nur diesen Teil ausführen lassen und die Daten in kleine Teile ausschneiden, können Sie mit Python alles tun, was Sie wollen.

Die Frage ist, wie Python und BigQuery zusammenarbeiten, aber es gibt zwei Möglichkeiten, dies zu tun.

  1. Verwenden Sie die BigQuery-Integrationsbibliothek von Python
  2. Verwenden Sie Google Cloud Datalab.

2 wird besonders für diejenigen empfohlen, die es gewohnt sind, Jupyter Notebook zu verwenden.

1. Verwenden Sie die BigQuery-Integrationsbibliothek von Python

Empfohlene Bibliothek

Es gibt mehrere Bibliotheken, um BigQuery von Python aus zu erreichen. Zum Beispiel BigQuery-Python, bigquery_py.

Tatsächlich ist das einfachste und empfohlene __ jedoch das eine Modul von Pandas.io pandas.io.gbq. .gbq.read_gbq.html). Es funktioniert gut mit DataFrame-Objekten und ist sehr einfach zu authentifizieren. Daher ist es großartig, dass Sie es verwenden können, ohne sich um schwierige Dinge kümmern zu müssen.

So authentifizieren Sie pandas.io.gbq

pandas.io.Alles, was Sie zur Verwendung von gbq benötigen, ist die BigQuery-Projekt-ID.


 Die Notation lautet wie folgt.
 In diesem Beispiel wird das Ergebnis von `` `SELECT * FROM tablename``` in`` data_frame``` gespeichert und kann dann als normales DF-Objekt verwendet werden.
   

```python
import pandas as pd
query = 'SELECT * FROM tablename'

#str-basierte Abfragen und Projekte_ID erforderlich
data_frame = pd.read_gbq(query, 'project-id')

Bei der Ausführung werden einfache Statistiken des Abfrageprozesses zurückgegeben. (Wenn Sie die Statistik ausblenden möchten, geben Sie als Argument verbose = False an.)

Ausführungsbeispiel image

Wenn Sie pd.read_gbq ausführen, wird der Authentifizierungsbildschirm für das Google-Konto in Ihrem Browser geöffnet. Wenn Sie sich mit einem Konto anmelden, das auf das Projekt zugreifen kann, wird die verknüpfte Authentifizierung abgeschlossen und der Vorgang gestartet.

Zu diesem Zeitpunkt wird das json-Format "Anmeldeinformationsdatei" in den Arbeitsordner ausgespuckt. Solange Sie über diese Datei verfügen, können Sie die Abfrage ohne erneute Authentifizierung mehrmals ausführen. Um es anders herum auszudrücken: Wenn diese Datei übergeben wird, wird BigQuery verwendet und Sie sterben. Seien Sie also vorsichtig, wenn Sie die Datei verwalten. http://qiita.com/itkr/items/745d54c781badc148bb9

Das Schreiben von Python auf die BigQuery-Seite ist ebenfalls möglich

Sie können ein Python DataFrame-Objekt auch einfach als Tabelle in BigQuery schreiben. Offizielles Dokument der Bibliothek

from pandas.io import gbq
gbq.to_gbq(df, 'Tabelle zum Schreiben', 'Projekt-ID')

Allein damit können Sie das in Python verwendete DF-Objekt an BigQuery zurückgeben.

Wenn Sie das zum Beispiel so weit können

(1) Abrufen von Benutzerfeature-Daten aus BigQuery (Lesen)_bgq)
↓
② Verbinden und verarbeiten Sie Daten mit Python(pandas)
↓
③ Beschriften Sie Benutzer mit einem Modell für maschinelles Lernen(scikielearn)
↓
④ Geben Sie das beschriftete Ergebnis an BigQuery zurück(gbq.to_gbq)

Sie werden in der Lage sein, solche Dinge relativ einfach zu tun. Hmmm wunderbar Pandas ist wirklich praktisch

2. Verwenden Sie Google Cloud Datalab

image

Was ist Cloud Datalab?

Datalab ist eine interaktive Cloud-Analyseumgebung, die auf jupyter notebook (ehemals iPython-Notebook) basiert und auf Google Compute Engine basiert. Der Vorgang erfolgt durch Schreiben des Codes in eine Schnittstelle namens "Notebook", die mit einem Browser angezeigt und beschrieben werden kann.

In etwa hat es die folgenden Vorteile.

Ich denke nicht, dass es einfach ist, den Text zu lesen, daher ist es möglicherweise am schnellsten, das Video oder Bild anzusehen.

[Video] https://www.youtube.com/watch?v=RzIjz5HQIx4

[Bild des Verwendungsbeispiels] image

Die Zeichen in der ersten Zeile sind Markdown,
Die erste Zelle ist in SQL und die zweite Zelle in Python geschrieben
Grafiken usw. werden auch inline angezeigt
(Natürlich können nicht nur Grafiken, sondern auch Tabellen angezeigt werden.)

Wie man anfängt

In der Beta (?) Können Sie Funktionen nicht direkt über die GCP-Konsole aktivieren Wählen Sie auf dieser Seite ein Projekt aus und stellen Sie es bereit, um die Funktion zu verwenden

Darüber hinaus scheinen nur Eigentümer mit Eigentümer- oder Bearbeitungsberechtigung die Funktion aktivieren zu können Nach der Bereitstellung für das Projekt steht es allen Mitgliedern des Projekts zur Verfügung

Cloud Datalab is deployed as a Google App Engine application module in the selected project. The Google Compute Engine and Google BigQuery APIs must be enabled for the project, and you must be authorized to use the project as an owner or editor.

Startbildschirmbild image

Was passiert, wenn Sie anfangen?

Umgebung

Eine Instanz für Datalab wird in Google Compute Engine gestartet, und die Datalab-Umgebung basiert darauf. Die Datalab-Oberfläche kann über einen Browser bedient werden. (Natürlich ist auch eine SSH-Verbindung zu dieser Umgebung möglich.)

Im Browser geschriebenes Notebook (SQL- und Python-Code) wird in dieser Instanz gespeichert (= jeder kann es sehen)

Die GCP-Konsole hat keinen Einstiegspunkt, um die Databab-Funktion zu aktivieren. Bei Verwendung von Datalab wird jedoch "Datalab" in der Instanzliste angezeigt.

Gebühr

Für GCE-Instanzen wird eine Gebühr erhoben (~ mehrere tausend Yen? Abhängig von den Spezifikationen der Instanz). Natürlich wird Ihnen auch das Schlagen von BigQuery in Rechnung gestellt.

Datalab offiziell

You only pay for the resources you use to run Cloud Datalab, as follows:

Compute Resources Cloud Datalab uses Google App Engine and Google Compute Engine resources to run within your project. When you have Cloud Datalab instances deployed within your project, you incur compute charges —the charge for one VM per Cloud Datalab instance

Google BigQuery -You incur BigQuery charges when issuing SQL queries within Cloud Datalab

Other Resources —You incur charges for other API requests you make within the Cloud Datalab environment.

Referenzinformationen zu anderen Unternehmen, die anscheinend verwendet werden (Inland)

Voyage Group http://www.slideshare.net/hagino_3000/cloud-datalabbigquery Vasily http://tech.vasily.jp/entry/cloud-datalab Wunderplanet http://wonderpla.net/blog/engineer/Try_GoogleCloudDatalab/

Recommended Posts

BigQuery-Integration für Python-Benutzer
2016-10-30 sonst für Python3> für:
Python [für mich]
[Python] Twitter-Timeline für mehrere Benutzer abrufen
EC2 (Python3) -> BigQuery
R-Code-kompatibles Blatt für Python-Benutzer
Über Python für Schleife
Vue-Cli- und Python-Integration
Über Python für ~ (Bereich)
Python Lehrbuch für Anfänger
Refactoring-Tools, die mit Python verwendet werden können
Toolchain für Python für Android
Verwenden Sie BigQuery aus Python.
Python-Tag-Kooperationstest
OpenCV für Python-Anfänger
Installieren Sie Python (für Windows)
[Python] für Anweisungsfehler
Wartung der Python-Umgebung für Projekte
[BigQuery] Verwendung der BigQuery-API für die Python-Tabellenerstellung-
Stellen Sie mit Python eine Verbindung zu BigQuery her
Python-Memo (für mich): Array
Fabric unterstützt Python 3
Python-Liste, für Anweisung, Wörterbuch
Python für die Datenanalyse Kapitel 4
Lernablauf für Python-Anfänger
Installationsverfahren für Python 3.6 [für Windows]
Python-Lernplan für KI-Lernen
Für Mac einrichten (Python)
Python Tkinter Memo (für mich)
OpenCV3-Installation für Python3 @macOS
Persönliches Python-Code-Memo
Aufbau einer Python-Umgebung für Mac
Techniken zum Sortieren in Python
pp4 (Python Power für alles)
Python3-Umgebungskonstruktion (für Anfänger)
Roadmap zum Veröffentlichen von Python-Paketen
Installation der Python 3-Serie für Mac
Python #Funktion 2 für Super-Anfänger
Python-Vorlage für Codeforces-manuelle Test-
Grundlegende Python-Grammatik für Anfänger
Notizen für 3 Monate, seit ich Python gestartet habe
Qt für Python App Selbstaktualisierung
Python für die Datenanalyse Kapitel 2
100 Pandas klopfen für Python-Anfänger
Checkios Empfehlung zum Erlernen von Python
Schlüsselwortargumente für Python-Funktionen
[Zum Organisieren] Python-Entwicklungsumgebung
[Python] Beispielcode für die Python-Grammatik
Python #Funktion 1 für Super-Anfänger
[Python / PyQ] 4. Liste zur Anweisung
Einfacher HTTP-Server für Python
[Python + Selen] Tipps zum Scraping
Python #Liste für Super-Anfänger
~ Tipps für Python-Anfänger mit Liebe von Pythonista ③ ~
Extrahieren Sie nur Python für die Vorverarbeitung
Einrückungsformatierung von Python-Skripten
Einführung in Python For, While
Über "für _ in range ():" von Python
tesseract-OCR für Python [japanische Version]