View a markdown version of this page

中的自訂分析規則 AWS Clean Rooms - AWS Clean Rooms

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

中的自訂分析規則 AWS Clean Rooms

在 中 AWS Clean Rooms,自訂分析規則是一種新的分析規則類型,允許自訂查詢在設定的資料表上執行。自訂 SQL 查詢仍然限制為只有 SELECT命令,但可以使用比彙總清單查詢更多的 SQL 建構 (例如,視窗函數、OUTER JOIN、CTEs 或子查詢;如需完整清單,請參閱 AWS Clean Rooms SQL 參考)。自訂 SQL 查詢不需要遵循查詢結構,例如彙總列出查詢。

自訂分析規則支援比彙總和列出分析規則所支援更進階的使用案例,例如自訂屬性分析、基準化、增量分析和對象探索。這是彙總和列出分析規則所支援之使用案例的超集。

自訂分析規則也支援差異隱私權。差異隱私權是資料隱私權保護的數學嚴格架構。如需詳細資訊,請參閱AWS Clean Rooms 差異隱私權。當您建立分析範本時, AWS Clean Rooms 差異隱私權會檢查範本,以判斷它是否與 AWS Clean Rooms 差異隱私權的一般用途查詢結構相容。此驗證可確保您不會建立差異受隱私權保護資料表不允許的分析範本。

若要設定自訂分析規則,資料擁有者可以選擇允許儲存在分析範本中的特定自訂查詢在其設定的資料表上執行。資料擁有者會檢閱分析範本,再將其新增至自訂分析規則中允許的分析控制項。分析範本僅在建立它們的協同合作中可用和可見 (即使資料表與其他協同合作相關聯),並且只能由可在該協同合作中查詢的成員執行。

或者,成員可以選擇允許其他成員 (查詢提供者) 建立查詢,而無需檢閱。成員在自訂分析規則中新增允許查詢提供者控制的查詢提供者帳戶。如果查詢提供者是可以查詢的成員,他們可以直接在設定的資料表上執行任何查詢。查詢提供者也可以透過建立分析範本來建立查詢。查詢提供者建立的任何查詢都會自動允許在 AWS 帳戶 存在 且與資料表相關聯的所有協同合作中,於資料表上執行。

此頁面包含下列區段:

自訂分析規則支援下列隱私權增強控制項:

自訂分析規則結構

下列預先定義的結構顯示自訂分析規則中的可用控制項。僅包含使用案例所需的控制項。differentialPrivacy 控制項中的userIdentifier值是可唯一識別使用者的欄,例如 user_id。當您在協同合作中開啟了兩個或多個具有差異隱私權的資料表時, 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" } ] } }

您可擇一方法:

  • 將分析範本 ARNs新增至允許的分析控制項。在此情況下,控制項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 } ] } }

建議設定最低彙總閾值與比較控制項。閾值本身仍然會保持低基數或半識別資料欄的可比較性,這可能會以非預期的方式縮小結果範圍。

當您的資料表包含低基數或半識別資料欄時,例如郵遞區號或年齡範圍,或是查詢執行器未完全信任時,請務必設定比較控制項。如需顯示兩個控制項一起設定的工作範例,請參閱 具有最低彙總閾值和比較控制項的自訂分析規則範例

具有分析範本的自訂分析規則範例

下列範例示範兩家公司如何使用自訂分析規則 AWS Clean Rooms 在 中協作。

A 公司有客戶和銷售資料。A 公司有興趣了解 B 公司網站上的廣告行銷活動銷售增量。B 公司具有對公司有用的瀏覽資料和客群屬性 (例如,檢視廣告時所使用的裝置)。

A 公司有他們想要在協同合作中執行的特定增量查詢。

