GitHub-Daten mit BigQuery abfragen

BigQuery ist eine vollständig verwaltete, automatisierte und kostengünstige Analysedatenbank von Google. Mit BigQuery können Sie Terabytes an Daten abfragen, ohne einen Datenbankadministrator zu benötigen oder eine Infrastruktur verwalten zu müssen. BigQuery basiert auf dem vertrauten SQL und die Abrechnung erfolgt nach dem „Pay as you go“-Modell. Mithilfe von BigQuery können Sie sich auf die Datenanalyse konzentrieren und wichtige Informationen erhalten.

In diesem Lab sehen wir uns an, wie das öffentliche GitHub-Dataset abgefragt wird. Es ist eines von vielen öffentlichen Datasets, die in BigQuery verfügbar sind.

Lerninhalte

  • BigQuery verwenden
  • Abfrage schreiben, um Erkenntnisse aus einem großen Dataset zu gewinnen

Voraussetzungen

  • Google Cloud Platform-Projekt
  • Ein Browser, z. B. Chrome oder Firefox

BigQuery aktivieren

Wenn Sie noch kein Google-Konto (Gmail oder Google Apps) haben, müssen Sie eins erstellen.

  • Melden Sie sich in der Google Cloud Console (console.cloud.google.com) an und rufen Sie BigQuery auf. Sie können die BigQuery-Web-UI auch direkt öffnen, indem Sie die folgende URL in Ihren Browser eingeben.
https://console.cloud.google.com/bigquery
  • Akzeptieren Sie die Nutzungsbedingungen.
  • Bevor Sie BigQuery verwenden können, müssen Sie ein Projekt erstellen. Folgen Sie der Anleitung, um das neue Projekt zu erstellen.

    Wählen Sie einen Projektnamen aus und notieren Sie sich die Projekt-ID.


    Die Projekt-ID ist für alle Google Cloud-Projekte ein eindeutiger Name. Sie wird in diesem Codelab später als PROJECT_ID bezeichnet.

In diesem Codelab werden BigQuery-Ressourcen innerhalb der BigQuery-Sandbox-Limits verwendet. Ein Rechnungskonto ist nicht erforderlich. Wenn Sie die Sandbox-Beschränkungen später entfernen möchten, können Sie ein Rechnungskonto hinzufügen, indem Sie sich für die kostenlose Testversion von Google Cloud Platform registrieren.

Öffnen Sie das GitHub-Dataset in der BigQuery-Web-UI.

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

Sie erhalten eine kurze Vorschau der Daten.

Öffnen Sie den Abfrageeditor.

Geben Sie diese Abfrage ein, um die häufigsten Commit-Nachrichten im öffentlichen GitHub-Dataset zu finden.

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

Da das GitHub-Dataset groß ist, empfiehlt es sich, während der Testphase ein kleineres Stichprobendataset zu verwenden, um Kosten zu sparen. Anhand der verarbeiteten Byte unter dem Editor können Sie die Abfragekosten schätzen.

Klicken Sie auf Abfrage ausführen.

Nach einigen Sekunden wird das Ergebnis unten aufgeführt. Außerdem sehen Sie, wie viele Daten verarbeitet wurden und wie lange das gedauert hat:

Obwohl die Tabelle sample_commits 2,49 GB groß ist, wurden bei der Abfrage nur 35,8 MB verarbeitet. BigQuery verarbeitet nur die Byte aus den Spalten, die in der Abfrage verwendet werden. Die insgesamt verarbeitete Datenmenge kann also deutlich geringer sein als die Tabellengröße. Durch Clustering und Partitionierung kann die verarbeitete Datenmenge noch weiter reduziert werden.

Versuchen Sie nun, ein anderes Dataset abzufragen, z. B. eines der anderen öffentlichen Datasets.

Mit dieser Abfrage werden beispielsweise beliebte eingestellte oder nicht mehr gewartete Projekte im öffentlichen Dataset von Libraries.io gefunden, die weiterhin als Abhängigkeit in anderen Projekten verwendet werden.

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

Auch andere Organisationen haben ihre Daten öffentlich in BigQuery zur Verfügung gestellt. Mit dem GitHub Archive-Dataset lassen sich beispielsweise öffentliche Ereignisse auf GitHub analysieren, z. B. Pull-Anfragen, Repository-Sterne und geöffnete Probleme. Das PyPI-Dataset der Python Software Foundation kann verwendet werden, um Downloadanfragen für Python-Pakete zu analysieren.

Sie haben das öffentliche GitHub-Dataset mit BigQuery und SQL abgefragt. Sie können Datasets im Petabyte-Bereich abfragen.

Behandelte Themen

  • SQL-Syntax zum Abfragen von GitHub-Commit-Datensätzen verwenden
  • Abfrage schreiben, um Erkenntnisse aus einem großen Dataset zu gewinnen

Weitere Informationen