데이터 분석

[Google BigQuery] 연습을 시작하면서.. (Analytics Hub와 Tableau)

pluralmajor 2023. 2. 6. 00:36

 

Google BigQuery 설명
빅쿼리에서 제공하는 데이터 연결 서비스

 

아직 현업에서 데이터 분석가로 뛰어본 적이 없는 나는 실무를 어떻게 경험할 수 있을까 고민하다가 GCP에서 제공하는 BigQuery 라는 데이터웨어하우스에서 예제 DB를 제공해준다는 소식을 접하게 됐다.

 

빅쿼리는 페타 바이트*급 데이터 웨어하우스다.
NoOps라는 특징을 가지고 있고, 기존 RDBMS에서 사용하는 SQL언어를 그대로 사용해 접근성이 좋다.
기본적으로 유료 서비스지만 월 1TB만큼의 연산을 무료로 제공해주고 있다.
(페타 바이트(PB) = 1,000 테라바이트(TB) = 10^15 바이트)

 

 

Analytics Hub를 열심히 뒤져서 Thelook_eCommerce라는 데이터셋을 찾았다.

페이지에서는 데이터베이스가 어떤 관계로 구성되어있는지까지는 자세히 나와있지 않았지만, 온라인 의류 쇼핑몰에서 발생할 수 있는 데이터를 예제로 작성해놓은 것이라고 했다.

 

최근 그로스해킹을 공부하면서 이를 실습할 기회가 있었으면 좋겠다고 생각했기 때문에 냉큼 주워서 어떻게 생긴 데이터셋인지 열어보았다.

데이터셋을 프로젝트에 연결하고 열어보니 사진과 같이 총 7개의 테이블로 구성되어있었다.

  • distribution_centers : 데이터 적재에 기여한 온라인 쇼핑몰 지점에 관한 테이블
  • events : 유저가 발생시킨 이벤트에 대한 테이블
  • inventory_items : 적재되어있는 물품에 대한 테이블
  • order_items : 유저가 주문한 아이템에 대한 테이블
  • orders : 유저의 주문 내역이 담긴 테이블
  • products : 취급하는 물품에 대한 테이블
  • users : 유저의 정보가 담긴 테이블

실제 온라인 쇼핑몰에서 사용할 법한 내용으로 구성했다길래 내가 모르는 복잡한 관계를 가지고 있지 않을까 생각했는데, 테이블 간의 관계는 따로 설정되어있지 않았고, type만 지정되어있고 nullable 한 특징 말고는 설정되어있는게 없었다.

 

event 테이블의 스키마와 구성 미리보기

 

log 기록을 통해서 AU(Active User)을 구하는 것에 대해 궁금했기에, event 테이블을 열어서 MAU를 직접 구해보기로 했다.

 

테이블에 대해 상세히 보니 테이블은 총 13개의 필드로 구성되어있었고, 이벤트에 대한 id, 발생시킨 유저의 id, 발생 날짜, 종류, 트래픽 소스, 발생 위치 등의 내용이 들어있었다.

 

MAU를 구하려면 월별 접속한 유저를 중복하지 않고 합산하는 query를 작성해야한다.

select ym, count(user_id) as MAU
from 
(
  select format_datetime('%Y-%m', created_at) as ym, user_id
  from `thelook_ecommerce.events`
  group by ym, user_id
)
group by ym
order by ym;

(아직 미숙한 SQL 실력, 아직까지 query별 속도 차이를 잘 모른다.)

연월, 유저별로 group by해 조회한 결과에서 연월을 기준으로 user_id를 count한 값으로 구했다.

query 실행 결과

다행히 결과물이 잘 나왔다.

대충 살펴보니 월별로 꾸준히 증가하는 형태였다.

 

이를 좀 더 직관적으로 보고싶어서 태블로와 연동해서 시각화해보기로 했다.

 

태블로에서 서버와 연결하기 기능에서 Google BigQuery가 있어서 바로 연동 가능했다.

예제 데이터셋이기 때문에 변화가 없어서 어떻게 불러오든 상관은 없지만, 연산 용량 제한이 있어서 추출 방법으로 불러왔다.

 

사용자 지정 SQL 불러오기를 통해 작성한 query를 삽입해서 MAU를 바로 땡겨왔고, ym이 string 타입으로 되어있어 아래 함수를 통해 date타입으로 변환시켜줬다.

DATEPARSE('yyyy-MM', str([ym]))

 

변경시킨 후, 월별 MAU 그래프를 생성하고 바로 퀵 테이블 계산을 이용해 전월대비MAU상승률을 그래프로 나타냈다.

결과는,,

 

괜찮게 나온거같다.

 

 

19년 1월부터 데이터가 적재되기 시작했고 이후로 감소하는 경우는 거의 없고 꾸준히 성장하고 있는 형태로 보인다.

작은 단위에서 시작하다보니 초반에 급격한 상승이 관찰된 것으로 보인다.

 

다음에는 데이터들을 활용해서 리텐션이나 다른 지수들을 구해보는 것이 목표다.