LookML 및 Liquid로 동적 SQL 파생 테이블 만들기

실습 15분 universal_currency_alt 무료 show_chart 중급
info 이 실습에는 학습을 지원하는 AI 도구가 통합되어 있을 수 있습니다.
이 콘텐츠는 아직 휴대기기에 최적화되지 않음
최상의 경험을 위해 데스크톱 컴퓨터에서 이메일로 전송된 링크를 사용하여 방문하세요.

GSP932

Google Cloud 사용자 주도형 실습 로고

개요

Looker는 데이터를 대화형으로 분석하고 시각화할 수 있는 Google Cloud의 최신 데이터 플랫폼입니다. Looker를 사용하여 심도 있게 데이터를 분석하고, 다양한 데이터 소스에서 인사이트를 통합하고, 작업 가능한 데이터 기반 워크플로를 구축하며, 커스텀 데이터 애플리케이션을 만들 수 있습니다.

이 실습에서는 SQL 파생 테이블을 만들어 동적 값을 생성하고 여러 사용 사례를 해결하는 방법을 알아봅니다.

실습할 내용

  • 여러 사용 사례를 해결하기 위해 SQL 파생 테이블 만들기
  • Liquid를 사용하여 템플릿 필터로 동적 값을 생성하도록 SQL 파생 테이블 업데이트
  • 비즈니스 사용자가 동적 SQL 파생 테이블을 활용하여 복잡한 질문에 답변하는 방법 이해

기본 요건

LookML에 대한 지식이 필요합니다. 이 실습을 시작하기 전에 Looker의 LookML 이해를 완료하는 것이 좋습니다.

설정 및 요건

실습 시작 버튼을 클릭하기 전에

다음 안내를 확인하세요. 실습에는 시간 제한이 있으며 일시중지할 수 없습니다. 실습 시작을 클릭하면 타이머가 시작됩니다. 이 타이머는 Google Cloud 리소스를 사용할 수 있는 시간이 얼마나 남았는지를 표시합니다.

실무형 실습을 통해 시뮬레이션이나 데모 환경이 아닌 실제 클라우드 환경에서 직접 실습 활동을 진행할 수 있습니다. 실습 시간 동안 Google Cloud에 로그인하고 액세스하는 데 사용할 수 있는 새로운 임시 사용자 인증 정보가 제공됩니다.

이 실습을 완료하려면 다음을 준비해야 합니다.

  • 표준 인터넷 브라우저 액세스 권한(Chrome 브라우저 권장)
참고: 이 실습을 실행하려면 시크릿 모드 또는 시크릿 브라우저 창을 사용하세요. 개인 계정과 학습자 계정 간의 충돌로 개인 계정에 추가 요금이 발생하는 일을 방지해 줍니다.
  • 실습을 완료하기에 충분한 시간(실습을 시작하고 나면 일시중지할 수 없음)
참고: 계정에 추가 요금이 발생하지 않도록 하려면 개인용 Google Cloud 계정이나 프로젝트가 이미 있어도 이 실습에서는 사용하지 마세요.

실습을 시작하고 Looker에 로그인하는 방법

  1. 준비가 되면 실습 시작을 클릭합니다.

    이 실습에서 사용해야 하는 임시 사용자 인증 정보가 '실습 세부정보' 창에 표시됩니다.

    실습 비용을 결제해야 하는 경우 결제 수단을 선택할 수 있는 팝업이 열립니다.

    '실습 세부정보' 창에 표시된 실습 사용자 인증 정보를 확인합니다. 이 실습에서 Looker 인스턴스에 로그인할 때 이 정보를 사용합니다.

    참고: 다른 사용자 인증 정보를 사용하면 오류가 발생하거나 요금이 부과됩니다.
  2. Looker 열기를 클릭합니다.

  3. 제공된 사용자 이름과 비밀번호를 이메일비밀번호 입력란에 입력합니다.

    사용자 이름:

    {{{looker.developer_username | Username}}}

    비밀번호:

    {{{looker.developer_password | Password}}} 중요: 이 페이지의 '실습 세부정보' 창에 표시된 사용자 인증 정보를 사용해야 합니다. Google Cloud Skills Boost 사용자 인증 정보를 사용하지 마세요. 개인용 Looker 계정이 있더라도 이 실습에 사용하지 마세요.
  4. 로그인을 클릭합니다.

    로그인이 완료되면 이 실습에서 사용할 Looker 인스턴스가 표시됩니다.

