쿼리 결과 활성화하기

활성화 개요

공동 작업자는 활성화 라는 프로세스를 통해 클린룸 외부로 템플릿 결과를 전송할 수 있습니다. 템플릿은 활성화를 지원해야 하며, 각 데이터 공급자는 데이터 오퍼링 사양의 열 수준에서 활성화를 승인해야 합니다.

활성화는 전용 활성화 템플릿을 사용하여 구현됩니다. 활성화 템플릿은 쿼리 실행기에 결과를 반환하지 않고 대신 대상 사용자 계정의 결과 테이블에 결과를 작성합니다.

참고

결과를 다른 Snowflake 계정으로 활성화하려면 Snowflake Enterprise Edition 이상이 필요합니다.

활성화 구현하기

활성화를 구현하는 단계는 다음과 같습니다.

  1. 모든 공동 작업에 조인하려면 REGISTER DATA OFFERING 권한 <label-dcr_collaboration_access_management_api>`(즉, 분석 실행자이고 공동 작업 사양에 ``activation_destinations` 필드가 포함되어 있음)이 있는 사용자 역할이어야 합니다.

  2. 모든 사양이 올바르게 구성되었는지 확인합니다.

    활성화된 열이 포함된 테이블의 데이터 오퍼링 사양 에서는 해당 열에 대해 activation_allowed: TRUE 를 설정해야 합니다.

     api_version: 2.0.0
     spec_type: data_offering
     name: 2025_orders
     version: 2025_01_01_v1
     description: Activating Cleveland sales results for 2025
    
     datasets:
      - alias: customers
        data_object_fqn: db1.schema1.orders
        allowed_analyses: template_only
        object_class: custom
        schema_and_template_policies:
          email:
            category: join_standard
            column_type: hashed_email_sha256
            activation_allowed: TRUE
          purchase_amount:
            category: passthrough
            activation_allowed: TRUE
    
  3. 활성화 템플릿 을 사용해야 합니다. 이 템플릿은 결과를 내부 테이블에 저장합니다. 이 템플릿의 모든 예상 열이 활성화됩니다.

    activation_policy 필터가 적용된 템플릿에 있는 모든 열은 데이터 오퍼링 사양에 activation_allowed: TRUE 가 설정되어 있어야 합니다.

    참고

    템플릿이 열에 activation_policy 필터를 적용하지 않는 경우, 데이터 오퍼링 사양의 해당 열에 activation_allowed: TRUE 가 설정되어 있는지 여부에 관계없이 열을 활성화할 수 있습니다.

    다음 예제에서는 분석 실행자가 제공하는 두 열에 활성화 정책이 적용된 템플릿을 보여줍니다.

    BEGIN
      CREATE OR REPLACE TABLE cleanroom.activation_data_analysis_results AS
        SELECT count(*) AS ITEM_COUNT, c.status, c.age_band
        FROM IDENTIFIER({{ my_table[0] }}) AS c
        JOIN IDENTIFIER({{ source_table[0] }}) AS p
        ON {{ c_join_col | sqlsafe | activation_policy }} = {{ p_join_col | sqlsafe | activation_policy }}
        GROUP BY c.status, c.age_band
        ORDER BY c.age_band;
      RETURN 'analysis_results';
    END;
    
  4. 분석 실행자는 RUN을 호출하여 분석을 실행하고 결과를 활성화합니다.

    • 직접 활성화하는 경우, 호출자의 계정에 결과가 즉시 제공됩니다.

    • 다른 공동 작업자에게 활성화하는 경우: 다음을 수행합니다.

      1. 공동 작업자는 SHARED 상태가 반환될 때까지 VIEW_ACTIVATIONS를 호출합니다.

        데이터를 공동 작업자의 계정으로 공유해야 하므로 결과 세트가 큰 경우 다른 계정으로 활성화하는 데 상당한 시간이 걸릴 수 있습니다. 클라우드 간 공동 작업자도 복제 빈도 설정으로 인해 추가 지연이 발생합니다.

      2. 활성화 상태가 SHARED인 경우 공동 작업자는 PROCESS_ACTIVATION을 호출하여 결과를 자신의 계정으로 전송합니다.

        PROCESS_ACTIVATION에 대한 응답에는 테이블 및 세그먼트 이름이 포함됩니다. 이를 통해 활성화 상태가 PROCESSED로 설정됩니다.

  5. 분석 실행자는 다음 섹션에 설명된 대로 결과를 읽을 수 있습니다.

활성화 결과 읽기

이전 섹션에서 설명한 대로 활성화가 완료되면 결과가 계정의 collaboration_name.activation.segment_records 테이블에 저장됩니다.

테이블의 스키마는 다음과 같습니다.

설명

BATCH_ID

처리된 배치 작업의 UID입니다.

SEGMENT_NAME

활성화 페이로드의 이름입니다.

TEMPLATE_ID

활성화에 사용되는 템플릿의 ID입니다.

SHARED_BY

데이터를 활성화한 공동 작업자의 이름입니다.

UPDATED_ON

배치가 성공적으로 처리된 시점의 타임스탬프입니다.

RECORDS

활성화된 IDs의 페이로드 및 활성화 템플릿의 특성입니다.

참고

공동 작업자가 클린룸을 종료하면 활성화된 결과가 있는 테이블을 포함하여 애플리케이션에 액세스할 수 없게 됩니다.

활성화 결과를 검색하려면 다음 SQL 명령을 실행하여 선택적으로 세그먼트 이름별로 필터링합니다.

SELECT *
  FROM <collaboration_name>.activation.segment_records
    [WHERE segment_name = '<segment_name>'];