Interroger des données GitHub avec BigQuery

BigQuery est la base de données d'analyse à faible coût de Google, entièrement gérée et qui ne nécessite aucune opération (NoOps). Avec BigQuery, vous pouvez interroger des téraoctets de données sans avoir à gérer un administrateur de base de données ni aucune infrastructure à gérer. BigQuery est basé sur le code SQL familier et un modèle de facturation à l'utilisation. BigQuery vous permet de vous concentrer sur l'analyse des données pour en dégager des informations pertinentes.

Dans cet atelier, nous allons apprendre à interroger l'ensemble de données public GitHub, l'un des nombreux ensembles de données publics disponibles sur BigQuery.

Points abordés

  • Utiliser BigQuery
  • Écrire une requête pour obtenir des informations sur un ensemble de données volumineux

Prérequis

  • Un projet Google Cloud Platform
  • Un navigateur tel que Chrome ou Firefox

Activer BigQuery

Si vous n'avez pas encore de compte Google (Gmail ou Google Apps), vous devez en créer un.

  • Connectez-vous à la console Google Cloud Platform (console.cloud.google.com), puis accédez à BigQuery. Vous pouvez également ouvrir l'interface utilisateur Web de BigQuery directement en saisissant l'URL suivante dans votre navigateur.
https://console.cloud.google.com/bigquery
  • Acceptez les conditions d'utilisation.
  • Avant de pouvoir utiliser BigQuery, vous devez créer un projet. Suivez les instructions pour créer votre projet.

    Choisissez un nom de projet et notez l'ID du projet.


    L'ID du projet est un nom unique parmi tous les projets Google Cloud. Nous l'appellerons plus tard PROJECT_ID dans cet atelier de programmation.

Cet atelier de programmation utilise des ressources BigQuery associées aux limites du bac à sable BigQuery. Vous n'avez pas besoin d'un compte de facturation. Si vous souhaitez par la suite supprimer les limites du bac à sable, vous pouvez ajouter un compte de facturation en vous inscrivant à l'essai offert de Google Cloud Platform.

Ouvrez l'ensemble de données GitHub dans l'interface utilisateur Web de BigQuery.

https://console.cloud.google.com/bigquery?p=bigquery-public-data&d=github_repos&t=commits&page=table

Obtenez un aperçu des données.

Ouvrez l'éditeur de requête.

saisissez cette requête pour rechercher les messages de commit les plus courants dans l'ensemble de données public GitHub.

SELECT subject AS subject,
  COUNT(*) AS num_duplicates
FROM `bigquery-public-data.github_repos.sample_commits`
GROUP BY subject
ORDER BY num_duplicates DESC
LIMIT 100

L'ensemble de données GitHub étant volumineux, il est utile d'utiliser un plus petit exemple d'ensemble de données afin de réaliser des économies, le cas échéant. Utilisez les octets traités sous l'éditeur pour estimer le coût de la requête.

Cliquez sur le bouton Exécuter la requête.

Le résultat s'affiche en bas de la page. Il indique également la quantité de données traitée et la durée du traitement.

Même si la table sample_commits affiche 2,49 Go, la requête n'a traité que 35,8 Mo. BigQuery ne traite que les octets des colonnes utilisées dans la requête. Le volume total de données traitées peut donc être nettement inférieur à la taille de la table. Grâce au clustering et au partitionnement, la quantité de données traitées peut être encore réduite.

Essayez maintenant d'interroger un autre ensemble de données, tel que l'un des autres ensembles de données publics.

Par exemple, cette requête recherche les projets populaires obsolètes ou non gérés dans l'ensemble de données public Libraries.io, qui sont toujours utilisés comme dépendances dans d'autres projets.

SELECT
  name,
  dependent_projects_count,
  language,
  status
FROM
  `bigquery-public-data.libraries_io.projects_with_repository_fields`
WHERE status IN ('Deprecated', 'Unmaintained')
ORDER BY dependent_projects_count DESC
LIMIT 100

D'autres organisations ont également rendu leurs données publiques sur BigQuery. Par exemple, l'ensemble de données Archive GitHub peut être utilisé pour analyser des événements publics sur GitHub, tels que des demandes d'extraction, des étoiles de dépôt et des problèmes ouverts. L'ensemble de données PyPI de la bibliothèque Python Software Foundation permet d'analyser les demandes de téléchargement pour les packages Python.

Vous avez utilisé BigQuery et SQL pour interroger un ensemble de données public GitHub. Vous avez la possibilité d'interroger des ensembles de données à l'échelle du pétaoctet !

Points abordés

  • Interroger des enregistrements de commit GitHub à l'aide de la syntaxe SQL
  • Écrire une requête pour obtenir des informations sur un ensemble de données volumineux

En savoir plus