집계 인식

개요

Looker는 집계 인식 논리를 사용하여 정확성을 유지하면서 데이터베이스에서 쿼리를 실행하는 가장 작고 효율적인 테이블을 찾습니다.

데이터베이스에 있는 매우 큰 테이블의 경우 Looker 개발자는 다양한 속성 조합으로 그룹화된 더 작은 집계 데이터 테이블을 만들 수 있습니다. 집계 테이블은 원본 대형 테이블 대신 가능한 경우 Looker가 쿼리에 사용할 수 있는 롤업 또는 요약 테이블 역할을 합니다. 전략적으로 구현되면 집계 인식이 평균 쿼리 속도를 크게 높일 수 있습니다.

예를 들어 웹사이트에서 발생한 모든 주문에 대해 하나의 행이 포함된 페타바이트 규모의 데이터 테이블이 있을 수 있습니다. 이 데이터베이스에서 일일 판매 총계가 포함된 집계 테이블을 만들 수 있습니다. 웹사이트에서 매일 1,000건의 주문을 받는 경우 일일 집계 테이블은 매일 원래 테이블보다 999개 적은 행을 표시합니다. 월간 판매 총계가 더 높은 다른 집계 테이블을 만들면 더욱 효율적입니다. 따라서 사용자가 일일 또는 주간 판매 관련 쿼리를 실행하면 Looker에서 일일 판매 총계 테이블을 사용합니다. 사용자가 연간 판매에 대한 쿼리를 실행하지만 연간 집계 테이블이 없는 경우 Looker는 차선책(이 예의 경우 월별 판매 집계 테이블)을 사용합니다.

Looker는 가능한 한 가장 작은 집계 테이블로 사용자의 질문에 답변합니다. 예를 들면 다음과 같습니다.

  • 월간 총 매출에 대한 쿼리에는 Looker에서 월간 매출(sales_monthly_aggregate_table)을 기반으로 한 집계 테이블을 사용합니다.
  • 하루 동안의 총 매출에 대한 쿼리에는 이 세부사항을 포함하는 집계 테이블이 없으므로 Looker에서 원래 데이터베이스 테이블(orders_database)의 쿼리 결과를 가져옵니다. 하지만 사용자가 이 유형의 쿼리를 자주 실행하는 경우 이에 대한 집계 테이블을 만들 수 있습니다.
  • 주간 매출에 대한 쿼리에는 주간 집계 테이블이 없으므로 차선책으로 일일 판매량(sales_daily_aggregate_table)을 기반으로 하는 집계 테이블이 사용됩니다.

Looker는 집계 인식 논리를 사용하여 사용자 질문에 답변할 수 있는 가장 작은 집계 테이블을 쿼리합니다. 원래 테이블은 집계 테이블이 제공할 수 있는 것보다 더 세밀한 분석이 필요한 쿼리에만 사용됩니다.

집계 테이블은 별도의 탐색 테이블에 조인하거나 추가할 필요가 없습니다. 대신 Looker는 Explore 쿼리의 FROM 절을 동적으로 조정하여 쿼리에 가장 적합한 집계 테이블에 액세스합니다. 즉, 드릴을 유지하고 Explore를 통합할 수 있습니다. 집계 인식을 사용하면 하나의 Explore에서 자동으로 집계 테이블을 활용하면서도 필요에 따라 세분화된 데이터를 자세히 살펴볼 수 있습니다.

집계 테이블을 활용하면 특히 대규모 데이터 세트를 쿼리하는 타일의 경우 대시보드 성능을 대폭 개선할 수 있습니다. 자세한 내용은 aggregate_table 매개변수 문서 페이지의 대시보드에서 집계 테이블 LookML 가져오기 섹션을 참고하세요.

프로젝트에 집계 테이블 추가하기

Looker 개발자는 데이터베이스의 대형 테이블에 필요한 쿼리 수를 최소화하는 전략적인 집계 테이블을 생성할 수 있습니다. 집계 테이블은 집계 인식을 위해 액세스할 수 있도록 데이터베이스에 유지되어야 합니다. 따라서 집계 테이블은 영구 파생 테이블(PDT) 유형입니다.

집계 테이블은 LookML 프로젝트의 explore 매개변수 아래에 있는 aggregate_table 매개변수를 사용하여 정의됩니다.

다음은 LookML에서 집계 테이블이 있는 explore의 예입니다.

explore: orders {
  label: "Sales Totals"
  join: order_items {
    sql_on: ${orders.id} = ${order_items.id} ;;
  }
  aggregate_table: sales_monthly {
    materialization: {
      datagroup_trigger: orders_datagroup
    }
    query: {
      dimensions: [created_month]
      measures: [order_items.total_sales]
    }
  }
  # other explore parameters
}

집계 테이블을 생성하려면 LookML을 처음부터 작성할 수 있습니다 또는 집계 테이블 LookML을 탐색에서 또는 대시보드에서 가져올 수 있습니다. aggregate_table 매개변수 및 하위 매개변수에 관한 자세한 내용은 aggregate_table 매개변수 문서 페이지를 참조하세요.

집계 테이블 설계

