사용
constant: constant_name { value: "string" export: none | override_required | override_optional }
|
계층 구조
constant |
기본값
없음
수락
|
정의
constant 매개변수는 LookML 상수를 정의하여 프로젝트 전체에서 재사용할 수 있는 값을 지정할 수 있습니다. 상수는 문자열이 허용되는 모델의 모든 위치와 LookML 대시보드 요소의 model 및 explore 매개변수에서 참조할 수 있으므로 LookML 코드의 반복을 줄일 수 있습니다.
상수는 프로젝트 매니페스트 파일에 정의해야 합니다. 그런 다음 @{constant_name} 구문을 사용하여 프로젝트 전체에서 상수를 사용할 수 있습니다.
constant의 export 하위 매개변수를 사용하여 개발자가 상수를 참조하는 파일을 다른 프로젝트로 가져올 때 상수의 값을 재정의해야 하는지 여부를 지정할 수 있습니다.
export
constant의 export 하위 매개변수를 사용하여 해당 상수를 참조하는 파일을 다른 프로젝트로 가져올 때 상수를 사용하는 방법을 결정할 수 있습니다.
기본적으로 상수를 참조하는 가져온 파일은 가져오기 프로젝트에서 가져온 프로젝트의 매니페스트 파일에 지정된 값을 사용합니다. export 매개변수는 가져오기 프로젝트에서 사용할 상수에 새 값을 제공하여 개발자가 상수의 값을 재정의해야 하는지 여부를 지정합니다. export 매개변수에서 사용할 수 있는 값은 다음과 같습니다.
none:export의 기본값입니다. 가져오기 프로젝트에서 상수 값을 재정의할 수 없습니다. 가져오기 프로젝트는 가져온 프로젝트의 매니페스트 파일에 지정된 상수 값을 사용합니다.override_optional: 가져오기 프로젝트에서 상수의 값을 선택적으로 재정의할 수 있습니다. 가져오기 프로젝트의 매니페스트 파일에 값을 제공하지 않으면 가져온 프로젝트의 원래 값이 사용됩니다.override_required: 가져오기 프로젝트는 가져온 프로젝트의 매니페스트 파일에 원래 지정된 상수 값을 재정의해야 합니다. 가져오기 프로젝트에 새로운 상수 값이 제공되지 않으면 Looker에서 오류가 표시됩니다.
상수는 원래 정의된 프로젝트의 파일에서만 사용할 수 있습니다. 따라서 가져온 파일이 있는 프로젝트에 정의된 상수는 가져온 파일에서만 사용할 수 있으며 가져오기 프로젝트에서 정의된 파일은 사용할 수 없습니다.
가져오기 프로젝트의 파일에 상수를 사용하려면 가져오기 프로젝트의 매니페스트 파일에서 새 상수를 정의해야 합니다. 이러한 방식으로 정의된 상수는 가져오기 프로젝트에 정의된 파일에만 사용할 수 있습니다.
상수를 참조하는 파일을 다른 프로젝트로 가져올 때 가져오기 프로젝트의 매니페스트 파일에서 local_dependency 또는 remote_dependency의 override_constant 하위 매개변수를 사용하여 export이 override_optional 또는 override_required로 설정된 상수에 새 값을 제공할 수 있습니다.
자세한 내용과 가져온 프로젝트에서 상수를 재정의하는 예는 다른 프로젝트에서 파일 가져오기 문서 페이지를 참고하세요.
예시
다음은 constant 매개변수를 사용하여 프로젝트 전체에서 사용할 수 있는 값을 정의하는 방법의 몇 가지 예입니다.
constant 매개변수로 Explore에 라벨 지정
UI에서 샌프란시스코 사용자와 샌프란시스코 주문이라는 라벨이 지정된 두 개의 Explore를 만들고 싶다고 가정해 보겠습니다. 이렇게 하려면 프로젝트의 manifest.lkml 파일에서 "San Francisco" 값으로 상수 city을 정의하면 됩니다.
constant: city {
value: "San Francisco"
}
그런 다음 이 상수는 @{city} 구문을 통해 문자열이 허용되는 프로젝트의 모든 부분에서 참조될 수 있습니다. 이 예시에서는 다음 예시와 같이 users 및 orders Explore를 정의하고 "@{city} Users" 및 "@{city} Orders"를 label 매개변수의 값으로 지정할 수 있습니다.
explore: users {
label: "@{city} Users"
}
explore: orders {
label: "@{city} Orders"
}
이 예시에서 Looker는 Explore 메뉴와 Explore의 제목에 기본 사용자 및 주문 라벨이 아닌 샌프란시스코 사용자 및 샌프란시스코 주문을 표시합니다.

