테스트

용도

test: historic_revenue_is_strict
배워야 할 일 : order_revenue
계층 구조
test

- 또는 -

test

- 또는 -

test
기본값
없음

결제 가능
데이터 테스트의 식별자 및 테스트 어설션과 쿼리를 정의하는 하위 매개변수를 추가합니다.

정의

데이터 테스트에 대한 추가 팁과 정보는 LookML 데이터 테스트: 추천 및 권장사항 Looker 커뮤니티 주제를 참고하세요.

Looker에는 LookML 검사기가 있어 LookML 코드의 구문이 유효한지 확인하고 콘텐츠 검사기를 사용하여 콘텐츠와 모델 간의 객체 참조를 확인합니다.

이러한 검사기 외에도 test 매개변수를 사용하면 모델의 로직을 검증할 수 있습니다. 각 데이터 테스트에서 쿼리와 yesno 어설션 문을 만듭니다. 데이터 테스트가 테스트 쿼리를 실행하고 테스트 쿼리의 각 행에 어설션이 true인지 확인합니다. 어설션 문이 테스트 쿼리의 모든 행에 대해 yes를 반환하면 데이터 테스트가 통과됩니다.

프로덕션에 배포하기 전에 데이터 테스트를 통과하도록 프로젝트 설정을 구성한 경우 프로젝트에 변경사항을 커밋하면 IDE에 테스트 실행 버튼이 표시됩니다. LookML 개발자는 변경사항을 프로덕션에 배포하기 전에 데이터 테스트를 실행해야 합니다.

프로덕션에 배포하기 전에 프로젝트에 데이터 테스트가 필요한지 여부와 관계없이 개발 모드의 LookML 개발자는 언제든지 데이터 테스트를 실행하여 모델의 로직을 확인할 수 있습니다.

모델 파일, 파일 보기 또는 별도의 전용 데이터 테스트 파일에서 데이터 테스트를 만들 수 있습니다. 데이터 테스트를 보관하는 전용 파일을 사용하는 경우 데이터 테스트를 실행할 모델 파일 또는 뷰 파일의 include 데이터 테스트 파일을 사용해야 합니다.

데이터 테스트에는 동일한 프로젝트의 다른 데이터 테스트와 동일한 이름 및 explore_source를 사용할 수 없습니다. 프로젝트의 여러 데이터 테스트에 동일한 explore_source를 사용하는 경우 데이터 테스트의 이름이 모두 고유한지 확인하세요.

test 매개변수에는 다음과 같은 하위 매개변수가 있습니다.

  • explore_source: 데이터 테스트에 사용할 쿼리를 정의합니다.
  • assert: 데이터를 확인하기 위해 테스트 쿼리의 모든 행에서 실행되는 Looker 표현식을 정의합니다.

테스트용 LookML을 정의한 후에는 데이터 테스트를 실행하여 테스트가 올바르게 작동하는지 확인하고 모델의 로직이 테스트를 통과하는지 확인할 수 있습니다 (데이터 테스트를 실행하려면 개발 모드에 있어야 함).

프로젝트의 데이터 테스트를 시작하는 방법에는 여러 가지가 있습니다.

  1. 프로덕션에 파일을 배포하기 전에 데이터 테스트를 통과하도록 프로젝트 설정을 구성한 경우, 프로젝트에 변경사항을 커밋하면 IDE에 테스트 실행 버튼이 표시됩니다. 이렇게 하면 테스트를 정의하는 파일에 관계없이 프로젝트의 모든 테스트가 실행됩니다. 변경사항을 프로덕션에 배포하려면 먼저 데이터 테스트를 통과해야 합니다.
  2. Project Health(프로젝트 상태) 패널에서 Run Data Tests(데이터 테스트 실행) 버튼을 클릭합니다. 이렇게 하면 테스트를 정의하는 파일에 관계없이 프로젝트의 모든 데이터 테스트가 실행됩니다.
  3. 파일 메뉴에서 LookML 테스트 실행 옵션을 선택합니다. 현재 파일에 정의된 테스트만 실행됩니다.

데이터 테스트를 실행하면 Project Health 패널에 진행 상황과 결과가 표시됩니다.

쿼리 탐색 링크를 클릭하여 데이터 테스트에 정의된 쿼리를 사용하여 탐색을 열 수 있습니다.

explore_source

데이터 테스트의 explore_source 매개변수는 파생된 테이블의 explore_source 매개변수와 동일한 구문과 로직을 사용합니다. 한 가지 차이점은 데이터 테스트의 explore_sourcederived_column, bind_filters, bind_all_filters 하위 매개변수를 지원하지 않는다는 것입니다.