작업 1. 여러 사용 사례를 해결하기 위해 단일 SQL 파생 테이블 만들기

LookML에서는 SQL 쿼리를 사용하여 SQL 파생 테이블을 정의하거나 Explore 쿼리를 사용하여 기본 파생 테이블을 정의하는 방식으로 파생 테이블을 정의할 수 있습니다. SQL 파생 테이블을 사용하면 SQL 개발자가 Looker에서 파생 테이블을 더 쉽게 이해하고 시작할 수 있습니다.

이 작업에서는 다음과 같은 여러 고객 행동 질문에 답변할 수 있을 만큼 유연한 user_facts라는 SQL 파생 테이블을 만듭니다.

  • 미국 각 주별 모든 고객의 평균 평생 매출액평균 평생 주문 수는 얼마인가?
  • 고객의 총매출(평생) 및 총주문 수(평생) 외에 첫 주문 날짜와 마지막 주문 날짜는 언제인가?

SQL 쿼리를 사용하여 새 파생 테이블 정의

  1. 먼저 Looker 사용자 인터페이스의 왼쪽 하단에서 전환 버튼을 클릭하여 개발 모드로 전환합니다.
  1. 개발 탭을 클릭한 다음 SQL Runner를 클릭합니다.

  2. SQL 쿼리 창에 다음 쿼리를 추가합니다.

SELECT order_items.user_id AS user_id ,COUNT(distinct order_items.order_id) AS lifetime_order_count ,SUM(order_items.sale_price) AS lifetime_revenue ,MIN(order_items.created_at) AS first_order_date ,MAX(order_items.created_at) AS latest_order_date FROM cloud-training-demos.looker_ecomm.order_items GROUP BY user_id LIMIT 10

이 예시에서 원하는 쿼리는 user_id를 선택하고, 해당 사용자의 평생 주문 수를 계산한 다음, 가격을 합산하여 사용자의 평생 매출액으로 표시합니다. 또한 created_at 열의 최솟값과 최댓값을 각각 첫 번째 주문 날짜와 마지막 주문 날짜로 결정합니다.

GROUP BY 절은 user_id별로 결과를 그룹화하는 데 사용되며, LIMIT 절은 결과를 제한하는 데 사용되는데, 이는 쿼리가 성공적으로 작동하는지 확인하기 위해 레코드의 하위 집합만 검토하면 되기 때문입니다.

  1. 실행을 클릭하여 쿼리 결과를 확인하세요.

10개의 데이터 행이 표시된 결과 테이블

이 예시에서 쿼리는 실제로 사용자 ID, 평생 주문 수, 사용자로부터 발생한 평생 매출액, 첫 번째 및 마지막 주문 날짜를 반환합니다.

LIMIT 절은 이 테스트 중에 반환되는 데이터 양을 줄이는 데 사용됩니다. SQL 파생 테이블의 새 뷰 파일을 만들 때 이후 단계에서 LIMIT 절을 삭제할 것입니다.

SQL 파생 테이블의 새 뷰 파일 만들기

  1. 페이지 오른쪽 상단의 실행 옆에 있는 설정(설정 톱니바퀴 아이콘)을 클릭하고 프로젝트에 추가를 선택합니다.

  2. 프로젝트에서 qwiklabs-ecommerce를 선택합니다.

  3. 뷰 이름user_facts를 입력합니다.

  4. 추가를 클릭합니다.

SQL 파생 테이블에 대해 새로 생성된 뷰 파일을 검토하기 위해 Looker IDE로 리디렉션됩니다. Looker가 SQL Runner에 입력한 쿼리를 기반으로 SQL 파생 테이블의 뷰 파일을 자동 생성하는 것을 확인할 수 있습니다. 뷰 파일의 처음 12줄은 다음과 같습니다.

