매개변수

용도

view: view_name {
매개변수: parameter_name { ... }
}
계층 구조
parameter
결제 가능
매개변수의 이름을 지정하는 Looker 식별자

정의

실제로 'parameter'(이)라는 LookML 매개변수가 있습니다. parameter 매개변수는 탐색, 보기, 대시보드를 필터링하는 데 사용할 수 있지만 결과 세트에 추가할 수 없는 필터 전용 필드를 생성합니다. 사용자가 이 필터 전용 필드에 선택하는 값은 {% parameter parameter_name %}parameter_name._parameter_value Liquid 변수와 함께 사용할 때 대화형 쿼리 결과, 라벨, URL 등을 만들 수 있습니다. parameter 매개변수는 다양한 필드를 단일 필드에 표시할 수 있으므로 LookML 모델을 간소화할 수도 있습니다.

매개변수 필터 필드를 사용하면 사용자가 필드에 필터 값을 1개만 선택할 수 있으며 필터 조건은 is equal to로 설정됩니다. 사용자가 여러 필터 값을 한 번에 입력할 수 있도록 하고 Looker의 더욱 세부적인 SQL 필터 로직(contains, does not contain 등)을 활용하려면 템플릿 필터 문서 페이지를 참고하세요.

parameter 이름은 다음 요건을 충족해야 합니다.

  • 특정 뷰 내에서 고유해야 합니다.
  • a부터 z까지의 문자(대문자 없음), 0~9 또는 _로 구성
  • 영문자로 시작해야 합니다.

default_valueallowed_valueparameter와 함께 사용할 수 있는 많은 필드 매개변수도 있습니다. allowed_value 필드 매개변수를 사용하는 예는 다음 하위 섹션인 허용되는 값 지정을 참조하세요.

데이터에 밑줄이 있는 값이 있으면 parameter와 함께 default_value를 사용하지 않습니다.

허용되는 값 지정

기본적으로 사용자는 parameter 매개변수로 생성된 필터에 단일 값을 입력할 수 있습니다. 사용자가 선택할 수 있는 특정 값을 제한하려면 allowed_value를 사용합니다. 허용되는 값은 사용자가 선택할 수 있는 라벨과 값의 쌍을 지정합니다.

allowed_value 매개변수는 사용자가 선택할 수 있는 필터 옵션을 설정할 수 있다는 점에서 suggestions 매개변수와 유사합니다. 그러나 allowed_value 매개변수는 기본 SQL 쿼리에 삽입하려는 값으로 사용자 친화적인 라벨을 매핑하는 추가 기능을 추가합니다.

예를 들어 다음 코드는 사용자에게 세 가지 필터 옵션을 제공하는 parameter를 생성합니다.

parameter: number_of_results {
  type: string
  allowed_value: {
    label: "Less than 500"
    value: "< 500"
  }
  allowed_value: {
    label: "Less than 10,000"
    value: "< 10000"
  }
  allowed_value: {
    label: "All Results"
    value: "> 0"
  }
}

label는 필터 추천에서 사용자에게 표시되며, value에는 Liquid 변수와 함께 SQL 쿼리에 삽입되어 대화형 콘텐츠를 만들 값이 포함됩니다.

결과 필터는 다음과 같습니다.

Liquid에서 parameter 사용

Liquid 사용에는 Liquid 변수 참조 문서 페이지에서 두 가지 유형이 있습니다.

parameter를 Liquid와 함께 사용할 때는 논리적 조건문을 만드는 데 사용되는 {% %} 태그 구문을 사용하는 것이 가장 일반적입니다.

parameter와 함께 사용할 수 있는 Liquid 변수는 {% parameter parameter_name %}parameter_name._parameter_value입니다. 다음 섹션에서 각 예시를 살펴보겠습니다.

{% parameter parameter_name %}로 사용자가 선택한 값 삽입

{% parameter parameter_name %} Liquid 변수는 매개변수 이름과 함께 Liquid {% parameter %} 태그를 사용하여 사용자가 선택한 값을 기본 SQL 쿼리에 직접 삽입합니다.

  • 매개변수라는 단어는 절대 변경되지 않습니다.
  • parameter_name을 직접 만든 매개변수 이름으로 바꿉니다.

매개변수가 참조되는 파일과 다른 뷰 파일에 정의된 경우, 매개변수 이름으로 뷰 이름(예: view_name.parameter_name)을 지정합니다.

이 예시에서는 사용자가 합산하려는 데이터베이스 열(sale_price, cost, profit)을 선택할 수 있는 item_to_add_up이라는 parameter를 만듭니다.

