Apprenez à accéder aux données et à les interroger à l'aide de Google BigQuery. Avec des exemples en Python et R

Bonjour, Habr!



Nous avons récemment publié un livre détaillé sur l'utilisation de l'entrepôt de données Google BigQuery . Aujourd'hui, nous avons décidé de revenir brièvement sur ce sujet et de publier un petit cas sur la façon d'interroger les données BigQuery en Python et R.



Faites-nous savoir dans les commentaires si vous êtes intéressé par un article sur l'apprentissage automatique à l'aide de BigQuery







Aperçu



Dans cet article, nous verrons comment charger des données Google BigQuery à l'aide de Python et R, puis nous parlerons d'interroger les données pour tirer des informations utiles. Nous utiliserons la bibliothèque Google Cloud BigQuery pour nous connecter à BigQuery Python et la bibliothèque bigrquery pour faire de même dans R.



Nous aborderons également deux étapes de la manipulation des données BigQuery à l'aide de Python / R:



  • Connectivité et accès aux données Google BigQuery
  • Interroger des données avec Python / R


Cet article suppose que toutes vos données utilisateur sont stockées dans Google BigQuery.



Python



Python est l'un des langages à usage général les plus populaires pour la manipulation de données. Il bénéficie de l'attention et de la demande en raison de sa flexibilité et de sa facilité d'utilisation, et en science des données, il dispose d'une grande variété de bibliothèques et d'outils pour interagir avec des systèmes tiers.



Se connecter à Google BigQuery avec Python



Pour interroger des données Google BigQuery à l'aide de Python, vous devez connecter le client Python à votre instance BigQuery. Cela utilise la bibliothèque cliente cloud pour l'API Google BigQuery. Il existe également des solutions alternatives pour se connecter à BigQuery à l'aide de Python; par exemple, la bibliothèque BigQuery-Python de tylertreat est excellente.



Nous travaillerons avec la bibliothèque Google Cloud BigQuery car elle est stable et officiellement prise en charge par Google.



Cela suppose que vous avez déjà configuré un environnement de développement Python.

Pour installer la bibliothèque, exécutez la commande suivante sur la ligne de commande:



pip install --upgrade google-cloud-bigquery


Ensuite, nous connectons le client à la base de données. Pour ce faire, vous devez télécharger un fichier JSON contenant les informations d'identification pour le service BigQuery. Si vous n'en avez pas, voici comment en créer un. Ensuite, téléchargez ce fichier JSON sur votre ordinateur local.



Maintenant que tout est configuré, nous procédons à l'initialisation de la connexion. Le code Python suivant est utilisé pour cela:



rom google.cloud import bigquery
	from google.oauth2 import service_account
	credentials = service_account.Credentials.from_service_account_file(
	'path/to/file.json')
	

	project_id = 'my-bq'
	client = bigquery.Client(credentials= credentials,project=project_id)


Dans l'extrait de code ci-dessus, vous devrez également spécifier l' project_idemplacement du fichier JSON avec la clé, en remplaçant « path/to/file.json» par le chemin réellement correct vers le fichier JSON enregistré sur la machine locale.



Dans Google BigQuery, un projet est un conteneur de premier niveau et fournit un contrôle d'accès par défaut sur tous les ensembles de données.



Interroger des données BigQuery avec Python



Maintenant que notre client BigQuery est configuré et prêt à être utilisé, nous pouvons interroger de nombreuses données BigQuery.



Cela utilise une méthode de requête qui place la tâche de requête dans une file d'attente BigQuery. Les demandes sont ensuite exécutées de manière asynchrone - cela signifie que nous ne spécifions aucun délai et que le client attend que le travail soit terminé. Une fois que cela se produit, la méthode renvoie une instance Query_Jobcontenant les résultats.



Vous pouvez en savoir plus sur le fonctionnement de cette méthode dans la documentation officielle ici .



Voici à quoi ressemble le code d'intérêt Python:



query_job = client.query("""
	   SELECT *
	   FROM dataset.my_table
	   LIMIT 1000 """)
	

	results = query_job.result() #   .


Veuillez noter que la requête ci-dessus utilise par défaut la syntaxe SQL standard. Si vous souhaitez utiliser l'ancien SQL, le code ressemblera à ceci:



job_config.use_legacy_sql = True
	query_job = client.query("""
	   SELECT *
	   FROM dataset.my_table
	   LIMIT 1000""", job_config = job_config)
	

	results = query_job.result() #   .


R



Le langage R est une alternative populaire à Python et est activement utilisé dans la science des données. Si vous êtes intéressé par une analyse statistique détaillée et méthodique des données, peu de langages peuvent rivaliser avec R.



Lorsque vous travaillez avec Google BigQuery, le langage R offre également une bibliothèque fiable et facile à utiliser pour interroger et manipuler les données. Ici, nous travaillerons avec la bibliothèque bigrquery créée et maintenue par Hadley Wickham, directeur de recherche chez RStudio.



Cela suppose que vous avez déjà configuré votre environnement de développement dans R. Sinon, utilisez ce guide pour configurer RStudio.



Connectez-vous à Google BigQuery avec R



Pour installer bigrquery, exécutez la commande suivante à partir de la console R:



install.packages(“bigrquery”)


C'est si simple! Nous sommes prêts à partir.



Comme pour Python, notre autorisation client R est requise pour accéder aux services Google Cloud. Comme indiqué dans la documentation bigrquery, suivez l'invite de la console R pour ouvrir l'URL d'autorisation, puis copiez le code dans la console.



Attention: cette autorisation ne doit être effectuée qu'une seule fois. Toutes les demandes ultérieures mettront automatiquement à jour les informations d'identification d'accès.



Interroger des données BigQuery avec R



Pour interroger des données BigQuery dans R, procédez comme suit:



  • Nous indiquerons l'ID du projet depuis la console Google Cloud, comme cela a été fait en Python.
  • Nous formerons une chaîne de requête avec laquelle nous demanderons des données.
  • Appelons-le query_execavec notre ID de projet et notre chaîne de requête.


Voici le code pour faire tout cela:



#  
	library(bigrquery)
	

	#   ID  
	project_id <- "your-project-id" 
	

	#  
	sql_string <- "SELECT * FROM dataset.my_table LIMIT 1000"
	

	#     
	query_results <- query_exec(sql_string, project = project_id, useLegacySql = FALSE)


Comme avec Python, vous pouvez exécuter des requêtes écrites en ancien SQL. Vous pouvez également modifier la valeur useLegacySqlde TRUEvotre fonction query_exec.



Conclusion



Nous avons donc examiné à quel point il est facile et simple de travailler avec des données enregistrées dans Google BigQuery, en y faisant référence en Python et R.



Dans ces deux langages, il n'est pas difficile de construire un modèle statistique basé sur des données traitées de cette manière, et d'utiliser le modèle lui-même dans des finalités différentes: comprendre le comportement de l'utilisateur dans l'application, prédire le taux de churn, etc.



All Articles