Используйте BigQuery для запроса данных GitHub

1. Введение

BigQuery — это полностью управляемая и недорогая аналитическая база данных от Google. С BigQuery вы можете запрашивать терабайты данных без необходимости в администраторе базы данных или какой-либо инфраструктуре для управления. BigQuery использует привычный SQL и модель оплаты только за то, что вы используете. BigQuery позволяет вам сосредоточиться на анализе данных для получения ценных выводов.

В этом практическом занятии вы узнаете, как выполнять запросы к общедоступному набору данных GitHub , одному из многих доступных общедоступных наборов данных в BigQuery .

Что вы узнаете

  • Как использовать BigQuery
  • Как написать запрос для получения информации из большого набора данных

Что вам понадобится

  • Проект Google Cloud
  • Браузер, например Chrome или Firefox.

2. Настройка

Включить BigQuery

Если у вас еще нет учетной записи Google (Gmail или Google Apps), вам необходимо ее создать .

  • Войдите в консоль Google Cloud Platform ( console.cloud.google.com ) и перейдите в раздел BigQuery. Вы также можете открыть веб-интерфейс BigQuery напрямую, введя следующий URL-адрес в свой браузер.
https://console.cloud.google.com/bigquery
  • Примите условия предоставления услуг.
  • Прежде чем начать использовать BigQuery, необходимо создать проект. Следуйте инструкциям, чтобы создать новый проект.

Выберите название проекта и запишите его идентификатор. 5dHf3myqCTd3rm-fowZ_aU3An-T_NTgNnIZtQILio27us0xB3StjnSNnQraAnllEQCH4N2nMwLU1mnELwbNN85tbwNC_DbIdbxU8ufzJYW1MWpYu0hnbSrAajpAaRNs8UBeWFu68Aw

Идентификатор проекта — это уникальное имя для всех проектов Google Cloud. В дальнейшем в этом практическом занятии он будет обозначаться как PROJECT_ID .

В этом практическом задании используются ресурсы BigQuery в пределах ограничений тестовой среды BigQuery . Платежный аккаунт не требуется. Если вы позже захотите снять ограничения тестовой среды, вы можете добавить платежный аккаунт, зарегистрировавшись на бесплатную пробную версию Google Cloud Platform.

3. Предварительный просмотр данных GitHub

Откройте набор данных GitHub в веб-интерфейсе BigQuery.

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

Получите краткий предварительный просмотр того, как выглядят данные.

ed0b9fce5eab1c6b.png

4. Запрос данных GitHub

Откройте редактор запросов.

759423d320075d96.png

Введите следующий запрос, чтобы найти наиболее часто встречающиеся сообщения коммитов в общедоступном наборе данных 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

Учитывая большой размер набора данных GitHub, во время экспериментов целесообразно использовать меньший по размеру набор данных для экономии средств. Используйте обработанные байты под редактором для оценки стоимости запроса.

fb66b7e9c6e838c.png

Нажмите кнопку «Выполнить» .

Через несколько секунд результат отобразится внизу, и вы увидите, сколько данных было обработано и сколько времени это заняло.

3ce1a59763d0dab5.png

Несмотря на то, что таблица sample_commits имеет размер 2,49 ГБ, запрос обработал только 35,8 МБ. BigQuery обрабатывает только байты из столбцов, использованных в запросе, поэтому общий объем обработанных данных может быть значительно меньше размера таблицы. С помощью кластеризации и секционирования объем обрабатываемых данных можно еще больше сократить.

5. Больше общедоступных данных

Теперь попробуйте выполнить запрос к другому набору данных, например, к одному из других общедоступных наборов данных .

Например, следующий запрос находит популярные устаревшие или не поддерживаемые проекты в общедоступном наборе данных Libraries.io , которые все еще используются в качестве зависимости в других проектах:

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

Другие организации также сделали свои данные общедоступными в BigQuery. Например, набор данных GH Archive от Github можно использовать для анализа публичных событий на GitHub, таких как запросы на слияние, отметки звезд в репозиториях и открытые проблемы. Набор данных PyPI от Python Software Foundation можно использовать для анализа запросов на загрузку пакетов Python.

6. Поздравляем!

Вы использовали BigQuery и SQL для запроса к общедоступному набору данных GitHub. У вас есть возможность запрашивать данные петабайтных масштабов!

Что вы осветили

  • Использование синтаксиса SQL для запроса записей коммитов GitHub.
  • Написание запроса для получения информации из большого набора данных.

Узнать больше