LookML 용어 및 개념

이 페이지에서는 LookML 개발 중에 자주 접하게 될 다음과 같은 핵심 용어 및 개념을 정의합니다.

이 페이지에서는 사용자가 LookML을 사용하지 않고 Look사용자 정의 대시보드를 만들기 때문에 이들에 대해서는 설명하지 않습니다. 그러나 이들의 쿼리는 이 페이지에서 설명하는 기본 LookML 요소를 사용합니다.

Looker 전체에서 사용되는 용어와 정의의 전체 목록은 Looker 용어집을 참조하세요. LookML 프로젝트에서 사용할 수 있는 LookML 매개변수에 대한 포괄적인 개요는 LookML 빠른 참조 페이지를 확인하세요.

LookML 프로젝트

Looker에서 프로젝트는 SQL 쿼리를 수행하는 데 사용되는 객체, 데이터베이스 연결, 사용자 인터페이스 요소를 설명하는 파일 모음입니다. 가장 기본적인 수준에서 이러한 파일은 데이터베이스 테이블 간의 관계와 Looker에서 해석하는 방법을 설명합니다. 파일에는 Looker UI에 표시되는 옵션을 정의하거나 변경하는 LookML 매개변수도 포함될 수 있습니다. 각 LookML 프로젝트는 버전 제어를 위한 자체 Git 저장소에 있습니다.

Looker를 데이터베이스에 연결한 후 Looker 프로젝트에 사용할 데이터베이스 연결을 지정할 수 있습니다.

Looker의 개발 메뉴에서 프로젝트에 액세스할 수 있습니다(자세한 내용과 기타 옵션은 프로젝트 파일 액세스 참조).

새 프로젝트 만들기에 대한 자세한 내용은 새 LookML 프로젝트 만들기를 참조하고, 기존 LookML 프로젝트에 액세스하고 변경하는 방법에 대한 자세한 내용은 프로젝트 정보 액세스 및 수정을 참조하세요.

프로젝트의 요소

LookML 프로젝트에는 모델, 뷰, LookML 대시보드가 포함될 수 있으며, 각 항목은 다른 LookML 요소로 구성됩니다.

다이어그램에서 볼 수 있듯이 LookML 프로젝트에서 보다 일반적인 파일 유형은 다음과 같습니다.

  • 모델 - 사용할 테이블과 테이블 조인 방법에 대한 정보가 포함됩니다. 여기에서는 일반적으로 모델, 모델 Explore, 조인을 정의합니다.
  • - 각 테이블(또는 여러 조인된 테이블)에 있는 정보에 액세스하거나 이를 계산하는 방법에 대한 정보가 포함됩니다. 여기서는 일반적으로 뷰, 측정기준 및 측정값, 필드 집합을 정의합니다.
  • Explore - 모델 파일 내에 정의되는 경우가 많지만 파생 테이블에 대해 또는 모델 전체에서 Explore를 확장하거나 세분화하기 위해 별도의 Explore 파일이 필요한 경우도 있습니다.
  • 매니페스트 파일 - 다른 프로젝트에서 가져온 파일 또는 프로젝트의 현지화 설정을 사용하는 방법에 대한 안내가 포함될 수 있습니다.
(문서 전체에서 대문자로 표시)는 사용자가 필드를 선택하고, 필터를 적용하고, 프로젝트 파일에 설정된 옵션 중에서 선택하여 SQL 쿼리를 작성할 수 있는 Looker의 대화형 페이지입니다.

프로젝트에는 모델, 뷰, Explore, 매니페스트 파일 외에도 기본 제공 대시보드, 문서, 현지화 등과 관련된 다른 유형의 파일이 있을 수 있습니다. 이러한 파일 유형과 LookML 프로젝트에 사용할 수 있는 다른 파일 유형에 대한 자세한 내용은 LookML 프로젝트 파일 문서 페이지를 참조하세요.

이러한 파일이 하나의 프로젝트를 구성합니다. 버전 제어에 Git를 사용하는 경우 각 프로젝트는 일반적으로 자체 Git 저장소로 백업됩니다.

LookML 프로젝트 및 파일의 출처는 무엇인가요?

LookML 파일을 만드는 가장 일반적인 방법은 데이터베이스에서 LookML 프로젝트를 생성하는 것입니다. 빈 프로젝트를 만들고 LookML 파일을 수동으로 만들거나 기존 Git 저장소를 클론하여 프로젝트를 만들 수도 있습니다.

