データ提供の仕様

プロバイダーが分析実行者と共有するテーブルのセットと、ポリシー、列形式、テーブルをテンプレートと併用する必要があるかどうかなどの共有ルールを定義します。

データプロバイダーは、REGISTER_DATA_OFFERINGを呼び出してこの定義を送信します。これによって、コラボレーション仕様で使用可能なサービスIDが返されます。

データ提供を登録したアカウントがコラボレーションに参加するまで、コラボレーションでデータ提供機能を利用できません。

データをアクティブ化できるコラボレーションに参加するための REGISTER DATA OFFERING アカウント権限を付与されている必要があります。つまり、ご自身は分析実行者であり、コラボレーション仕様に activation_destinations フィールドが含まれています。詳細については、アクセス管理 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

使用するコラボレーション API のバージョン。2.0.0 である必要があります。

spec_type

仕様タイプ識別子。data_offering である必要があります。

name: data_offering_name

コラボレーターに公開するテーブルと列のセットの名前。この名前は、コラボレーション仕様のデータサービス参照値として使用されます。異なるユースケースのために、テーブルと列が重複する複数のデータ提供機能を作成できます。最大75文字で、Snowflakeデータクリーンルームアカウント内で一意である Snowflake識別子ルール に従う必要があります。name_version ペアは、このアカウントのすべてのデータ提供に対して一意である必要があります。

version

このデータ提供仕様のカスタムバージョン識別子(最大20文字)。Snowflake識別子ルール に従う必要があります。バージョン文字列には、VIEW_DATA_OFFERINGS および VIEW_REGISTERED_DATA_OFFERINGS への応答で独自の列が指定されます。したがって、値を増やすことでソートできる値を使用します。例: V0

:samp:`description: {data_offering_description}`(オプション

データ提供の説明(最大1,000文字)。

datasets

コラボレーションで利用できるようにする1つ以上のデータセットのリスト。

alias: dataset_name

このデータオブジェクトの名前。collaboration.run で使用されます。Snowflake識別子ルール に従い、この提供機能内で一意である必要があります。最大75文字

data_object_fqn: fully_qualified_table_name

コラボレーターが利用できる単一のテーブルについて説明します。アカウントにソースオブジェクトの完全修飾名を入力します(database.schema.table_name)。最大長は773文字です。

allowed_analyses: allowed_analysis_type

コラボレーターがこのテーブルに対して実行できる分析のタイプ。次の値を持つ必須フィールド:

  • template_only:分析実行者は、コラボレーション仕様にリストされているテンプレートを使用することでのみ、このテーブルをクエリできます。

  • template_and_freeform_sql:分析実行者は、コラボレーション仕様にリストされているテンプレートを使用するか、コード環境の:ref:`自由形式SQLクエリ<label-dcr_collab_enable_free_form_queries>`を使用して、このテーブルをクエリできます。

``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 の値に変更されます。この列はクリーンルームの:ref:`結合ポリシー<label-dcr_collaborations_policies>`に追加されます。

  • join_custom:これはどの形式でも結合可能な列です。結合列に適切な column_type がない場合は、これを使用してください。。元の列名は共有されるデータ提供機能で使用されます。この列はクリーンルームの:ref:`結合ポリシー<label-dcr_collaborations_policies>`に追加されます。

  • timestamp:これは、イベントのタイムスタンプを指定する投影可能な列です。列の名前は共有されるデータ提供機能で timestamp に変更されます。

  • passthrough:これは、他のタイプの投影可能な列です。元の列名は共有されるデータ提供機能で使用されます。

  • event_type:これは、この行のイベントタイプ分類を記録する投影可能な列(例:「購入」、「サインアップ」、「インプレッション」、「クリック」)です。

``column_type: <format_type>``(category=join_standardの場合は必須、他のカテゴリタイプでは無視

データの形式。データがこの形式に準拠していない場合は、REGISTER_DATA_OFFERING への呼び出しが失敗します。category = join_standard. category および column_type分析実行者に公開される列名を決定する 列に対してこのフィールドを指定します。同じテーブル内にある複数の列に同じ 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_analysestemplate_and_freeform_sql である場合、このオプションフィールドには、このデータ提供機能で実行される自由形式の SQL クエリで適用されるべきSnowflakeポリシーがリストされます。詳細については、 データ提供にSnowflakeポリシーを適用する( 自由形式のクエリの使用時のみ ) をご参照ください。

次の型がサポートされています。

``aggregation_policy``(オプション

単一の 集約ポリシー 構成。

  • name:完全修飾ポリシー名。

  • ``entity_keys``(オプション):集計ポリシーのエンティティキーとして機能する列名のリスト。NOTE: これらの列の:ref:`名前が変更されている<label-dcr_source_column_renaming>`場合は、生成された列名を使用する必要があります。

``join_policy``(オプション

単一の 結合ポリシー 構成。

  • name:完全修飾ポリシー名。NOTE: この列の:ref:`名前が変更されている<label-dcr_source_column_renaming>`場合は、生成された列名を使用する必要があります。

  • ``columns``(オプション):このポリシーが適用される列名のリスト。

``masking_policies``(オプション

マスキングポリシー 構成の配列。

  • name:完全修飾ポリシー名。NOTE: この列の:ref:`名前が変更されている<label-dcr_source_column_renaming>`場合は、生成された列名を使用する必要があります。

  • ``columns``(オプション):このポリシーが適用される列名のリスト。

``projection_policies``(オプション

投影ポリシー 構成の配列。

  • name:完全修飾ポリシー名。NOTE: この列の:ref:`名前が変更されている<label-dcr_source_column_renaming>`場合は、生成された列名を使用する必要があります。

  • ``columns``(オプション):このポリシーが適用される列名のリスト。

``row_access_policy``(オプション

:doc:`行アクセスポリシー</user-guide/security-row-intro>`構成について記述するオブジェクト。

  • name:完全修飾ポリシー名。NOTE: この列の:ref:`名前が変更されている<label-dcr_source_column_renaming>`場合は、生成された列名を使用する必要があります。

  • ``columns``(オプション):このポリシーが適用される列名のリスト。

``require_freeform_sql_policy``(オプション

このデータソースが``freeform_sql_policies``を定義する必要があるかどうか。これは、ポリシーを割り当てずに自由形式のSQLクエリをサポートするデータソースが追加されることを回避するためのフェイルセーフとして使用されます。