cancel_grouping_fields

사용

explore: explore_name {
  cancel_grouping_fields: [
    fully_scoped_field,
    fully_scoped_field,
    ...
  ]
}
계층 구조
cancel_grouping_fields
기본값
없음

수락
완전히 범위가 지정된 필드 이름의 쉼표로 구분된 목록이 포함된 대괄호

특별 규칙
  • 각 필드는 view_name.field_name 문법을 사용하여 완전히 지정해야 합니다.
  • 측정값이 쿼리에 포함된 경우 올바르게 작동하지 않음
  • relationship: one_to_many 또는 relationship: many_to_many와 함께 사용할 수 없습니다.

정의

cancel_grouping_fields를 사용하면 Looker가 생성하는 SQL에 GROUP BY 절을 추가하지 않도록 할 수 있습니다. 지정한 필드가 사용자에 의해 포함된 경우 Looker는 그룹화하지 않습니다. 이 기능은 일반적으로 매우 큰 테이블의 쿼리 성능을 개선하는 데 사용됩니다. 드물고 특수한 경우를 제외하고는 기본 키와 같이 테이블의 각 행에 고유한 필드만 포함해야 합니다.

Looker 측정값은 작동하려면 GROUP BY 절이 필요한 SQL 집계 함수를 나타내므로 측정값이 포함된 쿼리에서는 cancel_grouping_fields이 작동하지 않습니다. 또한 relationship: one_to_many 또는 relationship: many_to_many를 사용하면 cancel_grouping_fields가 작동하지 않습니다.

마지막으로 나열하는 필드는 완전히 범위가 지정되어야 합니다. 즉, field_name이 아닌 view_name.field_name로 작성해야 합니다.

예시

사용자가 필드 선택기에서 주문 ID를 선택하는 경우 결과를 그룹화하지 않습니다.

explore: order {
  cancel_grouping_fields: [order.id]
}

사용자가 필드 선택기에서 주문 ID 또는 주문 해시를 선택하는 경우 결과를 그룹화하지 마세요.

explore: order {
  cancel_grouping_fields: [order.id, order.hash]
}

사용자가 필드 선택기에서 개인 ID 또는 DNA ID를 선택하는 경우 결과를 그룹화하지 마세요.

explore: person {
  cancel_grouping_fields: [person.id, dna.id]
  join: dna {
    sql_on: ${person.dna_id} = ${dna.id} ;;
    relationship: one_to_one
  }
}

일반 과제

cancel_grouping_fields에는 완전히 범위가 지정된 필드 이름이 필요합니다.

Looker의 대부분의 매개변수는 필드 이름을 단독으로 작성하면 매개변수가 사용되는 위치를 기반으로 뷰 이름을 가정합니다. cancel_grouping_fields는 이런 방식으로 작동하지 않으며 뷰 이름과 필드 이름을 모두 작성해야 합니다.

예를 들어 다음과 같이 작동하고 id이 필드 선택기에 표시되는 주문 ID로 해석될 것이라고 생각할 수 있습니다.

explore: order {
  cancel_grouping_fields: [id]
}

하지만 그렇지 않으며 오류가 발생합니다. 대신 다음과 같이 작성해야 합니다.

explore: order {
  cancel_grouping_fields: [order.id]
}

cancel_grouping_fields는 지정된 필드 중 하나가 선택되면 트리거되며, 모든 필드를 선택할 필요는 없습니다.

cancel_grouping_fields에 필드를 두 개 이상 지정하면 사용자가 목록에서 하나의 필드를 선택할 때 그룹화가 취소됩니다. 사용자가 목록에서 모든 필드를 선택할 필요는 없습니다. 따라서 다중 열 기본 키는 cancel_grouping_fields와 함께 작동하지 않습니다.

알아 두어야 할 사항

Looker가 제대로 작동하는 데 cancel_grouping_fields가 필요하지는 않습니다. 대형 테이블의 쿼리 개선을 위한 것입니다.

SQL을 직접 작성할 때 대부분의 사용자는 절대적으로 필요하지 않는 한 GROUP BY 절을 포함하지 않습니다. Looker는 경우에 따라 불필요한 GROUP BY 절도 방지합니다. 쿼리의 측정기준 중 하나가 사용 중인 Explore의 기본 키 (primary_key 매개변수 사용)로 정의된 경우 GROUP BY 절이 삭제됩니다.

하지만 기본 키가 아닌 다른 측정기준이 고유한 행을 정의하는 경우도 있습니다. 이 경우 Looker는 측정기준별 그룹화가 Looker 작동 방식의 기본 부분이기 때문에 불필요한 GROUP BY를 생성할 수 있습니다. 대부분의 경우 문제가 발생하지 않습니다. 결과가 예상대로 표시되며 속도도 빠릅니다.

하지만 매우 큰 테이블에서는 불필요한 GROUP BY 절로 인해 쿼리 시간이 길어질 수 있습니다. 이것이 cancel_grouping_fields를 사용하기에 가장 적합한 상황입니다.