데이터베이스에서 새 프로젝트를 생성하면 Looker는 프로젝트 빌드를 위한 템플릿으로 사용할 수 있는 기준 파일 집합을 만듭니다.

  • 파일 여러 개(데이터베이스의 모든 테이블당 파일 하나)
  • 모델 파일 1개. 모델 파일은 모든 뷰에 Explore를 선언합니다. 각 Explore 선언에는 join 로직이 포함되어 있으며, 이를 통해 Looker가 Explore와 관련이 있다고 판단할 수 있는 모든 뷰에 조인할 수 있습니다.

여기에서 원치 않는 뷰와 Explore를 삭제하고 커스텀 측정기준 및 측정값을 추가하여 프로젝트를 맞춤설정할 수 있습니다.

주요 LookML 구조

프로젝트 다이어그램의 부분에서 볼 수 있듯이 프로젝트에는 일반적으로 모델과 해당 탐색 및 조인을 정의하는 매개변수가 포함된 하나 이상의 모델 파일이 포함되어 있습니다. 또한 프로젝트에는 일반적으로 하나 이상의 뷰 파일이 포함되며, 각 파일에는 해당 뷰와 필드(측정기준 및 측정값 포함) 및 필드 집합을 정의하는 매개변수가 포함됩니다. 프로젝트에 프로젝트 매니페스트 파일을 포함할 수도 있으며, 이를 통해 프로젝트 수준 설정을 구성할 수 있습니다. 이 섹션에서는 이러한 주요 구조를 설명합니다.

모델

모델은 특정 비즈니스 사용자에게 직관적인 데이터 탐색 기능을 제공하도록 설계된 맞춤설정된 데이터베이스 포털입니다. 단일 LookML 프로젝트에서 동일한 데이터베이스 연결을 위해 여러 모델이 존재할 수 있습니다. 각 모델은 서로 다른 데이터를 서로 다른 사용자에게 노출할 수 있습니다. 예를 들어 영업 담당자는 회사 경영진과 다른 데이터가 필요하므로 각 사용자에게 적합한 데이터베이스 뷰를 제공하는 두 가지 모델을 개발할 수 있습니다.

모델은 단일 데이터베이스에 대한 연결을 지정합니다. 개발자는 모델 파일 내에서 모델의 Explore도 정의합니다. 기본적으로 Explore는 정의된 모델 이름 아래에 구성됩니다. 사용자에게 Explore 메뉴에 나열된 모델이 표시됩니다.

모델 파일의 구조 및 일반 문법을 포함한 모델 파일에 대한 자세한 내용은 LookML 프로젝트의 파일 유형 문서 페이지를 참조하세요.

모델 파일에 사용할 수 있는 LookML 매개변수에 대한 자세한 내용은 모델 매개변수 문서 페이지를 참조하세요.

뷰 선언은 필드(측정기준 또는 측정값)의 목록과 기본 테이블 또는 파생 테이블에 대한 연결을 정의합니다. LookML에서 뷰는 일반적으로 기본 데이터베이스 테이블을 참조하지만 파생 테이블을 나타낼 수도 있습니다.

뷰는 다른 뷰와 조인할 수 있습니다. 뷰 간의 관계는 일반적으로 모델 파일에서 Explore 선언의 일부로 정의됩니다.

기본적으로 보기 이름은 측정기준의 시작 부분에 표시되며 Explore 데이터 표에서 이름을 측정합니다. 이 이름 지정 규칙을 사용하면 필드가 속한 뷰를 명확하게 알 수 있습니다. 다음 예에서는 뷰 이름 주문사용자가 데이터 테이블의 필드 이름 앞에 나열됩니다.

주문 생성 날짜, 사용자 ID, 주문 수 필드가 선택된 샘플 쿼리의 데이터 테이블입니다.

뷰 파일의 구조 및 일반 문법을 포함하여 뷰 파일에 대한 자세한 내용은 LookML 프로젝트의 파일 유형 문서를 참조하세요.

뷰 파일에 사용할 수 있는 LookML 매개변수에 대한 자세한 내용은 뷰 매개변수 문서 페이지를 참조하세요.

Explore

Explore는 사용자가 쿼리할 수 있는 뷰입니다. Explore는 쿼리의 시작점 또는 SQL 용어로 SQL 문의 FROM으로 생각하면 됩니다. 모든 뷰가 관심 항목을 설명하지는 않으므로 모든 뷰가 Explore인 것은 아닙니다. 예를 들어 주 이름에 비즈니스 사용자가 직접 쿼리할 필요가 없으므로 상태 이름의 조회 테이블에 해당하는 상태 뷰가 Explore를 보장할 수 없습니다. 반면 비즈니스 사용자는 주문 뷰를 쿼리하고자 할 수 있으므로 주문에 대한 Explore를 정의하는 것이 좋습니다. 사용자가 데이터를 쿼리하기 위해 Explore와 상호작용하는 방법은 Looker에서 Explore 탐색 및 상호작용 문서 페이지를 참조하세요.

