brunch

You can make anything
by writing

- C.S.Lewis -

by Looker Jan 21. 2019

[Looker 도입기] 02탄. 코딩의 늪

LookML을 이용하여 코딩하기

지난 글

1탄 시작이 반이다(시작부터 프로젝트 생성까지)




1탄에서 Looker의 가장 상위 개념인 프로젝트를 생성하는 작업까지 마쳤습니다.  

2탄에서는 LookML을 이용한 작업 내용을 소개하겠습니다.


LookML(Looker Modeling Language)은 Looker만의 데이터 모델링 언어로 SQL을 바탕으로 하는 언어이며, 기존의 SQL에서 불가능했던 버전관리, 재사용, 확장, 협업이 가능한 장점이 있습니다. 따라서 LookML으로 작성하는 Project, Model, View 파일 모두 같은 장점을 가질 수 있습니다.  


Looker는 프로젝트와 DB를 연결하게 되면 자동으로 LookML로 작성된 데이터 모델이 생성되는 것을 장점으로 소개하고 있습니다. 이때 자동으로 생성되는 영역은 다음과 같습니다.

연결된 DB 내 테이블 내용에 기반한 View 파일

기본 Model (DB Connection, Explore 포함) 파일


자동생성되는 부분 이외의 더 필요한 내용들은 LookML으로 작성해야 합니다. LookML로 작성하는 부분은 크게 2가지 입니다. 

첫번째는 View 입니다. 이는 DB에서 Table과 같은 단위로 생각하시면 됩니다. 각 Table에 존재하는 Column 이외에 새로운 Column을 정의하고, Aggregation Function도 사전에 정의하는 파일입니다.

두번째는 Model입니다. 이는 DB 연결, View 간 조인, 캐시 설정 등 과 같은 설정하는 파일입니다. 여기서는 적절하게 View를 조인하여 Explore를 구성하는 것이 가장 중요한 작업입니다.  



1. View 설정

보통 DB의 각 Table과 1:1 로 View를 생성합니다. 각 Table에 존재하는 Column들은 자동으로 Type까지 인식하여 Dimension으로 생성되고, 그 외 추가적인 Dimension과 Measure를 작성하는 작업이 필요합니다. 

또 View는 필수적으로 하나의 Dimension을 Primary Key로 설정해주어야 합니다. 이 작업은 자동으로 되는 것이 아니기 때문에 테이블에 대해 미리 파악을 하고 있어야 합니다. 

(es_member view에서는 mem_no를 PK로 설정)

회원 관련된 테이블로 생성한 View의 일부




Dimension

테이블에 존재하는 Column들은 자동으로 Dimension으로 생성되지만, 기존 Column을 이용하여 새로운 Column을 추가하고 싶다면 LookML을 이용해 Dimension으로 작성을 하면 됩니다.

LookML을 작성할 때 가장 많은 도움이 되었던 부분은 바로 오른쪽의 Quick Help입니다. 커서의 위치에 따라 표시되는 내용이 달라지는데 사용할 수 있는 파라미터 종류를 한눈에 보여주고, 파란색으로된 글자를 클릭하면 관련 내용이 있는 Document와 링크됩니다.

'dimension' 에 커서 위치시 화면


'type'에 커서 위치시 화면




작성한 Dimension 중 하나를 소개하면 '수취인 주소(reciverAddress)'를 이용하여 아래와 같이 지역관련 Dimension 들을 생성 했습니다. 여기서 사용한 SQL 구문은 구루핏 DB가 MySQL DB이기 때문에 그 문법에 따라 작성하였고, 혹시 DB가 다른 SQL을 사용한다면 해당 SQL 문법에 따라 작성해야 합니다.

Dimension 중 일부



Measure

Measure는 단순히 Row 수 를 Count하는 Measure 1개가 자동 생성되고, 이후 필요한 Group Aggregation 함수를 모두 작성해야 합니다. 

구루핏은 Measure 생성 작업을 하면서 필요할 것 같은 항목(주로 금액관련된 항목)을 최대한 작성했지만, 차트를 생성하면서 계속 필요한 Measure가 새로 생겨서 지속적으로 Measure를 생성하는 작업이 필요 했습니다. 이는 LookML 작성 전 차트 구상이 완벽하게 되어 있었다면 없었을 비효율적인 작업 과정이라고 생각이 듭니다.


아래는 작성한 Measure 중 일부분입니다. 구루핏은 신발관련 E-Commerce 회사이기 때문에 구매 금액과 관련한 Measure를 많이 작성하였습니다. 


2. Model 설정

위와 같이 View 작성이 끝나고 나면 Model 작성을 시작합니다. Model은 Explore를 정의합니다. 한 Project에 여러개의 Model을 작성할 수 있는데, 이때 여러 개의 Model을 생성하는 이유는 주로 1)Explore에 대한 사용자 접근 제어나 2)업무 영역별 Explore 생성입니다.


Caching

Explore를 생성하기에 앞서 Cache 설정을 합니다. Looker는 쿼리의 결과만을 Cache 하는데, 이를 Model이나 Explore를 단위로 설정합니다. Trigger나 Cache 주기를 설정할 수 있습니다.

구루핏 데이터의 Cache는 1시간 단위로 설정했습니다.


Explore

Looker에서 Explore는 Business User가 사용할 분석의 단위입니다. Explore는 하나의 주제로 View를 조인하여 생성합니다.

회원 Explore 생성 LookML

구루핏에서는 주문(order), 회원(member), 쿠폰(coupon) 세 개의 주제로 Explore를 작성하였습니다. Order Explore의 경우는 주문상품 View를 기준으로 회원, 상품 View를 조인하여 생성, Member Explore는 회원정보 View를 기준으로 주문상품, 상품, 로그인 로그 View를 조인하여 생성, 마지막으로 Coupon Explore는 회원쿠폰 View를 기준으로 쿠폰, 주문상품, 회원 View를 조인하여 생성했습니다. 기준이 되는 View가 다르다는 것은 다음과 같은 차이로 구분됩니다.

Member Explore 에서는 회원이 아닌 비회원 주문에 대한 데이터는 볼 수 없다.

Coupon Explore 에서는 쿠폰을 사용하지 않은 주문에 대한 데이터는 볼 수 없다.


이와 같이 어떻게 Explore를 구성하느냐에 따라 같은 차트를 생성하여도 결과 값이 달라질 수 있기 때문에 Technical User는 논리적이고 정확하게 LookML을 작성해야 합니다.



여기까지 LookML 작성을 끝내면 기본적인 Looker Project가 완성됩니다.

Explore 의 하위메뉴








About Looker

Looker는 데이터 중심의 의사 결정을 모든 기업 계층에 제공합니다. 가치를 더하고 단일의 진리의 원천을 만드는 최신 데이터 플랫폼을 제공합니다. Amazon에서 Sony에 이르기까지 750개 이상의 업계 리더가 Looker를 사용하여 모든 팀이 어디에서든 정보에 입각한 의사결정에 필요한 데이터에 액세스 할 수 있도록 지원합니다.


- Looker 홈페이지: https://looker.com/

- 빈티지랩 Looker 사업팀 이메일: looker@vntglab.com

매거진의 이전글 [알아두면 쓸데있는 Looker 사전] Look 편

매거진 선택

키워드 선택 0 / 3 0
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari