Outils d'analyse programmatiques

Ce document décrit plusieurs manières d'écrire et d'exécuter du code pour analyser des données gérées dans BigQuery.

Bien que SQL soit un langage de requête puissant, les langages de programmation tels que Python, Java ou R fournissent des syntaxes et de nombreuses fonctions statistiques intégrées que les analystes de données pourraient trouver plus expressives et plus faciles à manipuler pour certains types d'opérations d'analyse de données.

De même, bien que les tableurs soient largement utilisés, d'autres environnements de programmation, tels que les notebooks, peuvent parfois offrir un environnement plus flexible pour effectuer certaines opérations d'analyse et d'exploration de données complexes.

Notebooks Jupyter

Jupyter est une application Web Open Source qui permet de publier des notebooks contenant du code en direct, des descriptions textuelles et des visualisations. Cette plate-forme est couramment utilisée par les data scientists, les spécialistes du machine learning et les étudiants pour le nettoyage et la transformation de données, les simulations numériques, la modélisation statistique, la visualisation de données, le machine learning, etc.

Les notebooks Jupyter reposent sur le noyau IPython, une puissante interface système interactive qui est capable d'interagir directement avec BigQuery à l'aide des commandes magiques IPython pour BigQuery. Vous pouvez également accéder à BigQuery à partir de vos instances de notebooks Jupyter en installant l'une des bibliothèques clientes BigQuery disponibles. Vous pouvez visualiser des données SIG BigQuery à l'aide de notebooks Jupyter via l'extension GeoJSON. Pour plus de détails sur l'intégration de BigQuery, reportez-vous au tutoriel Visualiser des données BigQuery dans un notebook Jupyter.

Notebook Jupyter : diagramme présentant une visualisation de données SIG BigQuery

JupyterLab est une interface utilisateur Web permettant de gérer des documents et activités, par exemple des notebooks Jupyter, des éditeurs de texte, des terminaux et des composants personnalisés. Avec JupyterLab, vous pouvez organiser plusieurs documents et activités côte à côte dans votre espace de travail à l'aide d'onglets et de séparateurs.

JupyterLab : utilisation d'onglets et de séparateurs pour organiser plusieurs documents et activités côte à côte dans l'espace de travail

Vous pouvez déployer des notebooks Jupyter et des environnements JupyterLab sur Google Cloud à l'aide de l'un des produits suivants :

Apache Zeppelin

