Intégration BigQuery pour les utilisateurs Python

Collaboration entre Python et BigQuery

La combinaison de Python et de BigQuery convient parfaitement à l'analyse des données.

Python ne convient pas pour gérer des données trop volumineuses, mais si vous laissez BigQuery faire uniquement cette partie et découpez les données en petits morceaux, vous pouvez faire ce que vous voulez avec Python.

La question est de savoir comment Python et BigQuery fonctionnent ensemble, mais il existe deux façons principales de le faire.

  1. Utilisez la bibliothèque d'intégration BigQuery de Python
  2. Utilisez Google Cloud Datalab

2 est particulièrement recommandé pour ceux qui sont habitués à utiliser Jupyter Notebook.

1. Utilisez la bibliothèque d'intégration BigQuery de Python

Bibliothèque recommandée

Il existe plusieurs bibliothèques pour accéder à BigQuery à partir de Python. Par exemple, BigQuery-Python, bigquery_py.

Cependant, en fait __ le plus simple et le plus recommandé __ est le seul module de Pandas.io pandas.io.gbq .gbq.read_gbq.html). Il fonctionne bien avec les objets DataFrame et est très facile à authentifier, c'est donc génial que vous puissiez l'utiliser sans vous soucier des choses difficiles.

Comment authentifier pandas.io.gbq

