00. Google BigQuery를 들어가며

Robin_UPDATA·2023년 3월 12일
0

빅쿼리

목록 보기
1/3
post-thumbnail

00. 빅쿼리가 뭔데, 왜 하는건데

최근 회사에서 데이터 웨어하우스를 모두 GCP로 이관한다고 한다. 그러면서 결과적으로 빅쿼리를 사용하게 된다는 소식을 듣게 되었다. 그래서 GCP는 뭐고 빅쿼리는 뭔데?

GCP, Google Cloud Platform은 구글의 클라우드 컴퓨팅 플랫폼이다. GCP가 익숙하지 않은 사람이라도 AWS, Azure는 들어본 적이 있을 것이다. 이러한 플랫폼들이 대표적인 클라우드 컴퓨팅 플랫폼의 예시이다.

이러한 GCP에서 제공하는 클라우드 데이터웨어하우스 서비스가 구글 빅쿼리이다. 비슷한 서비스로 AWS에서 제공하는 Redshift가 존재한다.

클라우드에 대해서 가볍게 설명하자면 클라우드는 인터넷을 통해서 다른 컴퓨터의 자원을 활용하는 것이다. 클라우드 서비스를 이용해본 적이 없다는 사람들도 아이클라우드, 원드라이브 등을 이용한 경험은 분명 있을 것이다. 이처럼 다른 컴퓨터의 저장 공간을 빌려서 사용하는 것이 대표적인 클라우드 서비스이다. 이렇듯 저장용량 뿐만 아니라 원하는 사양을 빌려서 사용할 수 있고 클라우드가 제공하는 특정 기능만 빌려서 사용할 수도 있고 이러한 모든 서비스들을 우리는 클라우드 플랫폼을 통해서 제공받을 수 있다. 이러한 클라우드 서비스를 통해 서버용 컴퓨터를 따로 구매하지 않아도 웹서비스를 배표할 수 있게 되었다.

데이터 웨어하우스는 비즈니스에서 많은 양의 데이터를 수집하고 저장하며, 이를 분석하여 의사결정에 활용하는 중요한 시스템이다. 이를 클라우드 상에서 구축하면 저장용량과 사양 등을 빌려서 필요한 시점에 필요한 만큼 사용할 수 있으며, 이를 위해 구글은 빅쿼리와 같은 클라우드 데이터웨어하우스 서비스를 제공한다.

이러한 클라우드 데이터웨어하우스 서비스는 비즈니스에서 많이 활용되며, GCP의 빅쿼리는 이 분야에서 안정적이고 높은 성능을 보여주고 있다. 회사에서 이를 도입함으로써 데이터 분석 및 의사결정에 더욱 효율적으로 활용할 수 있을 것이다.


01. 빅쿼리 콘솔 살펴보기

빅쿼리 콘솔 화면

빅쿼리에서는 데이터를 프로젝트 - 데이터셋 - 테이블 순으로 저장하고 있다. 왼쪽 메뉴에서 이러한 경로를 확인할 수 있고 데이터를 확인할 때 테이블의 메타데이터를 확인해서 이를 이용할 수 있다.

빅쿼리를 사용하면서 다른 RDMS에는 없는 유용한 기능을 확인할 수 있는데 이게 Validator, dry run 기능이다.

validator는 실제로 쿼리를 수행하기 전, 쿼리에 대해서 검사를 사전에 해주는 기능인데 이를 통해서 두 가지, check process byte와 check error message를 할 수 있다.

check process byte
빅쿼리 에디터에서 쿼리를 등록하고 에러가 없을 경우, validator는 dry run을 통해 얼마나 바이트를 읽을 것인지를 확인할 수 있다.

chekc error message
또한 쿼리가 유효하지 않다면 위와 같은 메시지를 보여주며 해당 쿼리를 수정할 수 있도록 도와주는 기능이 있다.


기존에 다른 SQL을 사용해본 사람이라면 문법이나 데이터를 추출하는 과정에서 큰 어려움은 겪지 않을 것이다. 문법 자체는 다른 RDMS와 거의 차이가 없기 때문에 아래에는 빅쿼리가 가지는 특성을 나열해보려고 한다.


02. 빅쿼리가 다른 RDMS에 비해 가지는 특성

1) 테이블 명을 백틱(`)으로 감싼다

위 테이블명을 보면 `bigquery-public-data.~~.bikeshare_trips` 이렇게 쓰여진 걸 확인할 수 있다. 테이블 이름을 백틱으로 감싸서 표현하고 있는데 이는 프로젝트 명에 포함된 하이픈(-) 때문인데 이를 문자열로 처리하기 위해서 백틱으로 테이블 경로를 감싸는 것이다. 이 때 하이픈이 문제이기 때문에 `bigquery-public-data`.~~.bikeshare_trips 이런식으로 프로젝트명만 백틱으로 감싸도 정상적으로 수행이 된다

2) array, structure 자료형

기존에 다른 프로그래밍 언어를 사용해봤다면 익숙한 자료형이겠지만 SQL에만 친숙하다면 생소할 수 있는 자료형이다. 먼저 array는 배열, 리스트 등과 유사하다


위 에디터 화면을 보면 꼭 여러 행이 출력된 것처럼 보이지만 실제로는 행은 하나이고 array 자료형이 출력된 것을 확인할 수 있다.

structure, struce 자료형은 dict 자료형과 유사한 자료형이다. 위 array와 생김새는 비슷하지만 각 데이터마다 필드명을 따로 지정할 수 있기 때문에 리스트와 dict의 관계와 비슷하다고 이해할 수 있다.


오히려 json 자료형에 익숙한 사람들이라면 아래와 같은 표시로 확인하는 게 더 익숙할 것이다.


03. 마무리하며

클라우드 서비스가 무엇인지, 빅쿼리에 들어가면 보이는 화면과 빅쿼리가 가지는 대표적인 특성을 살펴봤다. 다음부터는 빅쿼리를 실제로 활용하면서 이를 실무에서 어떻게 이용할 수 있는지, 시각화는 어떻게 할 수 있는지에 대한 내용을 살펴볼 예정이다.


Reference

빅쿼리 가이드북 (BigQuery Guide Book - 빅쿼리 가이드북)
BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편 (링크)
구글 빅쿼리 완벽 가이드 - 발리아파 락쉬마난, 조던 티가니 저/변성윤, 장현희 역
데이터 분석을 위한 SQL 레시피 - 가사키 나가토, 다미야 나오토 저/윤인성 역

0개의 댓글