TIPS

BigQuery 적용하기: 쇼핑몰 판매분석 사례

빅쿼리
작성자
진수 이
작성일
2021-06-03 12:59
조회
923

지난 포스팅에서는 BigQuery가 왜 필요한지 살펴보았었는데, 오늘은 쇼핑몰 판매분석을 사례로 적용하는 방법을 소개합니다.




쇼핑몰 분석에 BigQuery가 필요한 이유


쇼핑몰마다 다르지만, 일반적으로 매출액이 연 매출 10-20억정도하는 소규모 쇼핑몰이라도 월 수만행의 데이터가 쌓입니다.


소품종인 경우에는 크게 문제가 되지 않지만, 쇼핑몰은 보통 다품종을 취급하니까 몇개월 내에 데이터가 수십만행이되면서 실시간으로 분석하기는 굉장히 어려워집니다.


실제로 쇼핑몰 데이터를 구글 시트로 처리해보았는데요. 9만행에 15열(135만셀)만 되어도 버벅임이 심해져서 단순한 작업이 답답해집니다. 구글 시트의 한도는 5백만 셀이라고 하지만 컴퓨터의 성능을 고려하면 절반 정도가 불편함없이 사용할 수 있지 않을까 싶습니다.


9만행

이제 수십만 또는 수백만행의 판매 데이터를 처리하려면 구글 시트를 뛰어 넘는 저장 및 분석 공간이 필요합니다. 어떻게 할 수 있을까요?


회사에 개발팀이 있다면 그냥 맡기면 되겠지만, 그렇지 않다면 개발자가 아니어도 편하게 저장하고 분석할 수 있는 툴이 필요합니다. 시중에 유료 비즈니스 인텔리전스 도구 (BI 도구)로 태블로, MS의 POWER BI 등 다양한 솔루션이 나와있어서 사용하는 것도 고려해볼 수 있습니다.


태블로태블로


Power Bi DesktopMS POWER BI


구글에서 제공하는 BigQuery와 DataStudio는 소규모의 데이터 분석을 진행할 때에는 현재까지 무료로 이용할 수 있고, 대량의 데이터를 처리할 수 있는 장점이 있습니다.


데이터스튜디오DataStudio


매출 100억대 이상, 직원 수 100명 이상의 기업이라면 유료 BI 도구를 전사적으로 도입하는 것도 고려해볼 수 있지만, 아직 규모가 작다면 구글의 무료이지만 강력한 서비스를 이용해보는 것이 좋지 않을까요?




BigQuery에 데이터 저장하기


BigQuery 서비스에 가입을 한 다음 메인화면에 보면 데이터세트를 추가할 수 있습니다. 그리고 만든 데이터세트에 테이블을 추가할 수 있습니다.


데이터세트

데이터세트는 프로젝트 폴더로 생각할 수 있습니다. 실제로 데이터는 테이블에 저장되고, 여러 테이블이 하나의 데이터세트를 구성합니다.


테이블에 데이터는 CSV, JSONL, 구글 드라이브, 구글 클라우드 스토리지, 구글 클라우드 빅테이블 등으로 저장하거나 연동할 수 있습니다.


테이블

일반적으로 쇼핑몰의 데이터는 사방넷과 같은 쇼핑몰통합관리 솔루션에 저장이 되고, 기간별로 데이터를 엑셀 또는 CSV로 다운을 받습니다. 다운받은 데이터를 CSV 형식으로 테이블에 넣을 수도 있고, 아니면 구글 드라이브에 올려서 연동할 수도 있습니다.


포스팅을 위해서 샘플로 2019년 매출 데이터와 2020년 매출 데이터를 만들고 각각 구글 클라우드 스토리지를 통해서 BigQuery에 데이터를 업로드 하였습니다.


CSV로 업로드 한 경우에는 미리보기로 데이터를 볼 수 있습니다. 구글 드라이브로 연동한 경우에는 QUERY를 사용해야 데이터를 뽑아 볼 수 있습니다.


데이터테이블



BigQuery 데이터 준비하기


데이터 스튜디오에서 BigQuery의 데이터를 불러올 때 하나의 테이블을 불러와서 분석하는 것이 편리하기 때문에, 이제 통합 분석을 하기 위해 테이블을 하나로 합쳐줍니다.


QUERY를 사용하는데, BigQuery의 Standard SQL DML 구문을 참조할 수 있습니다.


2019와 2020의 데이터를 합칠 때 새로 테이블을 만들어도 되지만, 2019 테이블을 복사하고 이름을 total로 지정한 뒤에 INSERT 로 2020 데이터를 넣어주면 간편합니다.


테이블 복사

INSERT INTO datasetname.total
SELECT * FROM datasetname.sales_2020

쿼리가 완료되면, 이제 분석을 위한 준비가 끝났습니다.