사용자는 Looker에서 탐색 메뉴에 나열된 탐색을 볼 수 있습니다. Explore는 속한 모델의 이름 아래에 나열됩니다.

규칙에 따라 Explore는 모델 파일에서 explore 매개변수를 사용하여 선언됩니다. 다음 모델 파일 예시에서는 전자상거래 데이터베이스에 대한 orders Explore가 모델 파일 내에 정의됩니다. explore 선언 내에서 참조되는 orderscustomers 뷰는 해당 뷰 파일에 다른 곳에서 정의됩니다.

connection: order_database
include: "filename_pattern"

explore: orders {
  join: customers {
    sql_on: ${orders.customer_id} = ${customers.id} ;;
  }
}

이 예시에서 connection 매개변수는 모델의 데이터베이스 연결을 지정하는 데 사용되고 include 매개변수는 모델에서 참조할 수 있는 파일을 지정하는 데 사용됩니다.

이 예시의 explore 선언은 뷰 간의 조인 관계도 지정합니다. join 선언에 대한 자세한 내용은 이 페이지의 조인 섹션을 참조하세요. join 매개변수와 함께 사용할 수 있는 LookML 매개변수에 대한 자세한 내용은 조인 매개변수 문서 페이지를 참조하세요.

측정기준 및 측정값 필드

에는 주로 Looker 쿼리의 기본 구성 요소인 측정기준 및 측정값이 포함됩니다.

Looker에서 측정기준은 그룹화 가능한 필드이며 쿼리 결과를 필터링하는 데 사용할 수 있습니다. 측정기준은 다음 중 하나일 수 있습니다.

  • 기본 테이블의 열과 직접 연결된 속성
  • 팩트 또는 숫자 값
  • 단일 행에 있는 다른 필드 값을 기준으로 계산된 파생 값

Looker에서 측정기준은 항상 Looker가 생성하는 SQL의 GROUP BY 절에 표시됩니다.

예를 들어 제품 뷰의 측정기준에는 제품 이름, 제품 모델, 제품 색상, 제품 가격, 제품 생성 날짜, 제품 지원 종료 날짜가 포함될 수 있습니다.

측정값은 COUNT, SUM, AVG, MIN, MAX 등의 SQL 집계 함수를 사용하는 필드입니다. 다른 측정값을 기준으로 계산된 필드도 측정값입니다. 측정값을 사용하여 그룹화된 값을 필터링할 수 있습니다. 예를 들어 판매 뷰에는 판매된 총 항목(수), 총 할인가(합계), 평균 할인가(평균)가 포함될 수 있습니다.

필드의 동작 및 예상 값은 string, number, time 등 선언된 유형에 따라 다릅니다. 측정값의 경우 유형에는 sumpercent_of_previous 같은 집계 함수가 포함됩니다. 자세한 내용은 측정기준 유형측정 유형을 참고하세요.

Looker에서 필드는 페이지 왼쪽의 필드 선택도구Explore 페이지에 나열됩니다. 필드 선택 도구에서 뷰를 펼쳐 해당 뷰에서 쿼리할 수 있는 필드 목록을 표시할 수 있습니다.

규칙에 따라 필드는 필드가 속한 뷰의 일부로 선언되며 뷰 파일에 저장됩니다. 다음 예시는 열러 측정기준 및 측정값 선언을 보여줍니다. 완전히 범위가 지정된 SQL 열 이름을 사용하지 않고 대체 연산자($)를 사용하여 필드를 참조한다는 점에 유의하세요.

다음은 측정기준 및 측정값 선언의 예입니다.

view: orders {
  dimension: id {
    primary_key: yes
    type: number
    sql: ${TABLE}.id ;;
  }
  dimension: customer_id {
    sql: ${TABLE}.customer_id ;;
  }
  dimension: amount {
    type: number
    value_format: "0.00"
    sql: ${TABLE}.amount ;;
  }
  dimension_group: created {
    type: time
    timeframes: [date, week]
    sql: ${TABLE}.created_at ;;
  }
  measure: count {
    type: count           # creates sql COUNT(orders.id)
    sql: ${id} ;;
  }
  measure: total_amount {
    type: sum             # creates sql SUM(orders.amount)
    sql: ${amount} ;;
  }
}

