本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
ID 映射表分析規則
在 中 AWS Clean Rooms,ID 映射資料表分析規則不是獨立的分析規則。這種類型的分析規則由 管理 AWS Clean Rooms ,用於聯結不同的身分資料,以方便查詢。它會自動新增至 ID 映射表,而且無法編輯。只要這些分析規則是同質的,就會繼承協同合作中其他分析規則的行為。
ID 映射表分析規則會對 ID 映射表強制執行安全性。它限制協作成員使用 ID 映射表直接選取或檢查兩個成員資料集之間的非重疊人口。ID 映射表分析規則用於隱含在其他分析規則的查詢中使用時,保護 ID 映射表中的敏感資料。
使用 ID 映射表分析規則, 會在擴展的 SQL 中 AWS Clean Rooms 強制執行 ID 映射表兩側的重疊。這可讓您執行下列任務:
-
在 JOIN陳述式中使用 ID 映射表的重疊。
AWS Clean Rooms 如果 ID 映射表與重疊相符LEFT,則 允許 INNER、 或 RIGHT聯結。為了保護敏感映射資訊,ID 映射表必須一律位於任何JOIN操作的「inner」端。例如,下列JOIN操作有效:
-
table LEFT JOIN id_mapping_table
-
id_mapping_table RIGHT JOIN table
-
table INNER JOIN id_mapping_table
下列JOIN操作無效:
-
id_mapping_table LEFT JOIN table
-
table RIGHT JOIN id_mapping_table
這可防止您的資料集中沒有對應相符項目的映射記錄暴露。允許此類操作可能會洩露有關其他協同合作成員資料映射的敏感資訊。
-
-
在JOIN陳述式中使用映射表資料欄。
您無法在下列陳述式中使用映射表欄:SELECT、GROUP BY、、 WHERE HAVING或 ORDER BY(除非在來源 ID 命名空間關聯或目標 ID 命名空間關聯上修改保護)。
-
在擴展的 SQL 中, AWS Clean Rooms 也支援 OUTER JOIN、隱含 JOIN和 CROSS JOIN。這些聯結無法滿足重疊要求。反之, AWS Clean Rooms 使用
requireOverlap
來指定必須加入哪些資料欄。
支援的查詢結構和語法在 中定義ID 映射表查詢結構和語法。
中定義的分析規則參數ID 映射表分析規則查詢控制項包括查詢控制項和查詢結果控制項。其查詢控制項包含要求 JOIN陳述式中 ID 映射資料表重疊的功能 (即 requireOverlap
)。
ID 映射表查詢結構和語法
對具有 ID 映射資料表分析規則的資料表進行查詢必須遵循下列語法。
--
select_list_expression
SELECT provider.data_col, consumer.data_col --table_expression
FROM provider JOIN idMappingTable idmt ON provider.id = idmt.sourceId JOIN consumer ON consumer.id = idmt.targetId
協同合作資料表
下表代表協同 AWS Clean Rooms 合作中存在的已設定資料表。cr_drivers_license 和 cr_management 資料表中的 ID 資料欄代表要與 ID 映射資料表相符的資料欄。
cr_drivers_license
id | driver_name | state_of_registration |
1 | Eduard | TX |
2 | Dana | MA |
3 | Gweneth | IL |
cr_ 保險
id | policyholder_email | policy_number |
a | eduardo@internal.company.com | 17f9d04e-f5be-4426-bdc4-250ed59c6529 |
b | gwen@internal.company.com | 3f0092db-2316-48a8-8d44-09cf8f6e6c64 |
c | rosa@internal.company.com | d7692e84-3d3c-47b8-b46d-a0d5345f0601 |
ID 映射表
下表代表與 cr_drivers_license 和 cr_management 資料表相符的現有 ID 映射資料表。並非所有項目都有兩個協同合作資料表IDs。
cr_drivers_license_id | cr_insurance_id |
1 | a |
2 | null |
3 | b |
null | c |
ID 映射資料表分析規則僅允許在一組重疊資料上執行查詢,如下所示:
cr_drivers_license_id | cr_insurance_id | driver_name | state_of_registration | policyholder_email | policy_number |
1 | a | Eduard | TX | eduardo@internal.company.com | 17f9d04e-f5be-4426-bdc4-250ed59c6529 |
3 | b | Gweneth | IL | gwen@internal.company.com | 3f0092db-2316-48a8-8d44-09cf8f6e6c64 |
查詢範例
下列範例顯示 ID 映射資料表聯結的有效位置:
-- Single ID mapping table SELECT [ select_items ]FROM cr_drivers_license cr_dl [ INNER | LEFT ] JOIN cr_identity_mapping_table idmt ON idmt.cr_drivers_license_id = cr_dl.id [ INNER | RIGHT ] JOIN cr_insurance cr_in ON idmt.cr_insurance_id = cr_in.id ; -- Single ID mapping table (Subquery) SELECT [ select_items ]FROM ( SELECT [ select_items ] FROM cr_drivers_license cr_dl [ INNER | LEFT ] JOIN cr_identity_mapping_table idmt ON idmt.cr_drivers_license_id = cr_dl.id [ INNER | RIGHT ] JOIN cr_insurance cr_in ON idmt.cr_insurance_id = cr_in.id ) ; -- Single ID mapping table (CTE) WITH matched_ids AS ( SELECT [ select_items ] FROM cr_drivers_license cr_dl [ INNER | LEFT ] JOIN cr_identity_mapping_table idmt ON idmt.cr_drivers_license_id = cr_dl.id [ INNER | RIGHT ] JOIN cr_insurance cr_in ON idmt.cr_insurance_id = cr_in.id )SELECT [ select_items ]FROM matched_ids ;
考量事項
對於 ID 映射資料表查詢結構和語法,請注意下列事項:
-
您無法編輯它。
-
根據預設,它會套用至 ID 映射表。
-
它在協同合作中使用來源和目標 ID 命名空間關聯。
-
根據預設,ID 映射表會設定為為來自 ID 命名集的資料欄提供預設保護。您可以修改此組態,以便在查詢中的任何位置允許來自 ID 命名空間 (
sourceID
或targetID
) 的資料欄。如需詳細資訊,請參閱中的 ID 命名空間 AWS Clean Rooms。 -
ID 映射資料表分析規則會繼承協同合作中其他分析規則的 SQL 限制。
ID 映射表分析規則查詢控制項
使用 ID 映射資料表查詢控制項, AWS Clean Rooms 控制資料表中的資料欄如何用於查詢資料表。例如,它會控制哪些資料欄用於聯結,以及哪些資料欄需要重疊。ID 映射資料表分析規則也包含的功能可讓您允許投影 sourceID
、 targetID
或兩者,而不需要 JOIN。
下表說明每個控制項。
控制項 | 定義 | 用量 |
---|---|---|
joinColumns |
可以查詢的成員可以在 INNER JOIN 陳述式中使用的資料欄。 | 您無法joinColumns 在 INNER JOIN 以外的查詢任何其他部分中使用 。如需詳細資訊,請參閱聯結控制項。 |
dimensionColumns |
可在 SELECT 和 GROUP BY 陳述式中查詢的成員可以使用的資料欄 (如果有)。 |
只有在括號 |
queryContraints:RequireOverlap |
ID 映射表中必須聯結的資料欄,以便查詢可以執行。 |
這些資料欄必須用來加入 ID 映射資料表和協同合作資料表。 |
ID 映射表分析規則預先定義的結構
ID 映射表分析規則的預先定義結構隨附套用到 sourceID
和 的預設保護targetID
。這表示在查詢中必須使用套用保護的 欄。
您可以透過下列方式設定 ID 映射表分析規則:
-
sourceID
和 皆targetID
受保護在此組態中,
sourceID
和targetID
無法同時投影。參考 ID 映射表時,sourceID
和targetID
必須在 JOIN 中使用。 -
僅
targetID
受保護在此組態中,
targetID
無法投影。參考 ID 映射表時,targetID
必須在 JOIN 中使用 。sourceID
可用於查詢。 -
僅
sourceID
受保護在此組態中,
sourceID
無法投影。參考 ID 映射表時,sourceID
必須在 JOIN 中使用 。targetID
可用於查詢。 -
既不
sourceID
受保護也不targetID
受保護在此組態中,ID 映射表不受可在查詢中使用的任何特定強制執行約束。
下列範例顯示 ID 映射資料表分析規則的預先定義結構,其中包含套用至 sourceID
和 的預設保護targetID
。在此範例中,ID 映射表分析規則僅允許資料sourceID
欄和targetID
資料欄上的 INNER JOIN。
{ "joinColumns": [ "source_id", "target_id" ], "queryConstraints": [ { "requireOverlap": { "columns": [ "source_id", "target_id" ] } } ], "dimensionColumns": [] // columns that can be used in SELECT and JOIN }
下列範例顯示 ID 映射資料表分析規則的預先定義結構,其保護會套用至 targetID
。在此範例中,ID 映射資料表分析規則僅允許資料sourceID
欄上的 INNER JOIN。
{ "joinColumns": [ "source_id", "target_id" ], "queryConstraints": [ { "requireOverlap": { "columns": [ "target_id" ] } } ], "dimensionColumns": [ "source_id" ] }
下列範例顯示 ID 映射資料表分析規則的預先定義結構,其中包含套用至 的保護sourceID
。在此範例中,ID 映射資料表分析規則僅允許資料targetID
欄上的 INNER JOIN。
{ "joinColumns": [ "source_id", "target_id" ], "queryConstraints": [ { "requireOverlap": { "columns": [ "source_id" ] } } ], "dimensionColumns": [ "target_id" ] }
下列範例顯示未將保護套用至 sourceID
或 的 ID 映射資料表分析規則的預先定義結構targetID
。在此範例中,ID 映射表分析規則允許資料sourceID
欄和targetID
資料欄上的 INNER JOIN。
{ "joinColumns": [ "source_id", "target_id" ], "queryConstraints": [ { "requireOverlap": { "columns": [] } } ], "dimensionColumns": [ "source_id", "target_id" ] }
ID 映射表分析規則 – 範例
例如,公司可以使用 ID 映射表分析規則來使用多方 LiveRamp 轉碼,而不是撰寫參考個人身分識別資訊 (PII) 的長瀑布陳述式。下列範例示範如何使用 ID AWS Clean Rooms 映射資料表分析規則在 中協作。
A 公司是具有客戶和銷售資料的廣告商,將用作來源。A 公司也會代表協作中的各方執行轉碼,並帶來 LiveRamp 登入資料。
B 公司是具有事件資料的發佈者,將用作目標。
注意
A 公司或 B 公司都可以提供 LiveRamp 轉碼登入資料並執行轉碼。
若要建立協同合作以啟用協同合作 ID 映射表分析,公司會執行下列動作:
-
A 公司建立協同合作並建立成員資格。它新增了 B 公司,該公司也會在協同合作中建立成員資格。
-
公司 A 關聯現有的 ID 命名空間來源,或使用 AWS Clean Rooms 主控台 AWS Entity Resolution 在 中建立新的 ID 命名空間來源。
公司 A 會建立已設定的資料表,其中包含其銷售資料,以及 ID 映射資料表
sourceId
中索引鍵為 的資料欄。ID 命名空間來源提供要轉碼的資料。
-
B 公司會關聯現有的 ID 命名空間目標,或使用 AWS Clean Rooms 主控台 AWS Entity Resolution 在 中建立新的 ID 命名空間目標。
B 公司會建立已設定的資料表,其中包含其事件資料,以及 ID 映射資料表
targetId
中索引鍵為 的資料欄。ID 命名空間目標不提供要轉碼的資料,僅提供 LiveRamp 組態周圍的中繼資料。
-
A 公司探索與協同合作相關聯的兩個 ID 命名空間,並建立和填入 ID 映射表。
-
A 公司透過加入 ID 映射表,跨兩個資料集執行查詢。
--- this would be valid for Custom or List SELECT provider.data_col, consumer.data_col FROM provider JOIN idMappingTable-123123123123-myMappingWFName idmt ON provider.id = idmt.sourceId JOIN consumer ON consumer.id = idmt.targetId