view: user_facts { derived_table: { sql: SELECT order_items.user_id AS user_id ,COUNT(distinct order_items.order_id) AS lifetime_order_count ,SUM(order_items.sale_price) AS lifetime_revenue ,MIN(order_items.created_at) AS first_order_date ,MAX(order_items.created_at) AS latest_order_date FROM cloud-training-demos.looker_ecomm.order_items GROUP BY user_id LIMIT 10 ;; }

Looker에서 파일은 다음과 같아야 합니다.

10줄의 코드가 표시된 user_facts.view

새로운 user_facts 뷰가 views 폴더 외부에 생성되었습니다. 프로젝트에서 뷰 파일을 체계적으로 정리하는 것이 좋습니다.

  1. 옆의 화살표를 클릭하여 뷰 목록을 확인합니다.

  2. user_facts.view를 클릭하고 views 폴더 아래로 드래그합니다.

  3. user_facts.view를 클릭하여 SQL 파생 테이블의 뷰 파일을 확인합니다.

Looker는 SQL 쿼리의 SELECT 절에 있는 각 열에 대한 측정기준과 새 개수 측정값을 자동 생성합니다. 다음 단계에서는 더 이상 필요하지 않은 LIMIT 절을 삭제하고, 새 개수 측정값을 숨기고, 뷰의 기본 키를 추가하도록 뷰 파일을 수정합니다.

  1. sql 파라미터에서 LIMIT 10의 코드 줄을 삭제합니다.

앞서 강조한 것처럼 Looker는 파생 테이블에 사용된 측정기준과 함께 개수 측정값을 자동 생성합니다. 이미 다른 뷰에서 동일한 수치를 제공하는 개수가 있는 경우 이 자동 생성된 개수 측정값은 유용하지 않을 수 있습니다.

이 예시에서 자동 생성된 개수 측정값은 주문 ID를 계산하며 order_items 뷰에 이미 주문 개수가 있습니다.

hidden: yes 파라미터를 사용하여 개수 측정값을 삭제하거나 숨길 수 있습니다. 다른 개수와 동일한지 검증하기 위해 이 개수 측정값을 보관하고 싶다면, 숨기는 것이 좋습니다.

  1. measure: count 정의에서 type: count 앞에 새 줄을 추가하고 다음을 삽입합니다.
hidden: yes

마지막으로 새 뷰에 기본 키가 있는지 확인하는 것이 좋습니다.

이 예시에서는 각 주문에 관한 세부정보를 제공하는 이 뷰의 중심 구성 ID인 user_id 측정기준에 primary_key: yes 파라미터를 추가할 수 있습니다.

  1. dimension: user_id 정의에서 type: number 앞에 새 줄을 추가하고 다음을 삽입합니다.
primary_key: yes

이제 user_facts라는 새 뷰를 사용하여 새 측정기준과 측정값을 만들고, 모델 파일의 Explore에 조인하거나 Git 워크플로를 완료하여 변경사항을 프로덕션으로 보낼 수 있습니다. 다음 섹션에서 이를 기반으로 계속 빌드합니다.

  1. 변경사항 저장을 클릭합니다. 업데이트된 코드는 다음과 같습니다.
view: user_facts { derived_table: { sql: SELECT order_items.user_id AS user_id ,COUNT(distinct order_items.order_id) AS lifetime_order_count ,SUM(order_items.sale_price) AS lifetime_revenue ,MIN(order_items.created_at) AS first_order_date ,MAX(order_items.created_at) AS latest_order_date FROM cloud-training-demos.looker_ecomm.order_items GROUP BY user_id ;; } measure: count { hidden: yes type: count drill_fields: [detail*] } dimension: user_id { primary_key: yes type: number sql: ${TABLE}.user_id ;; }

Looker에서 파일은 다음과 같아야 합니다.

28줄의 코드가 표시된 user_facts.view

변경사항 커밋 및 프로덕션에 배포

  1. LookML 검사를 클릭한 다음 변경사항 커밋 및 푸시를 클릭합니다.

  2. 커밋 메시지를 추가하고 커밋을 클릭합니다.

  3. 마지막으로 프로덕션에 배포를 클릭합니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. SQL 파생 테이블의 뷰 파일 만들기

작업 2. 비즈니스 질문에 답하기 위한 측정항목 추가

이 섹션에서는 미국 각 주별 모든 고객의 평균 평생 매출액과 평균 평생 주문 수는 얼마인가?라는 초기 고객 행동 질문에 답하기 위해 두 가지 측정항목을 추가합니다.

  1. user_facts.view 뷰에서 평균 평생 매출액과 평균 평생 주문 수를 계산하는 average_lifetime_revenueaverage_lifetime_order_count라는 두 가지 측정값을 추가합니다.
measure: average_lifetime_revenue { type: average sql: ${TABLE}.lifetime_revenue ;; } measure: average_lifetime_order_count { type: average sql: ${TABLE}.lifetime_order_count ;; }
  1. 변경사항 저장을 클릭합니다. 다음과 유사한 뷰가 표시됩니다.

이전 단계의 레이아웃을 모방하여 25~43행의 코드를 표시하는 user_facts.view

새로운 뷰를 Explore에 조인

이 섹션에서는 새 파생 테이블을 검토하고 테스트합니다. 먼저 모델 파일의 order_items Explore 정의에 조인한 다음 주문 항목 Explore를 사용하여, 변경사항을 프로덕션에 푸시할 경우 비즈니스 사용자가 보게 될 내용을 검토합니다.

  1. 같은 페이지에서 model 폴더 안에 있는 training_ecommerce.model 파일을 클릭하여 내용을 수정합니다.

  2. explore: order_items 정의를 찾습니다. users 뷰에 대한 조인과 같이 여러 조인이 정의되어 있는 것을 확인할 수 있습니다.

14~28행이 표시된 training_ecommerce.model

  1. explore: order_items 정의에서 기존 users 조인 위에 다음을 지정하여 user_facts에 대한 새 조인을 추가합니다.
join: user_facts { type: left_outer sql_on: ${order_items.user_id} = ${user_facts.user_id};; relationship: many_to_one }

sql_on 파라미터는 조인 필드를 user_id로 식별합니다. relationship 파라미터는 order_itemsuser_id의 인스턴스가 여러 개 있을 수 있지만 user_facts에는 각 주문에 대한 요약 행으로 구성된 각 user_id의 인스턴스가 하나만 있음을 식별합니다.

  1. 변경사항 저장을 클릭합니다. 이제 탐색에 다음이 포함됩니다.
explore: order_items { join: user_facts { type: left_outer sql_on: ${order_items.user_id} = ${user_facts.user_id};; relationship: many_to_one } join: users { type: left_outer sql_on: ${order_items.user_id} = ${users.id} ;; relationship: many_to_one } ... ... ... }

이제 Looker에서 뷰가 다음과 같이 표시됩니다.

user_facts Explore가 추가된 training_ecommerce.model 파일(1~29행 표시)

  1. 이제 뷰를 Explore에 조인했으므로 주문 항목의 Explore 페이지로 이동합니다.

  2. 사용자 사실 뷰에서 사용자 ID 측정기준과 평균 평생 주문 수평균 평생 매출액 측정값을 선택합니다.

  3. 행 제한을 100으로 설정합니다.

  4. 실행을 클릭합니다. 다음과 유사한 결과가 표시됩니다.

사용자 ID 측정기준, 평균 평생 주문 수, 평균 평생 매출액 측정값에 대한 데이터 10행을 표시하는 결과 테이블

  1. 이제 사용자 ID 측정기준을 삭제하고 Users 뷰에서 측정기준을 추가합니다.

  2. 국가 측정기준을 클릭하고 필터를 추가합니다.

  3. USA를 선택합니다.

USA 필터

  1. 실행을 클릭하여 쿼리를 다시 실행합니다.

이제 동일한 측정항목을 사용하여 사용자별 및 주별 평균 평생 매출액과 평균 평생 주문 수를 각각 계산할 수 있습니다.

  1. 다음 결과가 표시될 것입니다.

사용자 국가, 사용자 주, 평균 평생 주문 수, 평균 평생 매출액 측정항목에 대한 10개의 데이터 행을 표시하는 결과 테이블

  1. training_ecommerce 모델 파일로 다시 돌아갑니다.

변경사항 커밋 및 프로덕션에 배포

  1. LookML 검사를 클릭한 다음 변경사항 커밋 및 푸시를 클릭합니다.

  2. 커밋 메시지를 추가하고 커밋을 클릭합니다.

  3. 마지막으로 프로덕션에 배포를 클릭합니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. 비즈니스 질문에 답하기 위한 측정항목 추가

작업 3. 템플릿 필터를 사용하여 동적 값을 생성하도록 SQL 파생 테이블 업데이트

이전 실습에서 살펴본 것처럼 템플릿 필터는 파라미터와 동일한 논리적 패턴을 따릅니다. 템플릿 필터를 사용하면 최종 사용자가 여러 필터 연산자 중에서 선택할 수 있다는 점이 가장 큰 차이점입니다. 숫자 데이터 유형의 경우 '같음', '보다 큼', '사이에 있음' 등이 될 수 있습니다.

템플릿 필터에서는 값이 하드 코딩되지 않습니다. 즉, 사용자가 값을 입력하면 생성된 SQL 쿼리에 전달됩니다. 하지만 필터 정의에서 탐색 분석 및 측정기준을 지정하여 옵션의 드롭다운 메뉴를 표시할 수 있습니다.

이 섹션에서는 사용자가 선택한 기간을 기준으로 모든 값을 다시 계산하도록 첫 번째 섹션의 SQL 파생 테이블 정의를 수정합니다.

  1. Looker IDE에서 user_facts 뷰로 다시 이동합니다.

  2. 먼저 다음과 같이 조건부 WHERE 절을 포함하도록 SQL 파생 테이블 정의를 수정하세요.

derived_table: { sql: SELECT order_items.user_id AS user_id ,COUNT(distinct order_items.order_id) AS lifetime_order_count ,SUM(order_items.sale_price) AS lifetime_revenue ,MIN(order_items.created_at) AS first_order_date ,MAX(order_items.created_at) AS latest_order_date FROM cloud-training-demos.looker_ecomm.order_items WHERE {% condition select_date %} order_items.created_at {% endcondition %} GROUP BY user_id;; }
  1. 다음으로 사용자가 날짜를 선택할 수 있도록 derived_table 정의 아래에 새 필터를 추가합니다.
filter: select_date { type: date suggest_explore: order_items suggest_dimension: order_items.created_date }

이제 뷰 파일의 처음 18줄은 다음과 같이 표시됩니다.

view: user_facts { derived_table: { sql: SELECT order_items.user_id AS user_id ,COUNT(distinct order_items.order_id) AS lifetime_order_count ,SUM(order_items.sale_price) AS lifetime_revenue ,MIN(order_items.created_at) AS first_order_date ,MAX(order_items.created_at) AS latest_order_date FROM cloud-training-demos.looker_ecomm.order_items WHERE {% condition select_date %} order_items.created_at {% endcondition %} GROUP BY user_id;; } filter: select_date { type: date suggest_explore: order_items suggest_dimension: order_items.created_date }
  1. 변경사항 저장을 클릭합니다. 이제 파일이 다음과 같이 표시됩니다.

1~18행이 표시된 user_facts.view

이제 이전 작업의 쿼리를 반복하여 필터가 추가될 때 값이 변경되는지 확인하여 주문 상품 Explore에서 동적 SQL 파생 테이블을 테스트합니다.

  1. Order Items Explore로 다시 이동합니다.

  2. '사용자 사실' 뷰에서 평균 평생 주문 수평균 평생 매출액 측정값을 선택합니다.

  3. 사용자 뷰에서 측정기준을 선택합니다.

  4. 사용자 사실 보기의 날짜 선택이라는 새 필터 전용 필드 옆에 있는 필터 아이콘을 클릭합니다.

  5. UI 상단의 첫 번째 필터 값에 대해 '이전'을 선택된 상태로 둡니다.

  6. 두 번째 필터 값으로 완전한 연도를 선택하고 빈 값 상자에 1을 추가합니다.

  7. 사용자 보기에서 국가에 대한 필터를 추가하고 USA로 설정합니다.

  8. 실행을 클릭하여 결과를 확인합니다.

지난 1년 동안의 각 주 또는 국가별 평균 평생 주문 수와 평균 평생 매출액이 표시됩니다.

  1. SQL 탭을 클릭하여 SQL을 검토합니다.

  2. 이때 필터 값을 조작하고 SQL 탭을 검토하여 템플릿화된 필터가 값을 어떻게 변경하는지 확인할 수 있습니다.

  3. user_facts 뷰로 다시 이동합니다.

변경사항 커밋 및 프로덕션에 배포

  1. LookML 검사를 클릭한 다음 변경사항 커밋 및 푸시를 클릭합니다.

  2. 커밋 메시지를 추가하고 커밋을 클릭합니다.

  3. 마지막으로 프로덕션에 배포를 클릭합니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. 템플릿 필터를 사용하여 동적 값을 생성하도록 SQL 파생 테이블 업데이트

수고하셨습니다.

이 실습에서는 Liquid를 사용하여 템플릿 필터로 동적 값을 생성하는 SQL 파생 테이블을 만들고 동적 SQL 파생 테이블을 활용하여 복잡한 질문에 답변했습니다.

다음 단계/더 학습하기

Google Cloud 교육 및 자격증

Google Cloud 기술을 최대한 활용하는 데 도움이 됩니다. Google 강의에는 빠른 습득과 지속적인 학습을 지원하는 기술적인 지식과 권장사항이 포함되어 있습니다. 기초에서 고급까지 수준별 학습을 제공하며 바쁜 일정에 알맞은 주문형, 실시간, 가상 옵션이 포함되어 있습니다. 인증은 Google Cloud 기술에 대한 역량과 전문성을 검증하고 입증하는 데 도움이 됩니다.

설명서 최종 업데이트: 2024년 4월 24일

실습 최종 테스트: 2024년 4월 24일

Copyright 2026 Google LLC. All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.

시작하기 전에

  1. 실습에서는 정해진 기간 동안 Google Cloud 프로젝트와 리소스를 만듭니다.
  2. 실습에는 시간 제한이 있으며 일시중지 기능이 없습니다. 실습을 종료하면 처음부터 다시 시작해야 합니다.
  3. 화면 왼쪽 상단에서 실습 시작을 클릭하여 시작합니다.

시크릿 브라우징 사용

  1. 실습에 입력한 사용자 이름비밀번호를 복사합니다.
  2. 비공개 모드에서 콘솔 열기를 클릭합니다.

콘솔에 로그인

    실습 사용자 인증 정보를 사용하여
  1. 로그인합니다. 다른 사용자 인증 정보를 사용하면 오류가 발생하거나 요금이 부과될 수 있습니다.
  2. 약관에 동의하고 리소스 복구 페이지를 건너뜁니다.
  3. 실습을 완료했거나 다시 시작하려고 하는 경우가 아니면 실습 종료를 클릭하지 마세요. 이 버튼을 클릭하면 작업 내용이 지워지고 프로젝트가 삭제됩니다.

현재 이 콘텐츠를 이용할 수 없습니다

이용할 수 있게 되면 이메일로 알려드리겠습니다.

감사합니다

이용할 수 있게 되면 이메일로 알려드리겠습니다.

한 번에 실습 1개만 가능

모든 기존 실습을 종료하고 이 실습을 시작할지 확인하세요.

시크릿 브라우징을 사용하여 실습 실행하기

이 실습을 실행하는 가장 좋은 방법은 시크릿 모드 또는 시크릿 브라우저 창을 사용하는 것입니다. 개인 계정과 학생 계정 간의 충돌로 개인 계정에 추가 요금이 발생하는 일을 방지해 줍니다.