상수와 함께 sql_table_name 매개변수 사용
스키마 02349_sfo의 테이블을 기반으로 여러 뷰를 만들려고 한다고 가정해 보겠습니다. 02349_sfo 값을 여러 번 지정하지 않으려면 프로젝트의 manifest.lkml 파일에서 다음과 같이 schema이라는 상수를 만듭니다.
constant: schema {
value: "02349_sfo"
}
그런 다음 sql_table_name 매개변수의 값으로 @{schema}.view_name을 지정하여 02349_sfo 스키마를 기반으로 뷰를 만들 수 있습니다.
view: users {
sql_table_name: @{schema}.users ;;
}
이렇게 하면 스키마 02349_sfo의 users 테이블을 기반으로 하는 Users라는 뷰가 생성됩니다.
상수와 함께 Liquid 변수 및 HTML 사용
음수 데이터 값을 괄호 안에 빨간색 글꼴로 표시하려 한다고 가정합니다. 이 형식 지정을 LookML 상수의 값으로 설정하면 Liquid 변수 및 HTML을 사용하여 한 번만 형식 지정할 수 있습니다. 그런 다음 필드에 형식 지정을 적용할 때마다 상수를 참조할 수 있습니다.
예를 들어 필드에 이 형식을 적용하는 데 사용할 수 있는 negative_format이라는 상수를 만들 수 있습니다.
constant: negative_format {
value: "{% if value < 0 %}<p style='color:red;'>({{rendered_value}})</p>{% else %} {{rendered_value}} {% endif %}"
}
이렇게 하면 음수 데이터 값을 빨간색 글꼴로 지정하고 괄호로 묶도록 지정하는 상수 negative_format이 만들어집니다. 그런 다음 html 매개변수를 사용하여 데이터 세트의 측정기준과 측정값에 이 형식을 적용할 수 있습니다.
예를 들어 type: sum의 총 금액 측정값을 만들고 @{negative_format}을 html 매개변수의 값으로 지정할 수 있습니다.
measure: total_amount {
type: sum
value_format_name: usd
sql: ${amount} ;;
html: @{negative_format} ;;
}
표에서 총 금액 측정값의 음수 값은 negative_format 상수 정의에 지정된 대로 빨간색 글꼴로 표시되고 괄호로 묶여 있습니다.

LookML 대시보드에서 상수 사용
LookML 대시보드의 대시보드 요소를 정의할 때 LookML 상수를 사용하여 요소의 기반이 되는 모델과 Explore를 정의할 수 있습니다.
예를 들어 프로젝트의 manifest.lkml 파일에 상수 model_name 및 explore_name를 정의했다고 가정해 보겠습니다.
constant: model_name {
value: "thelook"
}
constant: explore_name {
value: "orders"
}
대시보드 파일에서 모델 thelook 및 Explore orders을 기반으로 할 대시보드 요소의 경우 model 값을 "@{model_name}"로 설정하고 explore 값을 "@{explore_name}"로 설정할 수 있습니다.
예를 들어 열 차트 요소의 LookML을 수정한다고 가정해 보겠습니다. 대시보드 파일에서 model 및 explore 매개변수의 값을 다음과 같이 지정할 수 있습니다.
- dashboard: dashboard_name
title: "dashboard title"
layout: newspaper
elements:
- title: Element Title
name: element_name
model: "@{model_name}"
explore: "@{explore_name}"
type: looker_column
알아 두어야 할 사항
상수 정의 내에서 상수 참조
상수를 정의할 때 프로젝트의 매니페스트 파일 내에 정의된 다른 상수를 참조할 수 있습니다. 상수 city를 이미 선언했다고 가정해 보겠습니다.
constant: city {
value: "San Francisco"
}
그런 다음 city 상수를 참조하는 상수 state를 선언할 수 있습니다.
constant: city_state {
value: "@{city}, California"
}
상수 state는 'San Francisco, California' 문자열로 확인됩니다.
상수 문법 이스케이프
상수 구문과 유사한 문자열을 작성하고 싶지만 해당 문자열이 상수로 평가되지 않도록 하려면 @ 문자 뒤에 백슬래시 이스케이프 문자 \를 사용하여 상수 구문을 이스케이프 처리하면 됩니다. 예를 들면 다음과 같습니다.
dimension: id {
type: string
label: "@\{id}"
sql: ${TABLE}.id
}
이 예시에서 label 매개변수는 id 상수를 평가하고 값을 출력하는 대신 id 측정기준의 라벨로 @{id} 문자열을 표시합니다.
괄호가 닫히지 않으면 상수 참조가 평가되지 않으므로 상수 구문을 이스케이프할 필요가 없습니다. 따라서 다음 예의 @{id는 상수로 평가되지 않습니다.
dimension: id {
type: string
label: "@{id"
sql: ${TABLE}.id
}