상수

사용

constant: constant_name {
  value: "string"
  export: none | override_required | override_optional
}
계층 구조
constant
기본값
없음

수락
  • 상수의 값을 지정하는 문자열을 허용하는 value 하위 매개변수
  • export 하위 매개변수: 가져오기 프로젝트에서 사용할 때 상수를 재정의해야 하는지 여부를 지정합니다.

정의

constant 매개변수는 LookML 상수를 정의하여 프로젝트 전체에서 재사용할 수 있는 값을 지정할 수 있습니다. 상수는 문자열이 허용되는 모델의 모든 위치와 LookML 대시보드 요소의 modelexplore 매개변수에서 참조할 수 있으므로 LookML 코드의 반복을 줄일 수 있습니다.

상수는 프로젝트 매니페스트 파일에 정의해야 합니다. 그런 다음 @{constant_name} 구문을 사용하여 프로젝트 전체에서 상수를 사용할 수 있습니다.

constantexport 하위 매개변수를 사용하여 개발자가 상수를 참조하는 파일을 다른 프로젝트로 가져올 때 상수의 값을 재정의해야 하는지 여부를 지정할 수 있습니다.

export

constantexport 하위 매개변수를 사용하여 해당 상수를 참조하는 파일을 다른 프로젝트로 가져올 때 상수를 사용하는 방법을 결정할 수 있습니다.

기본적으로 상수를 참조하는 가져온 파일은 가져오기 프로젝트에서 가져온 프로젝트의 매니페스트 파일에 지정된 값을 사용합니다. export 매개변수는 가져오기 프로젝트에서 사용할 상수에 새 값을 제공하여 개발자가 상수의 값을 재정의해야 하는지 여부를 지정합니다. export 매개변수에서 사용할 수 있는 값은 다음과 같습니다.

  • none: export의 기본값입니다. 가져오기 프로젝트에서 상수 값을 재정의할 수 없습니다. 가져오기 프로젝트는 가져온 프로젝트의 매니페스트 파일에 지정된 상수 값을 사용합니다.
  • override_optional: 가져오기 프로젝트에서 상수의 값을 선택적으로 재정의할 수 있습니다. 가져오기 프로젝트의 매니페스트 파일에 값을 제공하지 않으면 가져온 프로젝트의 원래 값이 사용됩니다.
  • override_required: 가져오기 프로젝트는 가져온 프로젝트의 매니페스트 파일에 원래 지정된 상수 값을 재정의해야 합니다. 가져오기 프로젝트에 새로운 상수 값이 제공되지 않으면 Looker에서 오류가 표시됩니다.

상수는 원래 정의된 프로젝트의 파일에서만 사용할 수 있습니다. 따라서 가져온 파일이 있는 프로젝트에 정의된 상수는 가져온 파일에서만 사용할 수 있으며 가져오기 프로젝트에서 정의된 파일은 사용할 수 없습니다.

가져오기 프로젝트의 파일에 상수를 사용하려면 가져오기 프로젝트의 매니페스트 파일에서 새 상수를 정의해야 합니다. 이러한 방식으로 정의된 상수는 가져오기 프로젝트에 정의된 파일에만 사용할 수 있습니다.

상수를 참조하는 파일을 다른 프로젝트로 가져올 때 가져오기 프로젝트의 매니페스트 파일에서 local_dependency 또는 remote_dependencyoverride_constant 하위 매개변수를 사용하여 exportoverride_optional 또는 override_required로 설정된 상수에 새 값을 제공할 수 있습니다.

자세한 내용과 가져온 프로젝트에서 상수를 재정의하는 예는 다른 프로젝트에서 파일 가져오기 문서 페이지를 참고하세요.

예시

다음은 constant 매개변수를 사용하여 프로젝트 전체에서 사용할 수 있는 값을 정의하는 방법의 몇 가지 예입니다.

constant 매개변수로 Explore에 라벨 지정

UI에서 샌프란시스코 사용자샌프란시스코 주문이라는 라벨이 지정된 두 개의 Explore를 만들고 싶다고 가정해 보겠습니다. 이렇게 하려면 프로젝트의 manifest.lkml 파일에서 "San Francisco" 값으로 상수 city을 정의하면 됩니다.

constant: city {
  value: "San Francisco"
}

그런 다음 이 상수는 @{city} 구문을 통해 문자열이 허용되는 프로젝트의 모든 부분에서 참조될 수 있습니다. 이 예시에서는 다음 예시와 같이 usersorders 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_sfousers 테이블을 기반으로 하는 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_nameexplore_name를 정의했다고 가정해 보겠습니다.


constant: model_name {
  value: "thelook"
}

constant: explore_name {
  value: "orders"
}

대시보드 파일에서 모델 thelook 및 Explore orders을 기반으로 할 대시보드 요소의 경우 model 값을 "@{model_name}"로 설정하고 explore 값을 "@{explore_name}"로 설정할 수 있습니다.

예를 들어 열 차트 요소의 LookML을 수정한다고 가정해 보겠습니다. 대시보드 파일에서 modelexplore 매개변수의 값을 다음과 같이 지정할 수 있습니다.


- 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
}