데이터 오퍼링 사양

공급자가 분석 실행자와 공유하려는 테이블 세트 및 정책, 열 형식, 테이블을 템플릿과 함께 사용해야 하는지 여부와 같은 공유 규칙을 정의합니다.

데이터 공급자는 공동 작업 사양에서 사용할 수 있는 오퍼링 ID를 반환하는 REGISTER_DATA_OFFERING을 호출하여 이 사양을 제출합니다.

데이터 오퍼링을 등록한 계정이 공동 작업에 참여할 때까지는 공동 작업에서 데이터 오퍼링을 사용할 수 없습니다.

데이터를 활성화할 수 있는 모든 공동 작업에 참여하려면 REGISTER DATA OFFERING 계정 권한(즉, 분석 실행자이고 공동 작업 사양에 activation_destinations 필드가 포함되어 있음)이 있어야 합니다. 자세한 내용은 :ref:`액세스 관리 API 참조 가이드 <label-dcr_collaboration_access_management_api>`를 참조하세요.

스키마:

api_version: 2.0.0              # Required: Must be "2.0.0"
spec_type: data_offering        # Required: Must be "data_offering"
name: <data_offering_name>      # Required: Unique name (max 75 chars)
version: <version_string>       # Required: Version identifier (max 20 chars)
description: <data_offering_description>  # Optional: Description (max 1,000 chars)

datasets:                       # Required: Tables to share
  - alias: <dataset_name>       # One or more dataset items...
    data_object_fqn: <database.schema.table_name>  # Required: Fully-qualified table name
    allowed_analyses: <allowed_analysis_type>      # Required: template_only or template_and_freeform_sql
    object_class: <object_class>    # Optional: ads_log or custom
    schema_and_template_policies:   # Required: Column definitions
      <column_name>:                # One or more column definitions...
        category: <category_type>   # Required: join_standard, join_custom, timestamp, passthrough, or event_type
        column_type: <format_type>  # Required for join_standard category, omitted for other categories.
        activation_allowed: <true_or_false>  # Optional: Whether column can be used for activation
    freeform_sql_policies:      # Optional: Policies for freeform SQL queries
      aggregation_policy:       # Optional: Single aggregation policy
        name: <fully_qualified_policy_name>
        entity_keys:            # Optional: Entity key columns
          - <column_name>       # One or more POSSIBLY RENAMED column names...
      join_policy:              # Optional: Single join policy
        name: <fully_qualified_policy_name>
        columns:                # Optional: Columns this policy applies to
          - <column_name>       # One or more POSSIBLY RENAMED column names...
      masking_policies:         # Optional: Masking policies
        - name: <fully_qualified_policy_name>  # One or more masking policy items...
          columns:              # Optional: Columns this policy applies to
            - <column_name>     # One or more POSSIBLY RENAMED column names...
      projection_policies:      # Optional: Projection policies
        - name: <fully_qualified_policy_name>  # One or more projection policy items...
          columns:              # Optional: Columns this policy applies to
            - <column_name>     # One or more POSSIBLY RENAMED column names...
      row_access_policy:        # Optional: Row access policy
        name: <fully_qualified_policy_name>
        columns:              # Optional: Columns this policy applies to
          - <column_name>     # One or more POSSIBLY RENAMED column names...
    require_freeform_sql_policy: <true_or_false>  # Optional: Require a policy for freeform SQL
api_version

사용되는 Collaboration API의 버전입니다. 2.0.0 여야 합니다.

spec_type

사양 유형 식별자입니다. data_offering 여야 합니다.

name: data_offering_name

공동 작업자에게 노출할 테이블 및 열 세트의 이름입니다. 이 이름은 공동 작업 사양에서 데이터 오퍼링 참조 값으로 사용됩니다. 다양한 사용 사례에 대해 겹치는 테이블과 열이 있는 여러 데이터 오퍼링을 생성할 수 있습니다. Snowflake 식별자 규칙</sql-reference/identifiers-syntax>`(최대 75자)을 따라야 하며, Snowflake 데이터 클린룸 계정 내에서 고유해야 합니다. :samp:`{name}_{version} 쌍은 이 계정의 모든 데이터 오퍼링에 대해 고유해야 합니다.

version

