구글 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 시작

  1. Google Cloud 회원 가입
  2. Google 로그인
  3. Project 생성 및 선택

    단, 처음에 체험판 등록하면 300$ 제공합니다

  4. 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/LinuxMacAction
Ctrl + EnterCmd + Enter현재 Query를 실행
TabTab자동 완성기능
CtrlCmdTable 이름을 Highlight
Ctrl + /Cmd + /현재 줄 주석처리
Ctrl + Shift + FCmd + Shift + FQuery Format 맞추기

카일스쿨 유튜브 채널을 만들었습니다. 데이터 사이언스, 성장, 리더십, BigQuery 등을 이야기할 예정이니, 관심 있으시면 구독 부탁드립니다 :)

PM을 위한 데이터 리터러시 강의를 만들었습니다. 문제 정의, 지표, 실험 설계, 문화 만들기, 로그 설계, 회고 등을 담은 강의입니다

이 글이 도움이 되셨거나 다양한 의견이 있다면 댓글 부탁드립니다 :)

Buy me a coffeeBuy me a coffee





© 2017. by Seongyun Byeon

Powered by zzsza