한 번에 여러 시간 관련 측정기준을 만드는 dimension_group템플릿 필터와 같은 다양한 고급 사용 사례가 있는 filter 필드를 정의할 수도 있습니다.

필드 선언과 필드에 적용할 수 있는 다양한 설정에 대한 상세 설명은 필드 매개변수 문서 페이지를 참조하세요.

조인

explore 선언의 일부로 각 join 선언은 Explore에 조인할 수 있는 뷰를 지정합니다. 사용자가 여러 뷰의 필드를 포함하는 쿼리를 만들면 Looker는 모든 필드를 올바르게 가져오는 SQL 조인 로직을 자동으로 생성합니다.

다음은 explore 선언의 조인 예시입니다.

# file: ecommercestore.model.lookml

connection: order_database
include: "filename_pattern"   # include all the views

explore: orders {
  join: customers {
    sql_on: ${orders.customer_id} = ${customers.id} ;;
  }
}

자세한 내용은 LookML에서 조인으로 작업하기 문서 페이지를 참조하세요.

프로젝트 매니페스트 파일

프로젝트에는 프로젝트 매니페스트 파일이 포함될 수 있습니다. 이 파일은 현재 프로젝트로 가져올 다른 프로젝트를 지정하고, LookML 상수를 정의하고, 모델 현지화 설정을 지정하고, 프로젝트에 확장 프로그램커스텀 시각화를 추가하는 등의 프로젝트 수준 설정에 사용됩니다.

각 프로젝트에는 하나의 매니페스트 파일만 있을 수 있습니다. 파일 이름은 manifest.lkml이어야 하며 Git 저장소의 루트 수준에 있어야 합니다. IDE의 폴더를 사용하는 경우 manifest.lkml 파일이 프로젝트 디렉터리 구조의 루트 수준에 있는지 확인하세요.

다른 프로젝트에서 LookML 파일을 가져오려면 프로젝트 매니페스트 파일을 사용하여 현재 프로젝트의 이름을 지정하거나, 로컬 또는 원격으로 저장할 수 있는 외부 프로젝트의 위치를 지정하세요. 예를 들면 다음과 같습니다.

# This project
project_name: "my_project"

# The project to import
local_dependency: {
  project: "my_other_project"
}

remote_dependency: ga_360_block {
  url: "https://github.com/llooker/google_ga360"
  ref: "4be130a28f3776c2bf67a9acc637e65c11231bcc"
}

프로젝트 매니페스트 파일에서 외부 프로젝트를 정의한 후에는 모델 파일include 매개변수를 사용하여 외부 프로젝트의 파일을 현재 프로젝트에 추가할 수 있습니다. 예를 들면 다음과 같습니다.

include: "//my_other_project/imported_view.view"
include: "//ga_360_block/*.view"

자세한 내용은 다른 프로젝트에서 파일 가져오기 문서 페이지를 참조하세요.

모델에 현지화를 추가하려면 프로젝트 매니페스트 파일을 사용하여 기본 현지화 설정을 지정하세요. 예를 들면 다음과 같습니다.

localization_settings: {
  default_locale: en
  localization_level: permissive
}

기본 현지화 설정을 지정하는 것은 모델을 현지화하는 데 필요한 단계 중 하나입니다. 자세한 내용은 LookML 모델 현지화 문서 페이지를 참조하세요.

세트

Looker에서 세트는 함께 사용되는 필드 그룹을 정의하는 목록입니다. 일반적으로 세트는 사용자가 데이터를 드릴다운한 후 표시할 필드를 지정하는 데 사용됩니다. 드릴 세트는 필드별로 지정되므로 사용자가 테이블 또는 대시보드에서 값을 클릭할 때 표시되는 데이터를 완벽하게 제어할 수 있습니다. 또한 세트를 보안 기능으로 사용하여 특정 사용자에게 표시되는 필드 그룹을 정의할 수 있습니다. 다음 예시에서는 order_items 뷰에 구매한 항목의 관련 세부정보를 나열하는 필드를 정의하는 세트 선언을 보여줍니다. 세트는 범위를 지정하여 다른 뷰의 필드를 참조합니다.

set: order_items_stats_set {
  fields: [
    id,  # scope defaults to order_items view
    orders.created_date,  # scope is "orders" view
    orders.id,
    users.name,
    users.history,  # show all products this user has purchased
    products.item_name,
    products.brand,
    products.category,
    total_sale_price
  ]
}

세트의 전체 사용 세부정보는 set 매개변수 문서 페이지를 참조하세요.

