翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
のカスタム分析ルール AWS Clean Rooms
では AWS Clean Rooms、カスタム分析ルールは、設定されたテーブルでカスタムクエリを実行できるようにする新しいタイプの分析ルールです。カスタム SQL クエリは、現在も SELECT コマンドの使用のみに制限されていますが、集約クエリやリストクエリよりも多くの SQL 構文を使用できます (例えば、ウィンドウ関数、OUTER JOIN、CTE、サブクエリなど。詳細なリストについては、「AWS Clean Rooms SQL リファレンス」を参照してください)。カスタム SQL クエリでは、集約クエリやリストクエリのようなクエリ構造に従う必要はありません。
カスタム分析ルールは、カスタムアトリビューション分析、ベンチマーキング、増分解析、オーディエンス発掘など、集計分析ルールやリスト分析ルールよりも高度なユースケースに対応します。これは、集計分析ルールおよびリスト分析ルールでサポートされるユースケースのスーパーセットに追加されるものです。
カスタム分析ルールは差分プライバシーもサポートします。差分プライバシーは、データプライバシー保護のための数学的に厳格なフレームワークです。詳細については、「AWS Clean Rooms 差分プライバシー」を参照してください。分析テンプレートを作成すると、 AWS Clean Rooms 差分プライバシーはテンプレートをチェックして、 AWS Clean Rooms 差分プライバシーの汎用クエリ構造と互換性があるかどうかを確認します。この検証により、差分プライバシー保護テーブルでは許可されない分析テンプレートが作成されなくなります。
カスタム分析ルールを設定する場合、データ所有者は、分析テンプレートに保存されている特定のカスタムクエリを自身の設定済みテーブルで実行することを許可できます。データ所有者は、分析テンプレートを確認してから、カスタム分析ルールの許可された分析コントロールに追加します。分析テンプレートは、(テーブルが他のコラボレーションに関連付けられている場合でも) 作成されたコラボレーションでのみ使用および表示され、そのコラボレーションでクエリを行えるメンバーのみが実行できます。
または、他のメンバー (クエリプロバイダー) が確認なしでクエリを作成できるよう許可することもできます。その場合は、許可対象のクエリプロバイダーが管理するクエリプロバイダーのアカウントをカスタム分析ルールに追加します。クエリプロバイダーがクエリを行えるメンバーであれば、設定済みテーブルで任意のクエリを直接実行できます。クエリプロバイダーは、分析テンプレートを作成することによってクエリを作成することもできます。クエリプロバイダーによって作成されたクエリは、 が存在し、テーブル AWS アカウント が関連付けられているすべてのコラボレーションで、テーブルで自動的に実行できます。
このページには、以下のセクションが含まれています。
カスタム分析ルールは、以下のプライバシー強化コントロールをサポートしています。
カスタム分析ルール構造
次の事前定義された構造は、カスタム分析ルールで使用可能なコントロールを示しています。ユースケースに必要なコントロールのみを含めます。differentialPrivacy コントロールのuserIdentifier値は、user_id など、ユーザーを一意に識別する列です。コラボレーションで差分プライバシーが有効になっているテーブルが 2 つ以上ある場合、 は両方の分析ルールでユーザー識別子列と同じ列を設定 AWS Clean Rooms する必要があります。これにより、テーブル間でユーザーの一貫した定義が維持されます。
{ "allowedAnalyses": ["ANY_QUERY"] | string[], "allowedAnalysisProviders": [], "disallowedOutputColumns": [], "aggregationThresholds": [ { "identityColumns": [], "minimumIdentityCount": number, "type": "COUNT_DISTINCT", "allowedAggregateExpressionType": "COLUMNS_ONLY" | "ANY_EXPRESSION", "outputColumnThresholds": [ { "outputColumnName": string, "minimumIdentityCount": number } ] } ], "comparisonControls": { "allowedLiteralComparisonColumns": [], "allowedColumnComparisonColumns": [] }, "differentialPrivacy": { "columns": [ { "name": "userIdentifier" } ] } }
次のいずれかを行うことができます。
-
分析テンプレート ARN を許可された分析コントロールに追加します。この場合、
allowedAnalysisProvidersコントロールは含まれません。{ allowedAnalyses: string[] } -
AWS アカウント IDsを
allowedAnalysisProvidersコントロールに追加します。この場合は、ANY_QUERYをallowedAnalysesコントロールに追加します。{ allowedAnalyses: ["ANY_QUERY"], allowedAnalysisProviders: string[] }
次のいずれかのコントロールを設定することもできます。
-
がクエリ結果に射影することを許可しない列。詳細については、「許可されない出力列」を参照してください。
{ disallowedOutputColumns: string[] } -
各結果行が少なくとも個別のデータサブジェクトの最小数を表す必要がある最小集計しきい値。を使用して個々の出力列のしきい値を上書きし
outputColumnThresholds、集計関数内で式を許可するかどうかallowedAggregateExpressionTypeを制御します。詳細については、最小集計しきい値、特定の出力列の最小集計しきい値の上書き、および 集計関数でネストされた式を許可する を参照してください。{ aggregationThresholds: [ { identityColumns: string[], minimumIdentityCount: number, type: "COUNT_DISTINCT", allowedAggregateExpressionType: "COLUMNS_ONLY" | "ANY_EXPRESSION", outputColumnThresholds: [ { outputColumnName: string, minimumIdentityCount: number } ] } ] } -
リテラル値と比較できる列と、別の列と比較できる列を定義する比較コントロール。詳細については、「比較コントロール」を参照してください。
{ comparisonControls: { allowedLiteralComparisonColumns: string[], allowedColumnComparisonColumns: string[] } } -
ユーザー識別子列を識別してテーブルを保護する差分プライバシー設定。詳細については、AWS Clean Rooms 「差分プライバシー」を参照してください。
{ differentialPrivacy: { columns: [ { name: string } ] } }
比較コントロールとともに最小集約しきい値を設定することが推奨されます。しきい値自体では、カーディナリティが低い列や準識別列が同等になり、意図しない方法で結果を絞り込む可能性があります。
比較コントロールは、郵便番号や年齢帯などの低カーディナリティまたは準識別列がテーブルに含まれている場合、またはクエリランナーが完全に信頼されていない場合に設定できます。両方のコントロールが一緒に設定されている実例については、「」を参照してください最小集計しきい値と比較コントロールを使用したカスタム分析ルールの例。
分析テンプレートを使用したカスタム分析ルールの例
次の例は、2 つの企業がカスタム分析ルール AWS Clean Rooms を使用して でコラボレーションする方法を示しています。
A 社には顧客データと売上データがあります。A 社は、B 社のサイトで実施した広告キャンペーンによる売上の増分を把握したいと考えています。B 社には、A 社にとって有用な閲覧データとセグメント属性 (広告を閲覧する際に使用したデバイスなど) があります。
企業 A には、コラボレーションで実行したい特定の増分クエリがあります。
コラボレーションを作成し、コラボレーションでカスタム分析を実行するために、各社は次のことを行います。
-
A 社がコラボレーションを作成し、メンバーシップを作成します。このコラボレーションには、B 社がコラボレーションの相手方のメンバーとして参加します。A 社はコラボレーションでのクエリログ記録を有効にし、自社アカウントでのクエリログの記録を有効にします。
-
B 社がコラボレーションでメンバーシップを作成し、そのアカウントでのクエリログの記録を有効にします。
-
A 社が、設定済み CRM テーブルを作成します。
-
A 社が、設定済み売上テーブルに空のカスタム分析ルールを追加します。
-
A 社が、設定済み売上テーブルをコラボレーションに関連付けます。
-
B 社が、設定済み閲覧者数テーブルを作成します。
-
B 社が、設定済み閲覧者数テーブルに空のカスタム分析ルールを追加します。
-
B 社が、設定済み閲覧者数テーブルをコラボレーションに関連付けます。
-
A 社が、コラボレーションに関連付けられている売上テーブルと閲覧者数テーブルを表示し、キャンペーン月の増分クエリとパラメータを追加して分析テンプレートを作成します。
{ "analysisParameters": [ { "defaultValue": "" "type": "DATE" "name": "campaign_month" } ], "description": "Monthly incrementality query using sales and viewership data" "format": "SQL" "name": "Incrementality analysis" "source": "WITH labeleddata AS ( SELECT hashedemail, deviceid, purchases, unitprice, purchasedate, CASE WHEN testvalue IN ('value1', 'value2', 'value3') THEN 0 ELSE 1 END AS testgroup FROM viewershipdata ) SELECT labeleddata.purchases, provider.impressions FROM labeleddata INNER JOIN salesdata ON labeleddata.hashedemail = provider.hashedemail WHERE MONTH(labeleddata.purchasedate) > :campaignmonth AND testgroup = :group " } -
A 社が、自社のアカウント (444455556666 など) をカスタム分析ルールの許可された分析プロバイダーコントロールに追加します。A 社は、作成したすべてのクエリを設定済み販売テーブルで実行できるようにしたいため、許可された分析プロバイダーコントロールを使用しています。
{ "allowedAnalyses": [ "ANY_QUERY" ], "allowedAnalysisProviders": [ "444455556666" ] } -
B 社が、作成された分析テンプレートをコラボレーション内で確認し、クエリ文字列やパラメータなどの内容を確認します。
-
B 社が、分析テンプレートが増分のユースケースに対応しており、設定済み視聴者数テーブルのクエリの実行方法がプライバシー要件を満たしていることを判断します。
-
B 社が、視聴者数テーブルのカスタム分析ルールの許可された分析コントロールに分析テンプレート ARN を追加します。B 社は、設定済み視聴者数テーブルでのみ増分クエリを実行できるようにしたいため、許可された分析コントロールを使用しています。
{ "allowedAnalyses": [ "arn:aws:cleanrooms:us-east-1:111122223333:membership/41327cc4-bbf0-43f1-b70c-a160dddceb08/analysistemplate/1ff1bf9d-781c-418d-a6ac-2b80c09d6292" ] } -
A 社が分析テンプレートを実行し、パラメータ値
05-01-2023を使用します。
最小集計しきい値を使用したカスタム分析ルールの例
次の例は、2 つの企業が、個々の分析テンプレートを確認する代わりに、最小限の集計しきい値でカスタム分析ルール AWS Clean Rooms を使用してコラボレーションする方法を示しています。
A 社は、user_id、、campaign_idおよび を含むimpressionsテーブルを持つパブリッシャーですevent_date。B 社は、キャンペーンのリーチ、つまり特定のキャンペーンを見た個別のユーザーの数を測定する広告主です。A 社は、クエリ結果が個人や小グループを明らかにできないようにしたいため、個々の分析テンプレートを確認するのではなく、最小限の集計しきい値を使用します。
コラボレーションを作成し、カスタム分析を実行するために、企業は以下を実行します。
-
A 社は、別のメンバーとして、またクエリ可能なメンバーとして B 社とのコラボレーションを作成します。A 社は、コラボレーションとそのアカウントでクエリログ記録を有効にします。
-
B 社がコラボレーションにメンバーシップを作成し、そのアカウントのクエリログ記録を有効にします。
-
A 社が
impressions設定済みテーブルを作成します。 -
A 社は、
impressions設定されたテーブルに、返されるすべての行が少なくとも 100 人の個別のユーザーを表すように、最小の集計しきい値を持つカスタム分析ルールを追加します。A 社は ID 列user_idとして を設定し、感度の低いcampaign_id出力列のしきい値を 5 に上書きします。A 社は、Bevent_date社がクエリを 1 つのキャンペーンと日付範囲にスコープできるように、campaign_idと でのリテラル比較も許可します。リテラル比較に表示されるすべての列は、許可リストに含まれている必要があります。最後に、A 社が B 社のアカウントを許可された分析プロバイダーコントロールに追加し、B 社がテンプレートごとのレビューなしでクエリを実行できるようにします。{ "aggregationThresholds": [ { "identityColumns": [ "user_id" ], "minimumIdentityCount": 100, "type": "COUNT_DISTINCT", "allowedAggregateExpressionType": "COLUMNS_ONLY", "outputColumnThresholds": [ { "outputColumnName": "campaign_id", "minimumIdentityCount": 5 } ] } ], "comparisonControls": { "allowedLiteralComparisonColumns": [ "campaign_id", "event_date" ] }, "allowedAnalyses": [ "ANY_QUERY" ], "allowedAnalysisProviders": [ "444455556666" ] } -
A 社は、
impressions設定されたテーブルをコラボレーションに関連付けます。 -
B 社は、 によってグループ化
event_dateされ、キャンペーンにフィルタリングされたリーチクエリを実行します。SELECT event_date, COUNT(DISTINCT user_id) AS reach FROM impressions WHERE event_date >= '2026-01-01' AND campaign_id = 'Holiday Promotion' GROUP BY event_date; -
AWS Clean Rooms は、少なくとも 100 人の個別のユーザーによってバックアップされた行のみを返し、残りを抑制するため、B 社は個人または少人数のグループについて知ることなく、休日プロモーションキャンペーンの毎日の到達範囲を学習します。
event_datereach2026-01-01 142 2026-01-02 118 2026-01-04 103 100 人未満の個別のユーザーがその日にキャンペーンを見たため、その行が AWS Clean Rooms 抑制されたため、日付は結果に表示され
2026-01-03ません。
分析テンプレートアプローチとの主な違いは、A 社が特定のクエリをレビューしたことがないことです。代わりに、A 社はしきい値に依存して、クエリが返すことができるものを制約します。詳細については、「最小集計しきい値」および「比較コントロール」を参照してください。
最小集計しきい値と比較コントロールを使用したカスタム分析ルールの例
比較コントロールとともに最小集約しきい値を設定することが、推奨されるベースライン設定です。しきい値だけでは、すべての結果行が個別のデータサブジェクトの最小数を表しますが、低カーディナリティまたは準識別列の比較は妨げられません。比較コントロールがない場合でも、クエリランナーはそれらの列をフィルタリングまたは結合できるため、意図しない方法で結果を絞り込む可能性があります。
比較コントロールは、郵便番号や年齢帯などの低カーディナリティまたは準識別列がテーブルに含まれている場合、またはクエリランナーが完全に信頼されていない場合に設定できます。比較コントロールを追加すると、リテラル比較と列column-to-column比較で表示できる列が制限され、しきい値だけが開いたままにするギャップが閉じられます。
次の設定は、両方のコントロールを組み合わせています。
{ "aggregationThresholds": [ { "identityColumns": [ "user_id" ], "minimumIdentityCount": 100, "type": "COUNT_DISTINCT", "allowedAggregateExpressionType": "COLUMNS_ONLY" } ], "comparisonControls": { "allowedLiteralComparisonColumns": [ "campaign_id" ], "allowedColumnComparisonColumns": [ "user_id" ] }, "allowedAnalyses": [ "ANY_QUERY" ], "allowedAnalysisProviders": [ "444455556666" ] }
この設定では、すべての結果行が少なくとも 100 個の個別のデータセットを表します。クエリランナーは、リテラル比較campaign_idを使用してフィルタリングし、column-to-column比較user_idを使用して に結合できます。比較許可リストが設定されているため、郵便番号や経過時間バンドなどの低カーディナリティ列を含む、リストされていない列は、比較にまったく使用できません。
各コントロールの詳細については、最小集計しきい値「」および「」を参照してください比較コントロール。許可されていない出力列も含まれる詳細な設定については、「」を参照してくださいまとめ。
まとめ
次の例は、許可されていない出力列、最小集計しきい値、比較コントロールを使用した、カスタム分析ルールタイプの完全な設定を示しています。この設定では、100 個の個別のデータサブジェクトの最小集約を強制し、クエリ結果に が射影user_idされるのを防ぎ、クエリランナーがuser_id列に参加している顧客の交差を分析できるようにします。
また、このポリシーは、機密性の低い列statusと でリテラル比較フィルタリングを許可することで柔軟性を高めprice、campaign_id列の最小集約しきい値を 5 に上書きします。
{ "disallowedOutputColumns": [ "user_id" ], "comparisonControls": { "allowedLiteralComparisonColumns": [ "status", "price" ], "allowedColumnComparisonColumns": [ "user_id" ] }, "aggregationThresholds": [ { "identityColumns": [ "user_id" ], "minimumIdentityCount": 100, "type": "COUNT_DISTINCT", "allowedAggregateExpressionType": "COLUMNS_ONLY", "outputColumnThresholds": [ { "outputColumnName": "campaign_id", "minimumIdentityCount": 5 } ] } ], "allowedAnalyses": [ "ANY_QUERY" ], "allowedAnalysisProviders": [ "444455556666", "333366669999" ] }