사용
explore: explore_name {
cancel_grouping_fields: [
fully_scoped_field,
fully_scoped_field,
...
]
}
|
계층 구조
cancel_grouping_fields |
기본값
없음
허용
쉼표로 구분된 정규화된 필드 이름 목록이 포함된 대괄호
특수 규칙
|
정의
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를 사용하기에 가장 적합한 상황입니다.