유용한 도움말: explore_source LookML을 사용하는 쉬운 방법은 기존 탐색을 사용하여 쿼리를 만든 다음 탐색의 톱니바퀴 메뉴에서 LookML 가져오기를 선택하고 파생된 표 탭을 클릭하여 쿼리의 LookML을 가져오는 것입니다. 자세한 내용은 네이티브 파생 테이블 만들기 문서를 참조하세요.

데이터 테스트의 explore_source에 관해 다음 사항에 유의하세요.

  • 데이터 테스트의 explore_source 쿼리는 표준 Looker 쿼리입니다. 즉, 테스트의 explore_source 쿼리에 행이 5,000개로 제한됩니다. 테스트할 전체 결과 세트를 얻으려면 쿼리가 5,000개 행을 초과하지 않도록 해야 합니다. explore_source에 필터 또는 정렬을 포함하여 쿼리의 행 수를 줄이거나 관련 행을 쿼리 맨 위로 가져올 수 있습니다.

  • extension: required가 있는 explore데이터 테스트explore_source로 사용할 수 없습니다. LookML 검사기에서 explore_source를 찾을 수 없다는 오류를 생성합니다.

assert

assert 하위 매개변수는 explore_source 쿼리의 결과가 유효한 것으로 간주되는 기준을 정의합니다. expression 하위 매개변수는 yesno(불리언)을 생성하는 Looker 표현식을 허용합니다. explore_source 쿼리가 실행된 후 어설션의 표현식은 쿼리 결과 집합의 모든 행에 대해 평가됩니다. 쿼리의 행에 대한 no 응답이 있으면 데이터 테스트가 실패합니다. 쿼리 자체에 오류가 있으면 테스트도 실패합니다.

테스트에는 assert 선언이 여러 개 있을 수 있습니다. 테스트를 통과하려면 explore_source 어설션의 모든 행에 관해 각 어설션이 true여야 합니다.

유용한 도움말: 테이블 계산 대화상자를 사용하여 테스트의 expression 매개변수에 사용할 Looker 표현식 구문을 테스트할 수 있습니다.

데이터 테스트에 사용하려면 Looker 표현식의 필드가 완전히 지정되어야 합니다. 즉, view_name.field_name 형식을 사용하여 지정됩니다. 예를 들어 아래 표현식은 필드를 aircraft_engine_types.aircraft_engine_type_id로 선언합니다.

assert: engine_type_id_not_null {
  expression: NOT is_null(${aircraft_engine_types.aircraft_engine_type_id}) ;;
}

Examples

기본 키가 고유한지 확인

다음 데이터 테스트는 orders 탐색에서 쿼리를 만들고 expression를 정의하여 주문 ID가 결과 조합에서 고유한지 테스트합니다. explore_source 쿼리는 데이터베이스의 각 ID와 연결된 행 수를 만듭니다. ID가 고유한 경우 데이터베이스는 ID에 대해 하나의 행만 포함해야 합니다. 또한 개수를 정렬하고 결과 집합을 한 행으로 제한하므로 쿼리 응답이 가장 높은 ID가 됩니다. ID의 개수가 1보다 많으면 ID에 대한 행이 여러 개이므로 ID가 고유하지 않습니다. 이 경우 데이터 테스트가 실패합니다.

test: order_id_is_unique {
  explore_source: orders {
    column: id {}
    column: count {}
    sorts: [orders.count: desc]
    limit: 1
  }
  assert: order_id_is_unique {
    expression: ${orders.count} = 1 ;;
  }

알려진 값 확인

다음 데이터 테스트는 2017년 수익 값이 항상 $626,000인지 확인합니다. 이 데이터 세트에서는 절대 변경되지 않는 알려진 값입니다.

test: historic_revenue_is_accurate {
  explore_source: orders {
    column: total_revenue {
      field: orders.total_revenue
    }
    filters: [orders.created_date: "2017"]
  }
  assert: revenue_is_expected_value {
    expression: ${orders.total_revenue} = 626000 ;;
  }
}

null 값이 없는지 확인

다음 데이터 테스트는 데이터에 null 값이 없는지 확인합니다. 이 explore_sourcesort를 사용하여 null이 쿼리 상단에 반환되도록 합니다. null의 정렬은 언어에 따라 다를 수 있습니다. 아래 테스트에서는 desc: yes를 예로 사용합니다.


test: status_is_not_null {
  explore_source: orders {
    column: status {}
    sorts: [orders.status: desc]
    limit: 1
  }
  assert: status_is_not_null {
    expression: NOT is_null(${orders.status}) ;;
  }
}