본문 바로가기

Infra/Google Cloud

[Google Cloud] Google Study Jam : Build LookML Object in Looker(3)

728x90
반응형
본 포스트는 2024년 Google Study Jam을 공부하면서 개인적으로 내용을 정리한 포스트 입니다.

Filtering Explores with LookML - Types of Explore filters

Explore를 필터링하려면 해당 Explore에서 생성되는 모든 SQL Query에 기본 WHERE이나 HAVING 절을 적용해야 한다.

  • sql_always_wheresql_always_having은 유사하게 작동하며 동일한 사용 사례를 가진다.
  • always_filter
  • conditionally_filter

 

 

  • sql_always_where 및 sql_always_having:
    • 이 필터들은 수정할 수 없는 조건을 Explore에 추가하여 특정 데이터 행을 항상 제외할 수 있게 한다.
    • sql_always_where는 SQL 쿼리의 WHERE 절에 적용되고, sql_always_having은 HAVING 절에 적용된다.
    • 사용자는 UI에서 이 필터가 적용되었다는 것을 알 수 없으며, SQL을 볼 수 있는 권한이 있는 경우에만 확인할 수 있다.
  • always_filter:
    • 사용자가 정의한 특정 필터를 항상 포함하도록 요구한다. 기본값을 설정할 수 있으며, 사용자는 이 값을 변경할 수 있지만 필터를 완전히 제거할 수는 없다.
    • 예를 들어, 주문 상태나 사용자 국가와 같은 특정 차원으로 항상 필터링하도록 설정할 수 있다.
  • conditionally_filter:
    • 사용자가 변경할 수 있는 기본 필터를 추가하며, 특정 다른 필터를 적용할 경우 기본 필터를 제거할 수 있다.
    • 사용자는 필터 연산자와 값을 변경할 수 있지만, 특정 대체 필드를 필터링하지 않는 한 필터 자체를 제거할 수는 없다.
    • 예를 들어, 지난 1년 동안의 데이터만 반환하도록 설정하되, 사용자 ID나 주 차원에 필터를 적용하면 이 조건을 변경할 수 있다.

 

 

 

Filtering Explores with LookML - Task1. add an always_filter

1. training_ecommerce.model에서 explore : order_items에 다음 필터를 추가한다.

  • 필터 하위 매개변 수를 사용하여 기본값이 "Complete"order_items 테이블의 status를 사용할 필터와 기본값이 "USA"users 테이블의 country를 정의한다.
always_filter: {
    filters: [order_items.status: "Complete", users.country: "USA"]
}

 

2. Explore Order Items > Filters에서 사전에 정의한 필터를 지정할 수 있다.

 

 

Filtering Explores with LookML - Task2. Add a sql_always_where filter

1. training_ecommerce.model 파일에서 이전에 만든 필터를 제거하고 sql_always_where을 추가한다.

  • created_date 테이블을 사용하여 2021-01-01 이후에 데이터만 포함하도록 필터링한다.
sql_always_where: ${created_date} >= '2021-01-01' ;;

 

2. Explore Order Items에서 필터링이 걸려있는 결과를 확인할 수 있다.

 

 

Filtering Explores with LookML - Task3. Add a sql_always_having filter

1. training_ecommerce.model 파일에서 이전에 만든 필터를 제거하고 sql_always_having을 추가한다.

  • "order_item_count" measure을 사용하여 1개의 주문 항목이 있는 데이터만 포함하도록 필터링한다.
sql_always_having: ${order_item_count} = 1 ;;

 

2. Explore Order Items에서 필터링이 걸려있는 결과를 확인할 수 있다.

 

 

Filtering Explores with LookML - Task4. Add a conditionality_filter

1. training_ecommerce.model 파일에서 이전에 만든 필터를 제거하고 conditionally_filter를 추가한다.

  • filters : created_date를 3년 이내로 설정
  • unless : 그렇지 않은 경우 users.id, users.state를 사용한다.
conditionally_filter: {
    filters: [created_date: "3 years"]
    unless: [users.id, users.state]
}

 

2. Explore Order Items > Filters에서 사전에 정의한 필터를 지정할 수 있다.

728x90
반응형