BigQuery는 Google의 완전 관리형, 노옵스(NoOps), 저비용 분석 데이터베이스입니다. BigQuery를 사용하면 데이터베이스 관리자나 관리할 인프라가 없어도 테라바이트 단위의 데이터를 쿼리할 수 있습니다. BigQuery는 친숙한 SQL과 사용한 만큼만 지불하는 요금 모델을 사용합니다. BigQuery는 데이터를 분석하여 의미 있고 유용한 정보를 찾는 데 집중할 수 있게 해줍니다.
이 실습에서는 BigQuery에서 사용할 수 있는 공개 데이터 세트 중 하나인 GitHub 공개 데이터 세트를 쿼리하는 방법을 알아봅니다.
학습할 내용
- BigQuery 사용
- 대규모 데이터 세트에 대한 통계를 얻기 위한 쿼리 작성
필요한 항목
BigQuery 사용 설정
아직 Google 계정 (Gmail 또는 Google Apps)이 없으면 계정을 만들어야 합니다.
- Google Cloud Platform 콘솔 (console.cloud.google.com)에 로그인하고 BigQuery로 이동합니다. 또한 브라우저에 다음 URL을 입력하면 BigQuery 웹 UI를 직접 열 수 있습니다.
https://console.cloud.google.com/bigquery
- 서비스 약관에 동의합니다.
- BigQuery를 사용하려면 먼저 프로젝트를 만들어야 합니다. 프롬프트에 따라 새 프로젝트를 만듭니다.
프로젝트 이름을 선택하고 프로젝트 ID를 메모해 둡니다.
프로젝트 ID는 모든 Google Cloud 프로젝트에서 고유한 이름입니다. 이 이름은 나중에 Codelab에서PROJECT_ID
로 참조됩니다.
이 Codelab에서는 BigQuery 샌드박스 한도 내에서 BigQuery 리소스를 사용합니다. 결제 계정은 필요하지 않습니다. 나중에 샌드박스 한도를 삭제하려면 Google Cloud Platform 무료 체험판에 가입하여 결제 계정을 추가하면 됩니다.
BigQuery 웹 UI에서 GitHub 데이터 세트를 엽니다.
https://console.cloud.google.com/bigquery?p=bigquery-public-data&d=github_repos&t=commits&page=table
데이터가 어떻게 표시되는지 빠르게 미리 볼 수 있습니다.
쿼리 편집기를 엽니다.
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 데이터 세트는 크므로 실험하는 동안 더 작은 샘플 데이터 세트를 사용하여 비용을 절감하는 것이 좋습니다. 편집기 아래에 있는 처리된 바이트를 사용하여 쿼리 비용을 추정합니다.
쿼리 실행 버튼을 클릭합니다.
몇 초 후 결과가 하단에 표시되며 처리된 데이터의 양과 소요 시간도 표시됩니다.
sample_commits
테이블은 2.49GB이지만 쿼리는 35.8MB만 처리했습니다. BigQuery는 쿼리에 사용된 열의 바이트만 처리하므로 처리된 데이터의 총량이 테이블 크기보다 훨씬 적을 수 있습니다. 클러스터링 및 파티션 나누기를 사용하면 처리되는 데이터의 양을 더욱 줄일 수 있습니다.
이제 다른 데이터 세트(예: 다른 공개 데이터 세트 중 하나)를 쿼리해 보세요.
예를 들어 이 쿼리는 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 Archive 데이터 세트를 사용하여 pull 요청, 저장소 별표, 열린 문제와 같은 GitHub의 공개 이벤트를 분석할 수 있습니다. Python Software Foundation의 PyPI 데이터 세트를 사용하여 Python 패키지의 다운로드 요청을 분석할 수 있습니다.
BigQuery와 SQL을 사용하여 GitHub 공개 데이터 세트를 쿼리했습니다. 페타바이트 규모의 데이터 세트를 쿼리할 수 있습니다.
학습한 내용
- SQL 구문을 사용하여 GitHub 커밋 기록 쿼리
- 대규모 데이터 세트에 대한 통계를 얻기 위한 쿼리 작성
자세히 알아보기
- Kaggle SQL 소개 과정으로 SQL을 학습하세요.
- BigQuery 문서를 살펴봅니다.
- 이 블로그 게시물에서 다른 사용자가 GitHub 데이터 세트를 어떻게 사용하는지 알아보세요.
- TIL with BigQuery에서 날씨 데이터, 범죄 데이터 등을 살펴보세요.
- BigQuery 명령줄 도구를 사용하여 BigQuery에 데이터를 로드하는 방법을 알아보세요.
- BigQuery 서브레딧에서 다른 사용자가 BigQuery를 어떻게 사용하고 있는지 확인하세요.