데이터 오퍼링¶
*데이터 오퍼링*은 공동 작업에서 특정 분석 실행자와 공유되는 하나 이상의 뷰 세트로, *데이터 세트*라고 부릅니다. 공동 작업 사양 에서 데이터 공급자로 정의된 분석 실행자와 데이터를 공유할 수 있습니다.
데이터 오퍼링은 소스 데이터의 라이브 뷰이며, 데이터 오퍼링이 등록된 시점의 데이터 스냅샷이 아닙니다. 소스 데이터에 적용된 모든 Snowflake 정책은 데이터 오퍼링에서 활성화됩니다.
데이터 오퍼링을 등록하면 Snowflake는 데이터 오퍼링 사양 될 수 있습니다.
또한 데이터 오퍼링을 공동 작업에 연결하면 Snowflake는 등록된 뷰의 복사본을 생성하고 공동 작업 사양 에 따라 지정된 분석 실행자로 뷰에 대한 액세스를 제한합니다.
중요
기본 테이블에 대한 액세스 권한을 이동하거나 이름을 변경하거나 변경하면 이전에 등록된 링크를 통해 데이터 오퍼링을 사용할 수 없게 됩니다.
Snowflake Standard Edition을 사용하는 경우 정책 적용으로 Data Clean Room을 통해 데이터를 공유할 수 없습니다. 따라서 자신의 계정에 있는 사용자에 대해서도 다른 당사자와 데이터를 공유하거나 오퍼링에 지정된 데이터 클린룸 정책을 활용할 수 없습니다. 그러나 다른 공동 작업자의 데이터 오퍼링에 액세스하거나 정책 없이 자체 데이터를 로컬 데이터 오퍼링으로 사용 할 수 있습니다.
데이터 오퍼링 요구 사항:
공유하려는 모든 데이터에 대해 GRANT OPTION이 있는 REFERENCE_USAGE 권한이 있어야 합니다 그렇지 않은 경우 공동 작업에 등록하고 조인하거나 데이터를 연결하려고 할 때 “참조 사용 권한 누락” 오류가 발생합니다.
공동 작업에는 데이터 공급자 공동 작업 역할 이 있어야 합니다.
현재, 공동 작업을 생성하거나 조인한 계정 역할만 공동 작업에 데이터를 연결하거나 데이터 연결을 해제할 수 있습니다.
공동 작업에 데이터 오퍼링을 등록하고 연결하는 방법을 알아보려면 계속 읽으세요.
데이터 오퍼링 등록¶
데이터에 대한 :ref:`데이터 오퍼링 사양 <label-dcr_collaboration_data_yaml>`을 생성합니다. 데이터 오퍼링에 대한 다음 세부 정보를 지정합니다.
데이터 오퍼링의 각 데이터 세트에 대한 소스 오브젝트.
각 데이터 세트에 포함할 열.
Clean Room 정책 을 채우는 데 사용되는 각 열의 유형(조인 또는 기타). 경우에 따라 개별 열의 형식도 지정합니다.
데이터 오퍼링의 열에 적용할 모든 Snowflake 데이터 보호 정책.
사용자가 데이터에 액세스하는 방법: 템플릿만 사용 또는 자유 형식 SQL 쿼리 도 사용.
데이터 오퍼링 ID를 반환하는 REGISTER_DATA_OFFERING을 호출하여 데이터 오퍼링을 등록합니다.
이 단계에서는 레지스트리에 대한 읽기 액세스 권한이 있는 계정의 모든 역할이 데이터 오퍼링을 모든 공동 작업에 연결*할 수 있게* 됩니다. 동일한 데이터 오퍼링 ID를 사용하여 여러 공동 작업과 데이터 오퍼링을 공유할 수 있습니다.
데이터 오퍼링 연결¶
연결 프로세스는 공동 작업이 생성되었는지 여부에 따라 다릅니다.
공동 작업이 아직 생성되지 않은 경우 데이터 공급자는 공동 작업 소유자에게 데이터 오퍼링을 ID를 제공하여 공동 작업 사양 에 포함할 수 있습니다. 데이터 오퍼링이 공동 작업 사양에 포함된 경우 데이터 오퍼링 ID는 공동 작업에 조인하기 전에 데이터 공급자가 검토할 수 있도록 공동 작업 사양에 표시됩니다.
공동 작업이 생성된 경우 데이터 공급자는 공동 작업에 참여하고 데이터 오퍼링 ID, 공동 작업 이름, 데이터를 공유할 수 있는 사용자와 함께 LINK_DATA_OFFERING을 호출합니다. 데이터 오퍼링이 연결된 후 데이터 오퍼링을 사용할 수 있게 되기까지 짧은 지연이 있을 수 있습니다. 데이터 오퍼링 요청이 성공적으로 완료되었는지 확인하려는 경우 VIEW_UPDATE_REQUESTS를 호출합니다. 연결에 성공하면 VIEW_DATA_OFFERINGS를 호출할 때 데이터 오퍼링이 표시되고 사용할 준비가 됩니다.
데이터를 연결할 때 데이터에 액세스할 수 있는 분석 실행자를 지정합니다.
데이터 공급자는 UNLINK_DATA_OFFERING를 호출하여 공동 작업 또는 특정 공동 작업자로부터 데이터 오퍼링을 제거할 수 있습니다.
계정에 등록된 데이터 오퍼링을 보려면 VIEW_REGISTERED_DATA_OFFERINGS를 호출합니다.
팁
데이터 오퍼링을 등록한 사용자가 공동 작업에 참여할 때까지 데이터 오퍼링은 공동 작업에 표시되지 않습니다.
분석을 실행하는 방법을 알아보려면 분석 실행 섹션을 참조하세요.
소스 열 이름 바꾸기¶
데이터 오퍼링의 열 이름은 분석 실행자에 노출하기 전에 바꿀 수 있습니다. 이름 바꾸기는 이 테이블에 설명된 대로 데이터 오퍼링 사양 에서 열을 정의하는 category 및 column_type 값에 따라 다릅니다.
열 |
새 열 이름 |
|---|---|
|
|
|
|
|
원래 열 이름이 사용됩니다. |
예를 들어, 소스 테이블의 열 이름이 user_email_address 인 경우, 이 열이 분석 실행자에 노출되는 방식은 데이터 오퍼링 사양에 정의된 방식에 따라 다릅니다.
데이터 오퍼링 사양 |
열이 참조되는 방법 |
|---|---|
|
데이터 오퍼링에 데이터 보호 정책 적용하기¶
Clean Room에서 공유되는 데이터는 여러 가지 방법으로 보호됩니다.
Clean Room 환경에 등록된 데이터는 데이터 오퍼링 사양에 나열되지 않은 모든 열을 생략하는 보안 뷰로 생성됩니다.
보안 뷰는 공동 작업 사양에 지정된 특정 사용자 및 템플릿과만 공유됩니다.
데이터에 Snowflake 정책을 추가하여 데이터 사용 방식을 추가로 관리할 수 있습니다.
Data Clean Room 템플릿 정책 은 또한 데이터 오퍼링 열 분류를 기반으로 적용됩니다.
조인 또는 집계 정책과 같은 Snowflake 데이터 보호 정책을 공유 데이터에 적용하는 두 가지 방법이 있습니다.
소스 데이터에 정책을 적용합니다. 소스 데이터에 적용된 모든 정책은 공동 작업에서 노출되는 데이터 세트에 적용됩니다. 공동 작업자에게 정책을 전달합니다.
자유 형식 쿼리에 사용되는 경우 데이터 오퍼링에 정책을 적용합니다. 데이터 오퍼링에 대한 자유 형식 쿼리를 허용하는 경우 데이터 오퍼링 사양에서 해당 쿼리에 적용할 정책을 지정할 수 있습니다. 이러한 정책은 소스 테이블의 기존 Snowflake 정책에 추가로 적용됩니다.
소스 데이터에 Snowflake 정책 적용¶
소스 데이터에 적용된 모든 Snowflake 정책은 공동 작업의 데이터 오퍼링 뷰에도 적용됩니다.
소스 데이터에 Snowflake 정책을 적용하는 경우, 공동 작업자에게 이에 대해 알려야 공동 작업자가 조인할 수 없는 열에 조인하거나 집계 요구 사항을 충족하지 않는 쿼리를 자신도 모르게 실행하는 상황을 방지할 수 있습니다. 데이터 오퍼링의 description 필드에 Snowflake 정책을 언급합니다.
중요
Snowflake 데이터 정책이 있는 데이터 오퍼링을 등록할 때 해당 정책이 적용되지 않는 역할을 사용하거나 데이터가 등록될 때까지 정책을 일시적으로 일시 중단해야 합니다.
Snowflake Data Clean Rooms 는 등록 프로세스의 일부로 소스 테이블에서 유효성 검사 쿼리를 실행하기 때문입니다. 테스트 쿼리가 의미 있는 결과를 반환하지 못하면 등록이 실패합니다. 일부 Snowflake 데이터 정책으로 인해 테스트가 실패할 수 있습니다. 예를 들어, 테이블에 집계 정책이 있고 유효성 검사 쿼리가 집계 정책의 최소 그룹 크기 요구 사항을 충족하기에 충분한 행을 반환하지 않을 수 있습니다.
데이터 오퍼링에 Snowflake 정책 적용(자유 형식 쿼리 사용만 해당)¶
Snowflake 정책을 소스 데이터에 적용하지 않고 자유 형식 쿼리 를 통해 액세스할 때 공유 데이터에 적용할 수 있습니다. 이러한 정책은 소스 테이블에 직접 적용되는 모든 Snowflake 정책에 추가로 적용됩니다.
**데이터에 자유 형식 SQL 정책을 추가**하려면:
데이터 오퍼링 사양에 다음 정보를 추가합니다.
``allowed_analyses: template_and_freeform_sql``을 설정합니다.
freeform_sql_policies섹션을 데이터 세트 항목에 추가합니다.freeform_sql_policies아래에 적절한 정책 유형 섹션을 추가하고, 생성한 Snowflake 정책 및 해당 정책을 적용할 공동 작업 열을 나열합니다. 지원되는 정책 유형은 다음과 같습니다.aggregation_policy: 선택적 엔터티 키가 있는 단일 집계 정책.projection_policies: 각각 열 바인딩이 있는 프로젝션 정책의 배열.join_policy: 선택적 열 바인딩이 있는 단일 조인 정책.masking_policies: 각각 열 바인딩이 있는 마스킹 정책의 배열.row_access_policy: 선택적 열 바인딩이 있는 단일 행 액세스 정책.
데이터 오퍼링을 등록하는 역할에는 정책에 대한 USAGE 권한이 있어야 합니다.
공동 작업자는 ``COLLABORATION.VIEW_DATA_OFFERINGS``를 호출할 때 데이터에 적용된 정책 유형을 확인합니다.
여러 테이블의 여러 열에 대한 정책을 재사용할 수 있습니다.
예:
Snowflake Data Clean Room 템플릿 정책¶
Snowflake Data Clean Rooms는 Snowflake 정책 시스템 외에 자체 정책 시스템도 지원합니다. 공동 작업의 각 데이터 공급자는 데이터 오퍼링에 대해 다음 정책을 설정할 수 있습니다.
조인*할 수 있는* 열을 지정하는 조인 정책.
프로젝션*할 수 있는* 열을 지정하는 열 정책.
활성화*할 수 있는* 열을 지정하는 활성화 정책.
데이터 공급자는 데이터 오퍼링 사양에서 다음 정책을 설정할 수 있습니다.
열의
category가join_standard또는join_custom인 경우 열이 Clean Room의 조인 정책에 추가됩니다.열의
category가 다른 값으로 설정된 경우 열이 Clean Room의 열 정책에 추가됩니다.열의
activation_allowed값이 TRUE로 설정된 경우 Clean Room의 활성화 정책에도 추가됩니다.
템플릿에 적절한 정책 검사 필터 가 있는 경우 정책이 적용됩니다. 해당 필터는 join_policy, column_policy, activation_policy, join_and_column_policy 입니다. 템플릿 실행 시 이러한 필터는 참조된 열이 데이터 오퍼링 사양에서 설정된 해당 정책에 의해 허용되는지 확인합니다. 지정된 정책의 일부가 아닌 열에 필터가 적용되면 템플릿이 실패합니다.
예를 들어, col1 및 col2 는 모두 데이터 공급자 조인 정책(category: join_standard 또는 category: join_custom)의 일부여야 합니다. 그렇지 않은 경우 다음 템플릿 스니펫에서 오류가 발생합니다.
명명 경로를 사용하여 데이터 오퍼링 구성하기¶
명명 경로를 사용하여 데이터 오퍼링을 개념적으로 그룹화할 수 있습니다. 이는 각 데이터 오퍼링이 하나 이상의 테이블 또는 뷰를 나타내기 때문에 특히 효과적입니다. 개별 테이블은 collaborator alias.data offering ID.dataset alias 구문을 사용하여 액세스할 수 있습니다. 여기서 데이터 오퍼링 ID는 사용자가 제공한 이름과 버전 값의 조합이며, 별칭은 오퍼링의 단일 테이블입니다.
데이터 오퍼링을 등록할 때 이름, 버전, 별칭을 범위 지정 시스템으로 고려하여 오퍼링 및 별칭별로 데이터를 구성할 수 있습니다. 예를 들어, US 주에 고유한 테이블이 있는 다음과 같은 판매 데이터 오퍼링을 등록할 수 있습니다.
분석 실행자는 이러한 테이블을 user_alias.offering_id.AL, user_alias.offering_id.NY, user_alias.offering_id.CA 로 참조합니다.