parameter: item_to_add_up {
  type: unquoted
  allowed_value: {
    label: "Total Sale Price"
    value: "sale_price"
  }
  allowed_value: {
    label: "Total Cost"
    value: "cost"
  }
  allowed_value: {
    label: "Total Profit"
    value: "profit"
  }
}

그런 다음 dynamic_sum라는 측정값을 만듭니다.

이 측정은 item_to_add_up에서 선택된 값을 삽입하고 참조되는 열 이름을 변경하는 sql 매개변수의 {% parameter parameter_name %} Liquid 변수를 참조합니다. 그런 다음 측정값은 참조된 열에서 계산을 수행합니다.

measure: dynamic_sum {
  type: sum
  sql: ${TABLE}.{% parameter item_to_add_up %} ;;
  value_format_name: "usd"
}

그 결과, 다음과 같이 하나의 측정값으로 표현되는 여러 집계를 표시하는 대화형 탐색이 생성됩니다.

parameter{% parameter parameter_name %} 변수와 함께 사용하는 더 많은 예는 매개변수 필드의 좋은 사용 사례 고객센터 도움말을 참고하세요.

parameter_name._parameter_value를 사용하여 논리적 문 만들기

parameter_name._parameter_value Liquid 변수와 함께 논리적 Liquid {% %} 문을 사용하여 parameter의 값을 기본 SQL 쿼리에 삽입할 수도 있습니다.

  • parameter_name을 직접 만든 매개변수 이름으로 바꿉니다.
  • ._parameter_value는 변경되지 않습니다.

매개변수가 참조되는 파일과 다른 뷰 파일에 정의된 경우, 매개변수 이름으로 뷰 이름(예: view_name.parameter_name._parameter_value)을 지정합니다.

parameter_name._parameter_value는 가능한 매개변수 값을 사용하는 복잡한 논리문을 허용합니다. SQL의 CASE WHEN 문과 유사합니다.

Liquid 조건문은 다음 구문을 사용합니다.

  • {% dynamic if %}: 조건 만들기
  • {% elsif %}: 초기 조건 후 추가 조건 만들기
  • {% dynamic else %}: 다른 조건이 충족되지 않을 때 반환되는 값을 설정합니다.
  • {% dynamic endif %}를 사용하여 문을 종료합니다.

이 Liquid 로직은 다양한 방식으로 Liquid 변수 및 LookML과 함께 사용할 수 있습니다. LookML에서 Liquid와 함께 parameter_name._parameter_value 변수를 사용할 수 있는 전체 위치 목록은 Liquid 변수 참조 문서 페이지를 참고하세요. 다음은 sqlhtml 매개변수를 사용하는 예입니다.

SQL 예

다음 LookML 블록은 date_granularity이라는 parameter를 만듭니다. 그런 다음 측정기준의 sql 매개변수는 {% dynamic if %}, {% elsif %}, {% dynamic endif %} 논리 구조와 함께 parameter_name._parameter_value를 사용하여 parameter의 값에 따라 측정기준의 값을 결정합니다.

parameter: date_granularity {
  type: unquoted
  allowed_value: {
    label: "Break down by Day"
    value: "day"
  }
  allowed_value: {
    label: "Break down by Month"
    value: "month"
  }
}

dimension: date {
  sql:
    {% dynamic if date_granularity._parameter_value == 'day' %}
      ${created_date}
    {% elsif date_granularity._parameter_value == 'month' %}
      ${created_month}
    {% dynamic else %}
      ${created_date}
    {% dynamic endif %};;
}

최종 결과는 사용자가 다른 기간으로 결과를 표시하기 위해 변경할 수 있는 대화형 날짜 필드입니다.

HTML 예

parameter_name._parameter_valuehtml 매개변수와 함께 사용하여 대화형 결과 형식을 만들 수도 있습니다.

위의 예를 사용하여 유사한 {% dynamic if %} 논리 구문과 함께 html 매개변수를 추가하여 사용자가 선택한 날짜 세분화에 따라 텍스트 색상을 변경할 수 있습니다.

parameter: date_granularity {
  type: unquoted
  allowed_value: {
    label: "Break down by Day"
    value: "day"
  }
  allowed_value: {
    label: "Break down by Month"
    value: "month"
  }
}

dimension: date {
  sql:
    {% dynamic if date_granularity._parameter_value == 'day' %}
      ${created_date}
    {% elsif date_granularity._parameter_value == 'month' %}
      ${created_month}
    {% dynamic else %}
      ${created_date}
    {% dynamic endif %};;
  html:
    {% dynamic if date_granularity._parameter_value == 'day' %}
      <font color="darkgreen">{{ rendered_value }}</font>
   {% elsif date_granularity._parameter_value == 'month' %}
      <font color="darkred">{{ rendered_value }}</font>
    {% dynamic else %}
      <font color="black">{{ rendered_value }}</font>
    {% dynamic endif %};;
}