이 데이터 오퍼링 사양의 사용자 지정 버전 식별자(최대 20자)입니다. Snowflake 식별자 규칙 </sql-reference/identifiers-syntax>`을 따라야 합니다. VIEW_DATA_OFFERINGS 및 VIEW_REGISTERED_DATA_OFFERINGS에 대한 응답에서 버전 문자열에 별도의 열이 제공되므로 오름차순으로 정렬할 수 있는 값을 사용합니다. 예: ``V0`

:samp:`description: {data_offering_description}`(선택 사항)

데이터 오퍼링에 대한 설명입니다(최대 1,000자).

datasets

공동 작업에 사용할 수 있는 하나 이상의 데이터 세트 목록입니다.

alias: dataset_name

:code:`collaboration.run`에서 사용되는 이 데이터 오브젝트의 이름입니다. :doc:`Snowflake 식별자 규칙 </sql-reference/identifiers-syntax>`을 따라야 하며, 이 오퍼링 내에서 고유해야 합니다. 최대 75자입니다.

data_object_fqn: fully_qualified_table_name

공동 작업자가 사용할 수 있는 단일 테이블을 설명합니다. 계정에 있는 소스 오브젝트의 정규화된 이름을 입력합니다(database.schema.table_name). 최대 길이는 773자입니다.

allowed_analyses: allowed_analysis_type

공동 작업자가 이 테이블에 대해 실행할 수 있는 분석 유형입니다. 다음 값이 있는 필수 필드입니다.

  • template_only: 분석 실행자는 공동 작업 사양에 나열된 템플릿을 사용해야만 이 테이블을 쿼리할 수 있습니다.

  • template_and_freeform_sql: 분석 실행자는 공동 작업 사양에 나열된 템플릿을 사용하거나 코드 환경에서 자유 형식 SQL 쿼리 를 사용하여 이 테이블을 쿼리할 수 있습니다.

``object_class``(선택 사항)

오브젝트의 유형입니다. 다음 값 중 하나입니다.

  • ads_log: 여기에 나열된 테이블과 열은 광고 로그 요구 사항을 충족해야 합니다.

  • custom: 특별한 요구 사항이 없는 사용자 지정 테이블 및 열 세트입니다.

schema_and_template_policies

``data_object_fqn``으로 나열된 테이블의 열 이름 목록을 제공하고 각 열의 정책과 형식을 정의합니다. 공동 작업자는 여기에 나열된 열만 사용할 수 있습니다. 각 열에는 다음과 같은 설명자가 있습니다.

category: category_type

카테고리에 따라 열 이름 바꾸기가 적용되는지 여부와 적용해야 하는 데이터 형식이 결정됩니다. category``column_type``에 따라 :ref:`분석 실행자에 노출되는 열 이름이 결정 <label-dcr_source_column_renaming>`됩니다. 다음 값이 지원됩니다.

  • join_standard: column_type 필드에 지정된 형식의 데이터가 있는 조인 가능한 열입니다. 이 열의 이름은 공유 데이터 오퍼링에서 column_type 값으로 바뀝니다. 이 열은 클린룸의 조인 정책 에 추가됩니다.

  • join_custom: 모든 형식의 조인 가능한 열입니다. 조인 열에 대해 적절한 ``column_type``이 없는 경우 사용합니다. 원래 열 이름은 공유 데이터 오퍼링에서 사용됩니다. 이 열은 클린룸의 조인 정책 에 추가됩니다.

  • timestamp: 모든 이벤트의 타임스탬프를 지정하는 프로젝션 가능한 열입니다. 이 열의 이름은 공유 데이터 오퍼링에서 ``timestamp``로 바뀝니다.

  • passthrough: 다른 유형의 프로젝션 가능한 열입니다. 원래 열 이름은 공유 데이터 오퍼링에서 사용됩니다.

  • event_type: 이 행의 이벤트 유형 분류(예: “구매”, “가입”, “노출”, “클릭” 등)를 기록하는 프로젝션 가능한 열입니다.

``column_type: <format_type>``(ategory=join_standard인 경우 필수, 다른 카테고리 유형의 경우 무시됨)

