look ml 사용정리 2 view와 model

이명진·2025년 2월 6일
0

LookML 정리

목록 보기
2/4

들어가기 이전

유료로 구글에서 공부할수 있는데 이를 공부하며 내가 정리한 내용이다.
문제가 생길 경우 해당 글을 삭제할 것임을 밝힌다.

View 와 Model 에 관하여

view 와 model은 코드 자체가 있는 곳이다. 코드가 유츌될 가능성이 있어서 화면 캡쳐는 하지 않고 설명만 적는다.
나는 프론트 엔드 이기 때문에 예시로 프론트 엔드 예시가 들어갈수 있다.

model

model 은 view들을 explore로 묶을수 있다.
explore로 view를 선언해줘야 Explore 메뉴에서 확인이 가능하다.
join으로 다른 view랑 연결시켜줄수가 있다.
join의 개념은 sql에서 나온다 테이블 두개를 합쳐주는 것인데 쉽게 말한 것이고 심화적을 보면 조금 다르다.

view를 관리하는 곳이라고 생각하면 편하다. model이 어머니 라면 view 는 자식들의 개념이라고 생각하면 될것 같다.

프론트 엔드 예시로는 index.js 같은 느낌이다. 다양한 컴포넌트(view)들을 관리할수 있다.

view

view 에서는 SQL을 변형 시키는 방법으로만 사용해서 이 방법으로 정리해둔다.

derived_table 이라는 곳에 sql을 문을 작성할수 있다.
이는 이전 글에서 소개한 루커 메인 홈의 메뉴의 develop > sql runner 에서 derived_table을 자동 변경해주니 여기서 실행시켜서 코드를 가져오면 된다.
여기서 자동으로 dimension과 measure를 만들어주는데 measure는 기본 count measure 만 만들어 준다.

derived_table에서 SQL을 작성하고 그 아래에서 코드와 관련된 measure 와 dimension을 만든다.

dimension

처음 sql runner 에서 가져올때 이러한 모양으로 생겼다.

 dimension: 이름 {
    type: string
    sql: ${TABLE}.이름 ;;
  }

sql문으로 정보를 가져오는데 TABLE은 위의 derived_table을 말한다.

measure

기본 measure는 이렇게 생겼다.

  measure: count {
    type: count
    drill_fields: [detail*]
  }

type으로는 count를 쓰는데 dimension을 measure로 사용하고 싶다면 type을 Sum이나 max로 변경해주자.
아니면 이름을 비슷하게 변경하고 measure 로 새로 만드는 방법도 있다.
숫자 그대로 measure 로 변경하고 싶을때 sum이랑 max를 사용해서 dimension을 measure 로 변경해주는데
sum은 진짜로 전체 합산될수 있으니 안전하게 max로 사용하는게 낫다.

filters

filters를 이용해서 dimension이 true인값들만 세기 등등을 할수 있다.

filters : [dimension : istrue:”yes”]

이런식으로 truefalse를 쓰지 않고 yesno를 많이 쓴다.

드릴다운과 링킹

이전 글에서 merge 기능에 대해서 말한적이 있다. 그때 많이 불편한 부분이 있었는데 merge 에서 추가적인 정보가 필요할때 혹은 데이터에서 다른 데이터를 보고 싶을때 (예. 테이블 그래프에서 내가 선택한 애의 선형 그래프를 따로 보고 싶을 경우 ) 이럴때는 드릴다운과 링킹을 사용하게 된다.

코드는 공식문서에 있는 코드로 예시를 가져왔다 . drill_fields가 드릴 다운 옵션이고 link가 링킹 옵션이다.

measure: returned_count {
  type: count_distinct
  sql: ${id} ;;
  filters: [is_returned: "yes"]
  drill_fields: [detail*]
  link: {
    label: "Explore Top 20 Results by Sale Price"
    url: "{{ link }}&sorts=order_items.sale_price+desc&limit=20"
  }
}

set: detail {
  fields: [id, order_id, status, created_date, sale_price, products.brand, products.item_name, users.email]
}

간단한 차이점과 공통점을 확인하면 이렇다.
공통점 : view에서 관리하여 작업할수 있다. 내가 선택한 필드의 심화 내용을 볼수 있다.
차이점 : 드릴다운은 팝업형태 , 링킹은 새로운 링크로 이동한다.

드릴다운