드릴다운

Looker에서 사용자가 데이터를 추가로 드릴다운할 수 있도록 필드를 구성할 수 있습니다. 드릴은 쿼리 결과 테이블 및 대시보드 모두에서 작동합니다. 드릴은 클릭한 값으로 제한된 새 쿼리를 시작합니다.

드릴 동작은 다음과 같은 측정기준 및 측정값에서 다릅니다.

  • 측정기준을 드릴하면 새 쿼리가 드릴된 값을 기준으로 필터링됩니다. 예를 들어 날짜별 고객 주문의 쿼리에서 특정 날짜를 클릭하면 새 쿼리는 해당 날짜의 주문만 표시합니다.
  • 측정값을 드릴하면 측정값에 기여한 데이터 세트가 새 쿼리에 표시됩니다. 예를 들어 개수를 드릴하면 새 쿼리는 해당 개수를 계산하는 행을 표시합니다. 최대, 최소 및 평균 측정값을 드릴할 때 해당 측정값에 기여한 모든 행이 계속 표시됩니다. 즉, 최댓값을 드릴하면 최댓값의 단일 행뿐만 아니라 최댓값을 계산하는 데 사용된 모든 행을 표시합니다.

새 드릴 쿼리에 표시할 필드는 설정을 사용하여 정의하거나 drill_fields 매개변수(필드의 경우) 또는 drill_fields 매개변수(뷰의 경우)로 정의할 수 있습니다.

파생 테이블

파생 테이블은 결과가 데이터베이스의 실제 테이블인 것처럼 사용되는 쿼리입니다. 파생 테이블은 view 선언에서 derived_table 매개변수를 사용하여 생성됩니다. Looker는 파생 테이블에 자체 열 조합이 있는 물리적 테이블인 것처럼 액세스합니다. 파생 테이블은 자체 뷰로 노출되며 기존 뷰와 동일한 방식으로 측정기준 및 측정값을 정의합니다. 파생 테이블의 뷰는 다른 뷰와 마찬가지로 쿼리되고 다른 뷰로 조인될 수 있습니다.

파생 테이블은 데이터베이스의 스크래치 스키마에 작성되고 지속성 전략을 사용하여 지정한 일정에 따라 자동으로 다시 생성되는 파생 테이블인 영구 파생 테이블(PDT)로 정의할 수도 있습니다.

자세한 내용은 Looker의 파생 테이블 문서 페이지를 참조하세요.

데이터베이스 연결

LookML 프로젝트의 또 다른 중요한 요소는 Looker가 데이터베이스에서 쿼리를 실행하는 데 사용하는 데이터베이스 연결입니다. Looker 관리자는 연결 페이지를 사용하여 데이터베이스 연결을 구성하고 LookML 개발자는 모델 파일connection 매개변수를 사용하여 모델에 사용할 연결을 지정합니다. 데이터베이스에서 LookML 프로젝트를 생성하면 Looker가 모델 파일에 connection 매개변수를 자동으로 채웁니다.

대소문자 구분

LookML은 대소문자를 구분하므로 LookML 요소를 참조할 때는 대소문자가 일치해야 합니다. 존재하지 않는 요소를 참조한 경우 Looker에서 알림을 표시합니다.

예를 들어 e_flights_pdt라는 Explore가 있고 LookML 개발자가 Explore를 참조하는 데 잘못된 대문자(e_FLIGHTS_pdt)를 사용했다고 가정해 보겠습니다. 이 예시에서 Looker IDE에는 Explore e_FLIGHTS_pdt이 존재하지 않는다는 경고가 표시됩니다. 또한 IDE는 기존 Explore 이름(e_flights_pdt)을 제안합니다.

하지만 프로젝트에 e_FLIGHTS_pdte_flights_pdt가 모두 포함된 경우 Looker IDE에서 수정할 수 없으므로 어떤 버전을 원하는지 확인해야 합니다. 일반적으로 LookML 객체 이름을 지정할 때는 소문자를 사용하는 것이 좋습니다.

IDE 폴더 이름도 대소문자를 구분합니다. 파일 경로를 지정할 때마다 폴더 이름의 대소문자가 일치해야 합니다. 예를 들어 Views라는 폴더가 있는 경우 include 매개변수에 동일한 대소문자를 사용해야 합니다. 대소문자가 프로젝트의 기존 폴더와 일치하지 않으면 Looker IDE에 오류가 표시됩니다.

Looker IDE에서 include가 파일과 일치하지 않는다는 경고를 표시합니다.