若要建立協同合作並在協同合作中執行自訂分析,公司會執行下列動作:

  1. A 公司建立協同合作並建立成員資格。協同合作讓 B 公司成為協同合作的另一個成員。公司 A 會在協同合作中啟用查詢記錄,並在其帳戶中啟用查詢記錄。

  2. B 公司在協同合作中建立成員資格。它在其帳戶中啟用查詢記錄。

  3. A 公司建立 CRM 設定的資料表

  4. A 公司將空的自訂分析規則新增至銷售設定的資料表。

  5. A 公司將銷售設定的資料表與協同合作建立關聯。

  6. B 公司建立檢視設定資料表。

  7. B 公司將空的自訂分析規則新增至檢視器設定的資料表。

  8. B 公司將檢視器設定的資料表與協同合作建立關聯。

  9. 公司 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 " }
  10. A 公司將其帳戶 (例如 444455556666) 新增至自訂分析規則中允許的分析提供者控制項。他們使用允許的分析提供者控制項,因為他們想要允許他們建立的任何查詢在其銷售設定的資料表上執行。

    { "allowedAnalyses": [ "ANY_QUERY" ], "allowedAnalysisProviders": [ "444455556666" ] }
  11. B 公司會在協同合作中看到建立的分析範本,並檢閱其內容,包括查詢字串和參數。

  12. B 公司判斷分析範本達到增量使用案例,並符合其檢視設定資料表如何查詢的隱私權要求。

  13. B 公司將分析範本 ARN 新增至檢視器資料表自訂分析規則中允許的分析控制項。他們使用允許的分析控制項,因為他們只想要允許增量查詢在其檢視器設定的資料表上執行。

    { "allowedAnalyses": [ "arn:aws:cleanrooms:us-east-1:111122223333:membership/41327cc4-bbf0-43f1-b70c-a160dddceb08/analysistemplate/1ff1bf9d-781c-418d-a6ac-2b80c09d6292" ] }
  14. A 公司執行分析範本,並使用參數值 05-01-2023

具有最低彙總閾值的自訂分析規則範例

下列範例示範兩個公司如何使用具有最低彙總閾值 AWS Clean Rooms 的自訂分析規則來協作,而不是檢閱個別分析範本。

A 公司是發佈者,其impressions資料表包含 user_idcampaign_idevent_date。B 公司是廣告商,想要衡量行銷活動的範圍,也就是看到特定行銷活動的不同使用者數量。A 公司想要確保沒有任何查詢結果可以顯示個人或小型群組,因此會使用最低彙總閾值,而不是檢閱個別分析範本。

若要建立協同合作並執行自訂分析,公司會執行下列動作:

  1. 公司 A 會建立與公司 B 的協同合作,做為另一個成員和可查詢的成員。公司 A 會在協同合作及其帳戶中啟用查詢記錄。

  2. B 公司在協同合作中建立成員資格,並在其帳戶中啟用查詢記錄。

  3. A 公司會建立已impressions設定的資料表。

  4. A 公司將自訂分析規則新增至具有最低彙總閾值的impressions已設定資料表,因此每個傳回的資料列至少代表 100 個不同的使用者。公司 A user_id設定為身分資料欄,並覆寫低敏感度campaign_id輸出資料欄的閾值為 5。A 公司也允許對 campaign_id和 進行常值比較,event_date以便 B 公司可以將查詢範圍限定為一個行銷活動和日期範圍。常值比較中出現的每個資料欄都必須在允許清單中。最後,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" ] }
  5. 公司 A 會將impressions設定的資料表與協同合作建立關聯。

  6. 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;
  7. AWS Clean Rooms 只會傳回至少 100 個不同使用者支援的資料列,並抑制其餘資料列,因此 B 公司會在不了解任何個人或小群組的情況下,學習假日提升行銷活動的每日接觸率。

    event_date reach
    2026-01-01 142
    2026-01-02 118
    2026-01-04 103

    日期2026-01-03不會出現在結果中,因為當天少於 100 個不同的使用者看到了行銷活動,因此 AWS Clean Rooms 隱藏了該資料列。

與分析範本方法的主要區別在於,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常值比較進行篩選,並使用資料user_idcolumn-to-column比較進行聯結。由於已設定比較允許清單,因此完全無法在比較中使用未列出的任何資料欄,包括郵遞區號或年齡段等低基數資料欄。

如需每個控制項的詳細資訊,請參閱 最小彙總閾值比較控制項。如需也包含不允許輸出資料欄的完整組態,請參閱 整合練習

整合練習

下列範例顯示自訂分析規則類型的完整組態,使用不允許的輸出資料欄、最小彙總閾值和比較控制項。此組態會強制執行 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" ] }