Explore 쿼리에서 집계 테이블을 사용하려면 집계 테이블이 Explore 쿼리에 정확한 데이터를 제공할 수 있어야 합니다. 다음 조건이 모두 충족되면 Looker에서 Explore 쿼리에 집계 테이블을 사용할 수 있습니다.

  • Explore 쿼리 필드는 집계 테이블 필드의 하위 집합입니다(이 페이지의 필드 요소 섹션 참조). 또는 기간의 경우 Explore 쿼리 기간은 집계 테이블의 기간에서 파생될 수 있습니다(이 페이지의 기간 요소 섹션 참조).
  • Explore 쿼리에는 집계 인식에서 지원하는 측정 유형이 포함되어 있거나(이 페이지의 측정 유형 요소 섹션 참조) 정확히 일치하는 집계 테이블이 있습니다(이 페이지의 Explore 쿼리와 정확히 일치하는 집계 테이블 만들기 섹션 참조).
  • Explore 쿼리의 시간대는 집계 테이블에서 사용되는 시간대와 일치합니다(이 페이지의 시간대 요소 섹션 참조).
  • Explore 쿼리의 필터는 집계 테이블에서 측정기준으로 사용 가능한 필드를 참조합니다. Explore 쿼리의 각 필터는 집계 테이블의 필터와 일치합니다(이 페이지의 필터 요소 섹션 참조).

집계 테이블에서 Explore 쿼리에 정확한 데이터를 제공할 수 있는 방법 중 하나는 Explore 쿼리와 정확히 일치하는 집계 테이블을 만드는 것입니다. 자세한 내용은 이 페이지의 Explore 쿼리와 정확히 일치하는 집계 테이블 만들기 섹션을 참조하세요.

필드 요소

Explore 쿼리에 사용하려면 집계 테이블에 Explore 쿼리의 필터에 사용되는 필드를 포함하여 해당 Explore 쿼리에 필요한 모든 측정기준과 측정이 있어야 합니다. Explore 쿼리에 집계 테이블에 없는 측정기준이나 측정이 포함되어 있으며 Looker에서 집계 테이블을 사용할 수 없으며 대신 기본 테이블을 사용합니다.

예를 들어 쿼리가 측정기준 A와 B에 따라 그룹화되고, 측정 C를 기준으로 집계되며, 측정기준 D로 필터링되는 경우 집계 테이블에는 최소한 측정기준 A, B, D가 있고 측정 C가 있어야 합니다.

집계 테이블에는 다른 필드도 있을 수 있지만 최적화에 활용할 수 있으려면 최소한 Explore 쿼리 필드가 있어야 합니다. 한 가지 예외는 기간 측정기준인데, 더 큰 단위의 기간은 더 세분화된 기간에서 파생될 수 있기 때문입니다.

이러한 필드 고려사항으로 인해 집계 테이블은 정의된 Explore에 따라 달라집니다. 한 Explore에서 정의된 집계 테이블은 다른 Explore의 쿼리에 사용되지 않습니다.

작업 기간 요소

Looker의 집계 인식 논리는 한 기간을 다른 기간에서 파생할 수 있습니다. 집계 테이블의 기간이 Explore 쿼리보다 더 세분화되어 있거나 같으면 집계 테이블을 쿼리에 사용할 수 있습니다. 예를 들어 일일 데이터를 기준으로 한 집계 테이블을 사용하여 다른 기간(예: 일간/월간/ 연간 데이터, 날짜/주/월/연도 데이터)을 호출하는 Explore 쿼리에 사용할 수 있습니다. 하지만 집계 테이블의 데이터는 Explore 쿼리에 대한 세부사항이 충분하지 않으므로 시간별 데이터를 호출하는 Explore 쿼리에는 연간 집계 테이블을 사용할 수 없습니다.

시간 범위 하위 집합에도 동일하게 적용됩니다. 예를 들어 최근 3개월로 필터링된 집계 테이블이 있고 사용자가 지난 2개월 동안 필터를 사용하여 데이터를 쿼리한 경우 Looker에서 해당 쿼리에 대해 집계 테이블을 사용할 수 있습니다.

또한 기간 필터가 있는 쿼리에도 동일한 논리가 적용됩니다. 집계 테이블의 기간이 Explore 쿼리에 사용된 기간 필터보다 더 세분화되어 있거나 같으면 집계 테이블을 기간 필터가 있는 쿼리에 사용할 수 있습니다. 예를 들어 일간 측정기준이 있는 집계 테이블은 일, 주, 월을 필터링하는 Explore 쿼리에 사용할 수 있습니다.

측정 유형 요소

Explore 쿼리에서 집계 테이블을 사용하려면 집계 테이블에 있는 측정이 Explore 쿼리에 정확한 데이터를 제공할 수 있어야 합니다.

따라서 다음 섹션에 설명된 대로 특정 유형의 측정값만 지원됩니다.

Explore 쿼리가 다른 측정 유형을 사용하는 경우 Looker에서 집계 테이블이 아닌 원본 테이블을 사용하여 결과를 반환합니다. 단, Explore 쿼리와 정확히 일치하는 집계 테이블 만들기 섹션에 설명된 대로 Explore 쿼리가 집계 테이블 쿼리와 정확히 일치하는 경우는 예외입니다.

그렇지 않으면 Looker에서 집계 테이블이 아닌 원본 테이블을 사용하여 결과를 반환합니다.

지원되는 측정 유형을 사용한 측정

집계 인식은 다음 측정 유형의 측정을 사용하는 Explore 쿼리에 사용할 수 있습니다.