rendered_value Liquid 변수html 문에서 Liquid 객체 태그 {{ }}와 함께 결과에 Looker의 기본 형식이 지정된 필드 값을 출력합니다.

최종 결과는 사용자가 선택하는 값에 따라 달라지는 양방향 조건부 형식입니다.

HTML용 Liquid 상호작용의 예를 더 보려면 html 문서 페이지 및 HTML을 사용하여 색상과 글꼴을 변경하는 방법 고객센터 도움말을 참고하세요.

parameter 유형

여러 필드 유형parameter 매개변수에 할당할 수 있습니다. 몇 가지 특수한 사례가 이 페이지에 자세히 설명되어 있습니다.

parameters/type: string

parametertype: string와 함께 사용하는 경우 parameter_name._parameter_value Liquid 변수는 parameter 값을 작은따옴표와 큰따옴표로 묶어야 합니다. 그러면 작은 따옴표가 SQL로 전송되어 값이 문자열 값으로 식별됩니다. 아래 예시를 참조하세요.

parameter: date_granularity {
  type: string
  allowed_value: { value: "Day" }
  allowed_value: { value: "Month" }
}

dimension: date {
  label_from_parameter: date_granularity
  sql:
    {% dynamic if date_granularity._parameter_value == "'Day'" %}
      ${created_date}::VARCHAR
    {% elsif date_granularity._parameter_value == "'Month'" %}
      ${created_month}::VARCHAR
    {% dynamic else %}
      NULL
    {% dynamic endif %} ;;
}

또한 labeltype: string이 있는 parameter 값을 포함하려면 큰따옴표를 `` 문자로 시작해야 합니다.

label: "{% dynamic if test._parameter_value == \\\\"'foo'\\\\" %} 'SUCCESS' {% dynamic else %} 'FAIL' {% dynamic endif %}"

parameters/type: yesno

type: yesno와 함께 parameter를 사용하면 parameter_name._parameter_value Liquid 변수는 SQL 언어에 적합한 true로 평가되는 SQL 문을 생성합니다. 따라서 논리적 Liquid 문에 type: yesnoparameters를 사용하지 않는 것이 좋습니다. {% dynamic if yesno_parameter._parameter_value == 'Yes' %}{% dynamic if yesno_parameter._parameter_value %} 모두 제대로 작동하지 않습니다.

parameters/type: unquoted

unquoted 유형은 parameter의 값을 {% parameter %} Liquid 변수에 삽입할 때 따옴표로 묶지 않는다는 점을 제외하면 type: string와 유사합니다. 위의 예와 같이 올바르게 작동하기 위해 따옴표로 묶을 수 없는 열 또는 테이블 이름과 같은 값을 SQL에 삽입할 때 유용합니다.

따옴표가 없는 값을 SQL에 직접 삽입하면 원치 않는 SQL 작업이 발생할 가능성이 있습니다. 이 문제를 해결하기 위해 type: unquotedparameter 값이 공백 또는 기타 특수문자가 아닌 A부터 Z까지, 0~9로 제한됩니다.

예를 들어 다음 LookML은 따옴표로 묶이지 않은 값을 생성하는 table_name라는 parameter를 만듭니다.

parameter: table_name {
  type: unquoted
}

parameters/type: date_time

date_time 유형 parameter를 사용하면 사용자가 필터에서 특정 날짜를 선택할 수 있습니다. 사용 가능한 가장 상세한 방법은 YYYY/MM/DD입니다. 사용자는 날짜 필터 값 1개만 선택할 수 있으며, 필터 조건을 is on the day로 설정하여 날짜를 선택하거나 matches a user attribute로 설정하여 날짜/시간 사용자 속성을 선택할 수 있습니다.

예를 들어 다음은 date_selector라는 date_time 매개변수입니다.

  parameter: date_selector {
    type: date_time
    description: "Use this field to select a date to filter results by."
  }

탐색에서 선택한 경우, 날짜 선택기에서 사용자가 하나의 특정 날짜를 선택할 수 있습니다.

사용자가 Looker의 더욱 세부적인 SQL 날짜 필터 로직(is in the past, is in range 등)을 활용할 수 있도록 하려면 자세한 내용은 템플릿 필터 문서 페이지를 참고하세요.

추가 리소스