다음을 통해 공유


메트릭 보기에서 조인을 사용하기

메트릭 뷰의 조인은 팩트 테이블에서 차원 테이블(별모양 스키마)으로의 직접 조인을 모두 지원하고 팩트 테이블에서 차원 테이블로 트래버스한 다음 하위 차원 테이블로 조인하여 정규화된 차원 테이블(눈송이 스키마)에서 다중 홉 조인을 허용합니다. 이 페이지에서는 메트릭 뷰의 YAML 정의에서 조인을 정의하는 방법을 설명합니다.

비고

조인된 테이블에는 MAP 형식 열을 포함할 수 없습니다. 형식 열에서 MAP 값의 압축을 푸는 방법을 알아보려면 지도 또는 배열에서 중첩된 요소 분해를 참조하세요.

모델 스타 스키마

별표 스키마에서 source는 사실 테이블이며, LEFT OUTER JOIN을(를) 사용하여 하나 이상의 차원 테이블과 조인합니다. 메트릭 뷰는 선택한 차원 및 측정값에 따라 특정 쿼리에 필요한 팩트 및 차원 테이블을 조인합니다.

메트릭 뷰에서 조인 열을 지정하려면 ON 절 또는 USING 절을 사용하십시오.

  • ON: boolean 표현식을 사용하여 조인 조건을 정의합니다.
  • USING: 부모 테이블과 조인된 테이블 모두에서 이름이 같은 열을 나열합니다. 첫 번째 수준 조인의 경우 부모는 메트릭 뷰의 원본입니다. 눈송이 스키마의 중첩 조인의 경우 부모는 즉시 업스트림 조인입니다.

조인은 다대일 관계를 따라야 합니다. 다대다 관계의 경우, 조인된 차원 테이블에서 일치하는 첫 번째 행이 선택됩니다.

비고

YAML 1.1 파서(예: PyYAML)는 따옴표가 지정되지 않은 특정 키(예: on, off, yesno또는 NO부울 값)를 잘못 해석할 수 있습니다. 이로 인해 조인 오류가 발생할 수 있습니다. 이 문제를 방지하려면 이러한 키를 따옴표로 래핑합니다. 예: 'on': source.dim_fk = dim.pk

source: catalog.schema.fact_table

joins:

  # The on clause supports a boolean expression
  - name: dimension_table_1
    source: catalog.schema.dimension_table_1
    on: source.dimension_table_1_fk = dimension_table_1.pk

  # The using clause supports an array of columns
  # found in both of the tables being joined.
  - name: dimension_table_2
    source: catalog.schema.dimension_table_2
    using:
      - dimension_table_2_key_a
      - dimension_table_2_key_b

dimensions:

  # Dimension referencing a join column from dimension_table_1 using dot notation
  - name: Dimension table 1 key
    expr: dimension_table_1.pk

measures:

  # Measure referencing a join column from dimension_table_1
  - name: Count of dimension table 1 keys
    expr: COUNT(dimension_table_1.pk)

비고

네임스페이스 source는 메트릭 뷰의 원본에서 열을 참조하는 반면, 조인 name은 조인된 테이블의 열을 참조합니다. 예를 들어 조인 source.dimension_table_1_fk = dimension_table_1.pk 조건에서 source메트릭 뷰의 원본 테이블()fact_table을 참조하고 dimension_table_1 조인된 테이블을 참조합니다. 절에 접두사를 제공하지 않으면 기본적으로 조인 on 테이블이 참조됩니다.

모델 눈송이 스키마

눈송이 스키마는 차원 테이블을 정규화하고 하위 차원에 연결하여 별모양 스키마를 확장합니다. 이렇게 하면 데이터 모델의 깊이와 일치할 수 있는 다단계 조인 구조가 만들어집니다.

비고

Snowflake 조인에는 Databricks 런타임 컴퓨팅 17.1 이상이 필요합니다.

눈송이 스키마를 모델로 하는 조인을 정의하려면 다음을 수행합니다.

  1. 메트릭 뷰를 만듭니다.
  2. 첫 번째 수준(스타 스키마) 조인을 추가합니다.
  3. 다른 차원 테이블과 조인합니다.
  4. 뷰에 차원을 추가하여 중첩된 차원을 노출합니다.

다음 예제에서는 TPCH 데이터 세트를 사용하여 눈송이 스키마를 모델링하는 방법을 보여 줍니다. TPCH 데이터 세트는 Azure Databricks 작업 영역의 samples 카탈로그에서 액세스할 수 있습니다.

source: samples.tpch.orders

joins:
  - name: customer
    source: samples.tpch.customer
    on: source.o_custkey = customer.c_custkey
    joins:
      - name: nation
        source: samples.tpch.nation
        on: customer.c_nationkey = nation.n_nationkey
        joins:
          - name: region
            source: samples.tpch.region
            on: nation.n_regionkey = region.r_regionkey

dimensions:
  - name: clerk
    expr: o_clerk
  - name: customer
    expr: customer # returns the full customer row as a struct
  - name: customer_name
    expr: customer.c_name
  - name: nation
    expr: customer.nation
  - name: nation_name
    expr: customer.nation.n_name