구글 BigQuery 개요
- 본 문서는 Github Tutorial의 내용을 재구성한 것입니다!
- (20.05.20) 발표 자료로 만든 BigQuery의 모든 것(입문편)를 참고하셔도 좋을 것 같습니다! 약 270쪽 정도 됩니다
- (2022년 10월 추가) 아래 내용보다 제가 강의용으로 만든 BigQuery 가이드북을 참고하시면 더욱 좋을 것 같습니다 :) 아래 내용은 2017년에 작성해서 UI가 바뀌었습니다. 추후에 아래 내용도 수정해두겠습니다!
- (2024년 7월) BigQuery 강의를 출시했습니다. 입문편, 활용편으로 나뉘며 입문편은 무료니 궁금하신 분이 계시면 보고 가셔도 좋을 것 같아요
BigQuery란?
- Google에서 드레멜 엔진을 사용해 만든 페타 바이트 규모의 저비용 데이터 웨어하우스입니다. 구글에서 관리해주기 때문에 사용자가 별도의 서버나 물리적 하드웨어에 대해 스트레스를 받을 일이 없습니다.
- 일반적인 rdb나 noSQL보다 속도가 월등히 빠르며, 몇초 안에 TB를 스캔할 수 있습니다. 또한 Google Cloud Storage에서 데이터를 읽어 분석할 수 있습니다
- 데이터 저장 및 컴퓨팅의 개념을 분리해 독립적으로 비용을 지불할 수 있습니다
웹 UI 혹은 Command Line tool을 사용해 BigQuery를 이용할 수 있으며 Rest API와 클라이언트 라이브러리가 준비되어 있습니다 ( python, java, c#, go, node.js, php, ruby )
- Firebase 와 연동해서 사용할 경우 100000% 정말 좋습니다! ( 모든 데이터가 누락없이 쌓이는데, 신경쓸 필요가 없습니다! )
- Legacy SQL과 Standard SQL 2가지 방식으로 쿼리를 날릴 수 있습니다 (세부 문법이 살짝 다릅니다!)
- key, index가 따로 존재하지 않고 Full Scan을 합니다
Select할 때, Column base로 비용을 부과합니다
- Third Party 도구들과 호환됩니다 ( Tableau, Google Analytics 360 suite )
BigQuery 시작
- Google Cloud 회원 가입
- Google 로그인
단, 처음에 체험판 등록하면 300$ 제공합니다
- BigQuery API 등록
BigQuery UI console
- 위 화면은 BigQuery에 처음 진입하면 나오는 화면입니다. BigQuery Console이 디자인 및 기능을 개선한 버전이 개발중입니다!
- ‘COMPOSE QUERY’를 누르면 쿼리를 날릴 수 있는 화면이 보입니다!
1) Navigation bar
- COMPOSE QUERY : 이 버튼을 누르면 쿼리를 날릴 수 있는 창이 나타납니다! (우측과 같은 Query Editor가 생겨요)
- Query History : 조회했던 쿼리가 기록이 나타납니다. 무한정으로 쿼리 History를 볼 수 있는것은 아니에요!
- Job History : Job 작업의 기록이 나타납니다. Job은 load data, export data(table), copy data(table)
- My Project라고 써있는 곳은 ‘Project’ 부분입니다! 현재 저는 4개의 Dataset이 존재합니다
- Public Datasets : BigQuery에서 사용할 수 있는 무료 Datasets입니다! 연습하기에 정말 좋은 자료들입니다
2) Query Editor
- New Query라고 써있는 곳은 쿼리의 이름을 나타냅니다. 그 아래의 흰 공간에서 Query를 입력할 수 있습니다
- 우측의 UDF Editor는 java script로 사용자 정의 함수( User Define Function )를 만들 수 있습니다
- Run Query : 쿼리를 실행하는 버튼으로 단축키는 command(ctrl) + Enter입니다
- Save View : 쿼리 결과(View)를 저장하는 버튼으로 legacy SQL을 사용할 경우 가능합니다(개인적으론 Save View보단 다른 table로 저장하는 것을 선호해요)
- Format Query : 형식에 맞게 자동으로 수정해줍니다
- Show Options : 다양한 옵션 설정이 가능합니다. 예를 들어 쿼리 결과를 Table로 저장하는 것, 거대한 Result도 허락하는 것, Query Cashing 유무, Legacy / Standard SQL 선택 등이 가능합니다
3) Querys list
- 이 부분은 Query history를 누를 경우 생깁니다. History가 나오고 Filter로 검색해볼 수 있습니다
- Datasets의 Table을 클릭할 경우, 이 부분에 Table에 대한 정보가 나타납니다
- Run Query를 실행한 경우 이 부분에 쿼리 결과가 나타납니다
Table Detail
- Schema : 해당 테이블의 Schema(Column 이름, 타입, 설명)가 있습니다
- Details : 해당 테이블과 관련된 정보가 포함되어 있습니다(Table ID, Size, Number of Rows, Creation Time, Labels)
- Preview : 해당 테이블에 데이터가 어떻게 적재되어있는지 볼 수 있습니다!! 유용한 기능입니다
- Refresh : 새로고침
- Query Table : 클릭하면 테이블에 쿼리를 날릴 수 있는 기본구조가 구성됩니다
- Copy Table : 테이블을 Copy
- Export Table : 테이블을 Export합니다. CSV, Json, Avro로 가능하며 GZIP으로 압축할 수 있습니다 (저장하는 공간은 Google Cloud Storage)
- Delete Table : 테이블 삭제
Query Result
- Results : 쿼리의 결과가 나타나는 공간입니다
- Explanation : 쿼리의 단계별 연산에 대한 설명이 적혀있습니다
- Job Information : 쿼리 Job에 대한 정보가 기록되어 있습니다
- Save as Table : 지정하는 Table로 쿼리의 결과를 저장합니다
- Save to Google Sheets : 구글 스프레드시트로 결과를 저장합니다. 저는 데이터 요청이 있을 경우, 대부분 스프레드시트로 공유합니다!
Keyboard shortcuts
Windows/Linux | Mac | Action |
---|---|---|
Ctrl + Enter | Cmd + Enter | 현재 Query를 실행 |
Tab | Tab | 자동 완성기능 |
Ctrl | Cmd | Table 이름을 Highlight |
Ctrl + / | Cmd + / | 현재 줄 주석처리 |
Ctrl + Shift + F | Cmd + Shift + F | Query Format 맞추기 |
카일스쿨 유튜브 채널을 만들었습니다. 데이터 사이언스, 성장, 리더십, BigQuery 등을 이야기할 예정이니, 관심 있으시면 구독 부탁드립니다 :)
PM을 위한 데이터 리터러시 강의를 만들었습니다. 문제 정의, 지표, 실험 설계, 문화 만들기, 로그 설계, 회고 등을 담은 강의입니다
이 글이 도움이 되셨거나 다양한 의견이 있다면 댓글 부탁드립니다 :)