BigQuery를 사용하여 GitHub 데이터 쿼리

1. 소개

BigQuery는 Google의 완전 관리형 저비용 분석 데이터베이스입니다. BigQuery를 사용하면 데이터베이스 관리자나 관리할 인프라 없이도 테라바이트 단위의 데이터를 쿼리할 수 있습니다. BigQuery는 익숙한 SQL과 사용한 만큼만 지불하는 요금 청구 모델을 사용합니다. BigQuery는 데이터를 분석하여 의미 있고 유용한 정보를 찾는 데 집중할 수 있게 해줍니다.

이 Codelab에서는 BigQuery에서 사용 가능한 공개 데이터 세트 중 하나인 GitHub 공개 데이터 세트를 쿼리하는 방법을 알아봅니다.

학습할 내용

  • BigQuery 사용 방법
  • 대규모 데이터 세트에 대한 유용한 정보를 얻기 위해 쿼리를 작성하는 방법

필요한 항목

2. 설정

BigQuery 사용 설정

아직 Google 계정(Gmail 또는 Google Apps)이 없으면 계정을 만들어야 합니다.

  • Google Cloud Platform 콘솔 ( console.cloud.google.com)에 로그인하고 BigQuery로 이동합니다. 또한 브라우저에 다음 URL을 입력하여 BigQuery 웹 UI를 직접 열 수도 있습니다.
https://console.cloud.google.com/bigquery
  • 서비스 약관에 동의합니다.
  • BigQuery를 사용하려면 먼저 프로젝트를 만들어야 합니다. 프롬프트에 따라 새 프로젝트를 만듭니다.

프로젝트 이름을 선택하고 프로젝트 ID를 기록해 둡니다. 5dHf3myqCTd3rm-fowZ_aU3An-T_NTgNnIZtQILio27us0xB3StjnSNnQraAnllEQCH4N2nMwLU1mnELwbNN85tbwNC_DbIdbxU8ufzJYW1MWpYu0hnbSrAajpAaRNs8UBeWFu68Aw

프로젝트 ID는 모든 Google Cloud 프로젝트에서 고유한 이름입니다. 이 ID는 나중에 이 Codelab에서 PROJECT_ID라고 부릅니다.

이 Codelab에서는 BigQuery 샌드박스 한도와 함께 BigQuery 리소스를 사용합니다. 결제 계정은 필요하지 않습니다. 나중에 샌드박스 한도를 없애려면 Google Cloud Platform 무료 체험판에 가입하여 결제 계정을 추가하면 됩니다.

3. GitHub 데이터 미리보기

BigQuery 웹 UI에서 GitHub 데이터 세트를 엽니다.

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.49GB이지만 쿼리가 35.8MB만 처리했습니다. 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에서 데이터를 공개적으로 사용할 수 있도록 했습니다. 예를 들어 GitHub의 GH 보관 파일 데이터 세트를 사용하여 GitHub의 공개 이벤트(예: pull 요청, 저장소 별표, 미해결 문제)를 분석할 수 있습니다. Python Software Foundation의 PyPI 데이터 세트를 사용하여 Python 패키지의 다운로드 요청을 분석할 수 있습니다.

6. 축하합니다.

BigQuery와 SQL을 사용하여 GitHub 공개 데이터 세트를 쿼리했습니다. 페타바이트 규모의 데이터 세트를 쿼리할 수 있는 능력이 있습니다.

학습한 내용

  • SQL 문법을 사용하여 GitHub 커밋 레코드 쿼리
  • 대규모 데이터 세트에 대한 유용한 정보를 얻기 위한 쿼리 작성

자세히 알아보기