상수

사용

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

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

정의

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

그런 다음 @{schema}.view_name을 sql_table_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"
}

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

예를 들어 열 차트 요소의 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

대시보드 에이전트 안내에서 상수 사용

LookML 대시보드 에이전트의 instructions 파라미터 내에서 LookML 상수를 사용하여 여러 대시보드 에이전트 간에 표준 비즈니스 규칙 또는 가이드라인을 공유할 수도 있습니다.

예를 들어 manifest.lkml 파일에서 상수를 정의합니다.

constant: FISCAL_YEAR_RULE {
  value: "Always filter all requests by the current fiscal year unless specified otherwise."
}

그런 다음 agent 정의의 instructions 매개변수에서 상수를 참조할 수 있습니다.

agent: sales_dashboard_agent {
  instructions: "Focus on revenue metrics. @{FISCAL_YEAR_RULE}"
  is_dashboard_agent: yes
}

알아 두어야 할 사항

상수 정의 내에서 상수 참조

상수를 정의할 때 프로젝트의 매니페스트 파일 내에 정의된 다른 상수를 참조할 수 있습니다. 이미 상수 city를 선언했다고 가정해 보겠습니다.


constant: city {
  value: "San Francisco"
}

그런 다음 city 상수를 참조하는 상수 state를 선언할 수 있습니다.


constant: city_state {
  value: "@{city}, California"
}

state 상수는 'San Francisco, California' 문자열로 확인됩니다.

상수 문법 이스케이프 처리

상수 문법과 유사한 문자열을 작성하고 싶지만 해당 문자열이 상수로 평가되지 않도록 하려면 @ 문자 뒤에 백슬래시 이스케이프 문자 \를 사용하여 상수 문법을 이스케이프 처리하면 됩니다. 예를 들면 다음과 같습니다.

```none

dimension: id { type: string label: "@{id}" sql: ${TABLE}.id }




In this example, the [`label` parameter](/looker/docs/2620/reference/param-explore-label) displays the string **@{id}** as the label for the `id` dimension, rather than evaluating the `id` constant and outputting its value.

Constant references won't be evaluated if the brackets are not closed, in which case it is not necessary to escape constant syntax. Thus, `@{id` in the following example wouldn't be evaluated as a constant.


```none

dimension: id {
  type: string
  label: "@{id"
  sql: ${TABLE}.id
}