Liquid 오류 문제 해결

이 가이드에서는 LookML의 Liquid 오류를 해결하는 방법을 설명합니다.

디버깅 트리

다음 의사결정 트리를 사용하여 일반적인 Liquid 문제를 해결하세요.

다음 섹션에서는 트리의 시나리오를 자세히 설명합니다.

오류: 변수를 찾을 수 없음

Explore에서 필드에 액세스할 수 있는지 확인

Explore에서 액세스할 수 없는 필드를 참조하는 경우 이 오류가 표시될 수 있습니다.

먼저 필드 이름에 오타가 있는지 확인합니다. 그런 다음 필드가 정의된 뷰가 Explore에 조인되어 있는지 확인합니다.

오류: Liquid 파싱 예외

이 오류는 IDE에서 LookML을 검사하는 동안 또는 쿼리를 실행하는 동안 표시될 수 있습니다. 다음 섹션에서는 이 오류의 일반적인 원인을 설명합니다.

작은따옴표 또는 큰따옴표 닫기

열려 있지만 닫히지 않은 작은따옴표 또는 큰따옴표가 있는지 확인합니다. 예를 들어 다음 코드는 오류를 발생시킵니다.

{% if value == "Shirt %}
  This is a shirt.
{% endif %}

오류를 해결하려면 따옴표를 닫으세요.

{% if value == "Shirt" %}
  This is a shirt.
{% endif %}

비교에 이중 == 사용

값이 다른 값과 같은지 확인할 때는 단일 = 를 사용하지 마세요. 다음 코드는 오류를 발생시킵니다.

{% if value = "Shirt" %}
  This is a shirt.
{% endif %}

오류를 해결하려면 대신 이중 == 를 사용하세요.

{% if value == "Shirt" %}
  This is a shirt.
{% endif %}

올바른 태그 문법 사용

if 문 주위에 출력 문법을 사용하거나 단일 값 주위에 태그 문법을 사용하지 마세요. 다음 코드는 오류를 발생시킵니다.

{{ if value == "Shirt" }}
  This is a {% value %}.
{{ endif }}

대신 출력 문법을 사용하여 개별 값을 삽입하고 태그 문법을 사용하여 논리 비교 및 작업을 실행합니다.

{% if value == "Shirt" %}
  This is a {{ value }}.
{% endif %}

Liquid 태그를 중첩하지 않음

다른 Liquid 태그 내에서 Liquid 태그를 사용하지 마세요. 예를 들어 다음 코드는 오류를 발생시킵니다.

{% if value > {{ view_name.field_name._value }} %}
  This value is larger.
{% endif %}

오류를 해결하려면 중첩된 태그를 삭제하세요.

{% if value > view_name.field_name._value %}
  This value is larger.
{% endif %}

Liquid에 잘못된 값이 표시됨

이러한 경우 LookML은 일반적으로 오류 없이 검사되지만 Explore에서 쿼리를 실행할 때 예기치 않은 결과가 표시됩니다.

yesno 값 대문자 표시

Liquid를 사용하여 yesno 필드의 값을 확인하는 경우 대문자가 아닌 값이 있는지 확인합니다. 다음 코드는 yes 조건에 대한 결과를 일치시키지 않습니다.

{% if value == "yes" %}
  This is a shirt or shoes.
{% endif %};;

대신 '예' 및 '아니요' 값을 대문자로 표시합니다.

{% if value == "Yes" %}
  This is a shirt or shoes.
{% endif %};;

Liquid 파라미터가 지원되는지 확인

Liquid 매개변수를 지원하지 않는 LookML 매개변수에서 Liquid 매개변수를 참조하면 Looker에서 Liquid 매개변수를 무시합니다.

예를 들어 다음 코드는 parameter parameter_name 문법이 html LookML 매개변수에 지원되지 않으므로 아무것도 반환하지 않습니다.

html: {% parameter parameter_name %};;

Liquid 변수 참조를 확인하여 어떤 LookML 매개변수에서 어떤 Liquid 매개변수가 지원되는지 확인합니다. 이 예에서는 코드를 다음과 같이 다시 작성할 수 있습니다.

html: {{ parameter_name._parameter_value }};;