Liquid 오류 문제 해결

이 가이드는 LookML의 Liquid 오류를 해결하는 데 도움이 됩니다.

디버깅 트리

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

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

오류: 변수를 찾을 수 없음

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

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

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

오류: Liquid 파싱 예외

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

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

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

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

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

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

비교 시 double == 사용

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

{% 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 매개변수를 무시합니다.

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

html: {% parameter parameter_name %};;

Liquid 변수 참조에서 LookML 매개변수별로 지원되는 Liquid 매개변수를 확인하세요. 이 예에서는 코드를 다음과 같이 다시 작성할 수 있습니다.

html: {{ parameter_name._parameter_value }};;