프로젝트를 진행해보면, 과거의 누적된 데이터들은 CSV로 테이블에 넣고, 매주 발생하는 데이터는 구글 드라이브에 올려서 연동하는 방법이 분석하기에 좋은 것 같습니다.



데이터스튜디오에서 분석하기


이제 18만행의 통합 데이터가 준비되었으니, 데이터 스튜디오에서 분석할 수 있습니다.


데이터 스튜디오와 데이터를 연결하는 방법은 다른 포스팅에서 다룹니다.


상품이 지역별로, 채널별로 얼마나 팔리는지 한 눈에 볼 수 있고, 기간을 바꿔가며 비교해볼 수도 있습니다.


매출 TOP10 의 상품이 무엇인지, 지난주에 비해 어떤 상품이 더 많이 팔렸는지도 기간별, 상품별 등 데이터에 있는 조건을 기준으로 분석할 수 있습니다.


샘플1

샘플2



데이터 스튜디오 샘플을 살펴보시죠.


전체 32
번호 썸네일 제목 작성자 작성일 추천 조회
12 BigQuery 적용하기: 쇼핑몰 판매분석 사례
BigQuery 적용하기: 쇼핑몰 판매분석 사례
BigQuery 적용하기: 쇼핑몰 판매분석 사례
진수 이 | 2021.06.03 | 추천 0 | 조회 923
진수 이 2021.06.03 0 923
11 BigQuery 빅쿼리 시작하기: 왜?
BigQuery 빅쿼리 시작하기: 왜?
BigQuery 빅쿼리 시작하기: 왜?
진수 이 | 2021.06.03 | 추천 0 | 조회 1077
진수 이 2021.06.03 0 1077
10 IFERROR로 IF없이 VLOOKUP #N/A 제거 방법
IFERROR로 IF없이 VLOOKUP #N/A 제거 방법
IFERROR로 IF없이 VLOOKUP #N/A 제거 방법
진수 이 | 2021.06.03 | 추천 0 | 조회 1498
진수 이 2021.06.03 0 1498
9 구글시트 QUERY: 거래처, 기간에 맞춰 거래명세서 출력하는 방법
구글시트 QUERY: 거래처, 기간에 맞춰 거래명세서 출력하는 방법
구글시트 QUERY: 거래처, 기간에 맞춰 거래명세서 출력하는 방법
진수 이 | 2021.06.03 | 추천 0 | 조회 820
진수 이 2021.06.03 0 820
8 구글시트 QUERY: DATEDIF 와 VLOOKUP을 사용해서 거래처 미방문일수 계산하기
구글시트 QUERY: DATEDIF 와 VLOOKUP을 사용해서 거래처 미방문일수 계산하기
구글시트 QUERY: DATEDIF 와 VLOOKUP을 사용해서 거래처 미방문일수 계산하기
진수 이 | 2021.06.03 | 추천 0 | 조회 778
진수 이 2021.06.03 0 778
7 조건부 서식으로 데이터가 중복되는 셀 표시하기
조건부 서식으로 데이터가 중복되는 셀 표시하기
조건부 서식으로 데이터가 중복되는 셀 표시하기
진수 이 | 2021.06.03 | 추천 0 | 조회 1832
진수 이 2021.06.03 0 1832
6 FILTER/MATCH 두 열을 비교해서 중복되지 않는 데이터 추출하는 방법
FILTER/MATCH 두 열을 비교해서 중복되지 않는 데이터 추출하는 방법
FILTER/MATCH 두 열을 비교해서 중복되지 않는 데이터 추출하는 방법
진수 이 | 2021.06.03 | 추천 0 | 조회 783
진수 이 2021.06.03 0 783
5 구글시트 QUERY: QUERY로 불러온 날짜의 포맷 변경하기
구글시트 QUERY: QUERY로 불러온 날짜의 포맷 변경하기
구글시트 QUERY: QUERY로 불러온 날짜의 포맷 변경하기
진수 이 | 2021.06.03 | 추천 0 | 조회 752
진수 이 2021.06.03 0 752
4 구글시트 QUERY: QUERY로 불러오는 열의 앞부분 10자리만 불러오는 방법
구글시트 QUERY: QUERY로 불러오는 열의 앞부분 10자리만 불러오는 방법
구글시트 QUERY: QUERY로 불러오는 열의 앞부분 10자리만 불러오는 방법
진수 이 | 2021.06.03 | 추천 0 | 조회 484
진수 이 2021.06.03 0 484
3 구글 스프레드시트의 강력한 기능 QUERY
구글 스프레드시트의 강력한 기능 QUERY
구글 스프레드시트의 강력한 기능 QUERY
진수 이 | 2021.06.03 | 추천 0 | 조회 1888
진수 이 2021.06.03 0 1888

© 2019-2022 autooffice. All rights reserved.