Apache Zeppelin est un projet Open Source qui propose des notebooks Web pour l'analyse de données. Vous pouvez déployer une instance d'Apache Zeppelin sur Dataproc en installant le composant Zeppelin facultatif. Par défaut, les notebooks sont enregistrés dans Cloud Storage, dans le bucket de préproduction Dataproc (spécifié par l'utilisateur ou créé automatiquement lors de la création du cluster). Vous pouvez modifier l'emplacement du notebook en ajoutant la propriété zeppelin:zeppelin.notebook.gcs.dir lors de la création du cluster. Pour plus d'informations sur l'installation et la configuration d'Apache Zeppelin, consultez le guide du composant Zeppelin. Pour obtenir un exemple, consultez la page Analyser des ensembles de données BigQuery à l'aide de l'interpréteur BigQuery pour Apache Zeppelin.

Analyse SQL des données de la table, affichée dans Zeppelin

Apache Hadoop, Apache Spark et Apache Hive

Dans le cadre de la migration de votre pipeline d'analyse de données, il se peut que vous souhaitiez migrer certains anciens jobs Apache Hadoop, Apache Spark et Apache Hive qui doivent traiter directement des données hébergées dans votre entrepôt de données. Par exemple, vous pouvez avoir besoin d'extraire des caractéristiques pour vos charges de travail de machine learning.

Dataproc vous permet de déployer des clusters Hadoop et Spark entièrement gérés de manière efficace et économique. Dataproc s'intègre aux connecteurs BigQuery Open Source. Ces connecteurs utilisent l'API BigQuery Storage, qui transmet les données en parallèle directement depuis BigQuery via gRPC.

Lorsque vous migrez vos charges de travail Hadoop et Spark existantes vers Dataproc, vous pouvez vérifier que les dépendances des charges de travail sont bien prises en compte par les versions de Dataproc compatibles. Si vous avez besoin d'installer un logiciel personnalisé, vous pouvez envisager de créer une image Dataproc personnalisée, d'écrire vos propres actions d'initialisation ou de spécifier des conditions requises personnalisées pour le package Python.

Pour commencer, consultez les guides de démarrage rapide de Dataproc et les exemples de code de connecteur BigQuery.

Apache Beam

Apache Beam est un framework Open Source qui fournit de nombreuses primitives de fenêtrage et d'analyse de sessions, ainsi qu'un écosystème de connecteurs de sources et de récepteurs, parmi lesquels un connecteur pour BigQuery. Apache Beam permet de transformer et d'enrichir des données en mode flux (temps réel) et lot (historique) avec un niveau identique de fiabilité et d'expressivité.

Dataflow est un service entièrement géré permettant d'exécuter des tâches Apache Beam à grande échelle. L'approche sans serveur de Dataflow permet d'éliminer les coûts opérationnels grâce à la gestion automatique des besoins de performances, d'évolutivité, de disponibilité, de sécurité et de conformité. Vous pouvez ainsi vous concentrer sur la programmation plutôt que sur la gestion des clusters de serveurs.

Graphique d'exécution comportant une transformation composite développée (MakeMapView) La sous-transformation créant l'entrée secondaire (CreateDataflowView) est sélectionnée et les métriques des entrées secondaires sont affichées dans l'onglet Step (Étape).

Pour envoyer des tâches Dataflow, vous pouvez utiliser l'interface de ligne de commande, le SDK Java ou le SDK Python.

Si vous souhaitez migrer vos requêtes et pipelines de données depuis d'autres frameworks vers Apache Beam et Dataflow, renseignez-vous sur le modèle de programmation Apache Beam et consultez la documentation Dataflow officielle.

RStudio

Les data scientists utilisent souvent le langage de programmation R pour créer des outils d'analyse de données et des applications statistiques. RStudio développe des outils gratuits et ouverts pour R et des produits professionnels prêts à l'emploi pour les équipes désireuses de faire évoluer leurs solutions métier et de partager leur travail. Les produits RStudio, tels que RStudio Server Pro, simplifient l'analyse de données avec R et fournissent de puissants outils de publication et de partage.

RStudio Server Pro est un environnement de développement intégré (IDE) à la demande et sous licence commerciale. Il offre les fonctionnalités du célèbre IDE Open Source RStudio, un fonctionnement clé en main, une sécurité renforcée, la possibilité de gérer plusieurs versions et sessions R, etc.

Vous pouvez déployer le composant RStudio Server Pro pour Google Cloud à partir de Google Cloud Marketplace. Cette version est identique à RStudio Server Pro, mais elle offre plus de commodité aux data scientists. Par exemple, ils peuvent directement préinstaller plusieurs versions de R ainsi que les bibliothèques système les plus courantes. Elle inclut également bigrquery, le package BigQuery pour R, lequel fournit les backends DBI et dplyr qui permettent d'interagir avec BigQuery à l'aide d'instructions SQL de bas niveau ou de verbes dplyr (langage de haut niveau). Ce package simplifie l'utilisation des données stockées dans BigQuery en vous permettant d'interroger les tables BigQuery et d'extraire des métadonnées relatives à vos projets, ensembles de données, tables et tâches. Pour en savoir plus, consultez le guide officiel Premiers pas avec RStudio Server Pro pour Google Cloud et les Questions fréquentes sur RStudio Server Pro pour Google Cloud.

Vous pouvez également installer la version Open Source de RStudio Server sur un cluster Dataproc. Grâce à l'exécution de RStudio sur Dataproc, vous pouvez bénéficier de l'autoscaling de Dataproc. Avec l'autoscaling, vous pouvez vous cantonner à un cluster de taille minimale lorsque vous développez votre logique SparkR. Une fois que vous avez envoyé votre tâche pour un traitement à grande échelle, vous n'avez besoin d'effectuer aucune action supplémentaire, ni de vous préoccuper de la modification de votre serveur. Une fois que vous avez envoyé votre tâche SparkR à RStudio, le cluster Dataproc s'adapte en fonction des besoins de votre tâche selon les intervalles que vous avez définis. Pour en savoir plus sur l'intégration de RStudio à Dataproc, lisez l'annonce officielle de lancement.

Autres ressources

BigQuery offre un large éventail de bibliothèques clientes dans plusieurs langages de programmation, tels que Java, Go, Python, JavaScript, PHP et Ruby. Certains frameworks d'analyse de données tels que pandas fournissent des plug-ins qui interagissent directement avec BigQuery. Pour obtenir des exemples pratiques, consultez le tutoriel Visualiser des données BigQuery dans un notebook Jupyter.

Enfin, si vous préférez écrire vos programmes dans un environnement shell, vous pouvez utiliser l'outil de ligne de commande bq.