데이터 형식입니다. 데이터가 이 형식을 따르지 않는 경우 REGISTER_DATA_OFFERING 호출이 실패합니다. category = join_standard``인 열에는 필드를 제공합니다. ``categorycolumn_type``에 따라 :ref:`분석 실행자에 노출되는 이름이 결정 <label-dcr_source_column_renaming>`됩니다. 동일한 테이블에서 여러 열에 동일한 ``column_type 값을 할당할 수 없습니다. 지원되는 형식 유형은 다음과 같습니다.

  • email: 원시 이메일 주소입니다.

  • hashed_email_sha256: SHA256으로 해시된 이메일입니다.

  • hashed_email_b64_encoded: base64로 인코딩된 해시 이메일입니다.

  • phone: 구두점이 없는 전화 번호입니다. 예를 들어 2015551212 과 같습니다.

  • hashed_phone_sha256: SHA256 해시된 전화 번호입니다. 원래 번호는 phone 형식이어야 합니다.

  • hashed_phone_b64_encoded: base64로 인코딩된 해시 전화 번호입니다.

  • device_id: 원시 디바이스 ID(예: 모바일 광고 ID 또는 CTV 디바이스 ID)입니다.

  • hashed_device_id_sha256: SHA256으로 해시된 디바이스 ID입니다. 원래 ID는 device_id 형식이어야 합니다.

  • hashed_device_b64_encoded: base64로 인코딩된 해시 디바이스 ID입니다.

  • ip_address: IPv4 형식의 원시 IP 주소 입니다.

  • hashed_ip_address_sha256: SHA256으로 해시된 IPv4 주소입니다. 원래 ID는 ip_address 형식이어야 합니다.

  • hashed_ip_address_b64_encoded: base64로 인코딩된 해시 IP 주소입니다.

  • first_name: 원시 이름입니다.

  • hashed_first_name_sha256: SHA256 해시된 이름입니다. 원래 ID는 first_name 형식이어야 합니다.

  • hashed_first_name_b64_encoded: base64로 인코딩되고 해시된 이름입니다.

  • last_name: 원시 성입니다.

  • hashed_last_name_sha256: SHA256 해시된 성입니다. 원래 ID는 last_name 형식이어야 합니다.

  • hashed_last_name_b64_encoded: base64로 인코딩되고 해시된 성입니다.

``activation_allowed``(선택 사항)

이 열을 활성화 목적으로 사용할 수 있는지 여부입니다. 기본값은 false 입니다.

``freeform_sql_policies``(선택 사항)

``allowed_analyses``가 template_and_freeform_sql`인 경우, 선택적 필드에는 데이터 오퍼링에서 실행되는 자유 형식 SQL 쿼리에 적용해야 하는 모든 Snowflake 정책이 나열됩니다. 자세한 내용은 :ref:`label-dcr_collab_freeform_sql_policies 섹션을 참조하십시오.

다음 타입이 지원됩니다.

``aggregation_policy``(선택 사항)

단일 집계 정책 구성입니다.

  • name: 정규화된 정책 이름입니다.

  • ``entity_keys``(선택 사항): 집계 정책의 엔터티 키로 사용되는 열 이름의 목록입니다. NOTE: 이러한 열 이름이 변경 된 경우 생성된 열 이름을 사용해야 합니다.

``join_policy``(선택 사항)

단일 조인 정책 구성입니다.

  • name: 정규화된 정책 이름입니다. NOTE: 이 열 이름이 변경 된 경우 생성된 열 이름을 사용해야 합니다.

  • ``columns``(선택 사항): 이 정책이 적용되는 열 이름의 목록입니다.

``masking_policies``(선택 사항)

마스킹 정책 구성의 배열입니다.

  • name: 정규화된 정책 이름입니다. NOTE: 이 열 이름이 변경 된 경우 생성된 열 이름을 사용해야 합니다.

  • ``columns``(선택 사항): 이 정책이 적용되는 열 이름의 목록입니다.

``projection_policies``(선택 사항)

프로젝션 정책 구성의 배열입니다.

  • name: 정규화된 정책 이름입니다. NOTE: 이 열 이름이 변경 된 경우 생성된 열 이름을 사용해야 합니다.

  • ``columns``(선택 사항): 이 정책이 적용되는 열 이름의 목록입니다.

``row_access_policy``(선택 사항)

행 액세스 정책 구성을 설명하는 오브젝트입니다.

  • name: 정규화된 정책 이름입니다. NOTE: 이 열 이름이 변경 된 경우 생성된 열 이름을 사용해야 합니다.

  • ``columns``(선택 사항): 이 정책이 적용되는 열 이름의 목록입니다.

``require_freeform_sql_policy``(선택 사항)

이 데이터 소스가 freeform_sql_policies 를 정의해야 하는지 여부입니다. 이는 자유 형식 SQL 쿼리를 지원하는 데이터 소스에 정책을 할당하지 않고 연결하는 것을 방지하기 위한 페일세이프로 사용됩니다.