드릴 다운 (drill down)이다. 프론트 엔드로 업무할때 드릴다운은 pros를 넘겨줄때 많이 등장하던 용어인데 비슷한 것 같기도 하고 아닌것 같기도 하다. 프론트엔드 에서 pros(변수, any 등 )을 밑으로 던져서 관련된 내용의 심화를 다룰수 있는건데
이와 비슷하게 해당 차트에서 원하는 애를 클릭하면 drill down 메뉴가 등장한다.

출처: 공식문서
내가 선택한 애의 심화 내용을 볼수 있는 옵션이다. 드릴 다운은 링킹과는 다르게 팝업 형태로 등장한다.
드릴 다운, 링킹은 여러개 넣을수 있는데 여러개 있을 경우 여러개가 보이고 하나일 경우 클릭하면 그냥 하나의 드릴다운이 바로 켜진다.

view에서 관리를 하는데 드릴 다운의 경우 코드로는 이렇게 사용한다.


set: detail {
  fields: [id, order_id, status, created_date, sale_price, products.brand, products.item_name, users.email]
}

set으로 사용하는데 이름은 아무거나 지어도 상관없고 이렇게 지은 내용을 가지고

dimension이나 measure 에서 객체 내 drill_fields:[detail*] 으로 사용한다. 뒤에 “ * ”는 꼭 붙여야 한다.

filelds 내용에는 dimension이나 필터된 내용이 들어간다. 공식문서에서는 실험적인 기능으로 시각적 드릴을 사용 할수 있어서
차트를 표현할수 있는것 같은데 내용은 공식문서를 확인해보자.

링킹

링킹은 링크를 넣어서 원하는 링크로 이동하는 것이다. 링크를 이용하여 해당 페이지로 이동할수 있는데 어떠한 사이트도 다 접근이 가능한것같다. 필자는 시각적 그래프 look 파일을 만들어서 look 파일로 이동하는 것만 이용했다.
위의 코드 예시에서 링킹 부분은 이부분이다

  link: {
    label: "Explore Top 20 Results by Sale Price"
    url: "{{ link }}&sorts=order_items.sale_price+desc&limit=20"
  }

라벨을 이용하여 이름을 수정할수 있는데 라벨은 테이블에서 마우스를 클릭하거나 오른쪽 클릭할때 볼수 있다.

고정 값 말고 동적인 값을 사용할수가 있는데 {{}} 괄호 를 이렇게 두개씩 넣어서 쓰면 동적인 파라미터 값을 넣을수 있다.

이를 통해서 내가 이용했던 look에서는 필터 값을 넣어줄수가 있는데

이런 형식으로 생겼다. 아래는 내가 사용했던 주소의 예시이다 look 파일로 이동했기 때문에 /looks 로 시작한다.
f 부분이 필터를 사용할때 넣어주는 것이다.
url: "/looks/7?f[look에 있는 dimension이름 ]={{내가 클릭한 dimension._value}}

이렇게 쓰면 look에 있는 dimension에 내가 클릭해서 들어온 값으로 필터가 걸리게 된다.
예) 나라이름 중 대한민국을 클릭하여 look으로 이동하면 filter에 대한민국이 필터가 걸리게 되어서 대한민국 데이터만 나온다.
이렇게 내가 클릭한 값을 받아서 그 부분만 룩으로 정리를 해줘서 심화 내용을 정리해줄수가 있다.

파라미터

이 부분은 심화 부분이다. 한 테이블을 만들고 싶은데 유동적인 조건으로 테이블을 변화 시키고 싶다.
예) 어떤 날짜에서 임의의 조건(5)일 내의 데이터를 확인하고 싶다.
임의의 조건은 내가 테이블에서 필터로 조절을 할수가 있는데 이 값을 sql로 넘겨줄수 있는 기능이다.

view 내부에서 사용되고 아래와 같이 사용할수 있다.

parameter: start_date {
   type: date
   default_value: "2024-02-01"
 }

시작일을 2024-02-01 로 기본값으로 선택하고 이값은 필터로 변경할수 있다.
derived_table 의 sql 내부에서는 이 파라미터를 넣을 곳에 {% parameter start_date %}로 변경해주면된다.
parameter 에서 suggestions을 사용할수 있다
suggestions을 이용해서 배열로 값을 넣어주면 넣어준 값들을 필터에서 보여주며 제안해줄수 있다

view와 model에서 생각나는 정보는 이정도 이다. 더 생각나면 추후에 더 기록 해 보도록 하겠다.

profile
프론트엔드 개발자 초보에서 고수까지!

0개의 댓글