pandas.io.Tout ce dont vous avez besoin pour utiliser gbq est l'ID de projet BigQuery.


 La notation est la suivante.
 Dans cet exemple, le résultat de `` `` SELECT * FROM nomtable``` est stocké dans` `` data_frame```, puis il peut être utilisé comme un objet DF normal.
   

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

#requêtes et projets basés sur str_identifiant requis
data_frame = pd.read_gbq(query, 'project-id')

Lorsqu'il est exécuté, il renvoie des statistiques simples du processus de requête. (Si vous souhaitez masquer les statistiques, spécifiez verbose = False comme argument)

Exemple d'exécution image

L'exécution de pd.read_gbq ouvrira l'écran d'authentification du compte Google dans votre navigateur. Si vous vous connectez avec un compte pouvant accéder au projet, l'authentification liée sera terminée et le processus démarrera.

À ce stade, le format json `` fichier d'informations d'identification '' est craché dans le dossier de travail. Tant que vous avez ce fichier, vous pouvez lancer la requête plusieurs fois sans ré-authentification. Inversement, si ce fichier est remis, BigQuery sera utilisé sans autorisation et vous mourrez, alors faites attention à la gestion du fichier. http://qiita.com/itkr/items/745d54c781badc148bb9

L'écriture de Python vers BigQuery est également possible

Vous pouvez également facilement écrire un objet Python DataFrame sous forme de table sur BigQuery. Document officiel de la Bibliothèque

from pandas.io import gbq
gbq.to_gbq(df, 'Table à laquelle écrire', 'ID du projet')

Avec cela seul, vous pouvez renvoyer l'objet DF utilisé en Python à BigQuery.

Quand vous pouvez le faire jusqu'à présent, par exemple

(1) Récupérer les données des fonctionnalités utilisateur à partir de BigQuery (lire)_bgq)
↓
② Connectez et traitez les données avec Python(pandas)
↓
③ Étiqueter les utilisateurs avec un modèle d'apprentissage automatique(scikielearn)
↓
④ Renvoyez le résultat étiqueté à BigQuery(gbq.to_gbq)

Vous pourrez faire des choses comme celle-ci relativement facilement. Hmmm merveilleux Pandas est vraiment pratique

2. Utilisez Google Cloud Datalab

image

Qu'est-ce que Cloud Datalab

Datalab est un environnement d'analyse cloud interactif basé sur jupyter notebook (anciennement iPython-Notebook) construit sur Google Compute Engine. L'opération se fait en écrivant le code dans une interface appelée "Notebook" qui peut être visualisée et décrite avec un navigateur.

En gros, il présente les avantages suivants.

Je ne pense pas qu'il soit facile de lire le texte, donc c'est peut-être le plus rapide pour regarder la vidéo ou l'image.

[Vidéo] https://www.youtube.com/watch?v=RzIjz5HQIx4

[Image de l'exemple d'utilisation] image

Les caractères sur la première ligne sont Markdown,
La première cellule est écrite en SQL et la deuxième cellule est écrite en Python
Les graphiques, etc. sont également affichés en ligne
(Bien sûr, non seulement des graphiques mais également des tableaux peuvent être affichés)

Comment commencer

Étant en version bêta (?), Vous ne pouvez pas activer les fonctionnalités directement depuis la console GCP Sélectionnez un projet sur cette page et Déployez pour utiliser la fonction

De plus, il semble que seuls les propriétaires disposant de droits de propriété ou de droits d'édition puissent activer la fonction Une fois déployé dans le projet, il sera disponible pour tous les membres du projet

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.

Image de l'écran de démarrage image

Que se passe-t-il lorsque vous commencez

environnement

Une instance de Datalab est lancée sur Google Compute Engine et l'environnement Datalab est construit dessus. L'interface Datalab peut être exploitée à partir d'un navigateur. (Bien sûr, la connexion SSH est également possible dans cet environnement)

Le notebook (code SQL et Python) écrit sur le navigateur sera enregistré sur cette instance (= tout le monde peut le voir)

La console GCP n'a pas de point d'entrée pour activer la fonctionnalité Datalab, mais lorsque vous utilisez Datalab, vous verrez "Datalab" dans la liste des instances.

Frais

Il y a des frais pour les instances GCE (~ plusieurs milliers de yens? Selon les spécifications de l'instance) Bien sûr, vous serez également facturé pour accéder à BigQuery.

Officiel Datalab

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.

Informations de référence sur d'autres entreprises qui semblent être utilisées (nationales)

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

Recommended Posts

Intégration BigQuery pour les utilisateurs Python
30/10/2016 else pour Python3> pour:
python [pour moi]
[python] Obtenir la chronologie Twitter pour plusieurs utilisateurs
EC2 (Python3) -> BigQuery
Fiche compatible avec le code R pour les utilisateurs de Python
À propos de Python for loop
Intégration Vue-Cli et Python
À propos de Python, pour ~ (plage)
Manuel python pour les débutants
Refactoring des outils utilisables avec Python
Toolchain pour Python pour Android
Utilisez BigQuery depuis Python.
test de coopération de balises python
OpenCV pour les débutants en Python
Installez Python (pour Windows)
[Python] pour une erreur d'instruction
Maintenance de l'environnement Python pour les projets
[BigQuery] Comment utiliser l'API de BigQuery pour Python -Création de table-
Connectez-vous à BigQuery avec Python
Mémo Python (pour moi): Array
Prise en charge de Fabric pour Python 3
Liste Python, pour instruction, dictionnaire
Python pour l'analyse des données Chapitre 4
Flux d'apprentissage pour les débutants en Python
Procédure d'installation de Python 3.6 [pour Windows]
Plan d'apprentissage Python pour l'apprentissage de l'IA
Configurer pour Mac (Python)
Mémo Python Tkinter (pour moi)
Installation d'OpenCV3 pour Python3 @macOS
Mémo de code personnel Python
Balise xmp [Python] pour les photos
Construction de l'environnement Python pour Mac
Techniques de tri en Python
pp4 (puissance python pour tout)
Construction de l'environnement Python3 (pour les débutants)
Feuille de route pour la publication de packages Python
Installation de la série Python 3 pour Mac
Python #function 2 pour les super débutants
Modèle Python pour Codeforces-test manuel-
Grammaire de base Python pour les débutants
Notes depuis 3 mois depuis que j'ai commencé Python
Mise à jour automatique de l'application Qt pour Python
Python pour l'analyse des données Chapitre 2
Pandas 100 coups pour les débutants en Python
La recommandation de Checkio pour apprendre Python
Arguments de mots-clés pour les fonctions Python
[Pour organiser] Environnement de développement Python
[Python] Exemple de code pour la grammaire Python
Python #function 1 pour les super débutants
[Python / PyQ] 4. liste, pour instruction
Serveur HTTP simple pour python
[Python + Selenium] Conseils pour le grattage
#List Python pour les super débutants
~ Conseils pour les débutants de Python présentés avec amour par Pythonista ③ ~
Extraire uniquement Python pour le prétraitement
Mise en retrait des scripts python
Introduction à Python pour, pendant
À propos de "for _ in range ():" de python
tesseract-OCR pour Python [version japonaise]