

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# ID 매핑 테이블 분석 규칙
<a name="analysis-rules-id-mapping-table"></a>

에서 AWS Clean Rooms*ID 매핑 테이블 분석 규칙*은 독립 실행형 분석 규칙이 아닙니다. 이러한 유형의 분석 규칙은에서 관리 AWS Clean Rooms 하며 쿼리를 용이하게 하기 위해 서로 다른 자격 증명 데이터를 조인하는 데 사용됩니다. ID 매핑 테이블에 자동으로 추가되며 편집할 수 없습니다. 또한 공동 작업 내 다른 분석 규칙의 동작을 상속합니다. 단, 해당 분석 규칙들이 동질적이어야 합니다.

ID 매핑 테이블 분석 규칙은 ID 매핑 테이블에 보안을 적용합니다. 이 규칙은 공동 작업 구성원이 ID 매핑 테이블을 사용하여 두 구성원의 데이터 세트 간에 중첩되지 않는 모집단을 직접 선택하거나 검사하는 것을 제한합니다. ID 매핑 테이블 분석 규칙은 다른 분석 규칙과 함께 쿼리에 암시적으로 사용될 때 ID 매핑 테이블의 민감한 데이터를 보호하는 데 사용됩니다.

ID 매핑 테이블 분석 규칙을 사용하여는 확장된 SQL에서 ID 매핑 테이블의 양쪽에 중첩을 AWS Clean Rooms 적용합니다. 이를 통해 다음 작업을 수행할 수 있습니다: 
+ JOIN 문에서 ID 매핑 테이블의 중첩을 사용할 수 있습니다.

  AWS Clean Rooms 는 중첩을 준수하는 경우 ID 매핑 테이블에서 INNERLEFT, 또는 RIGHT 조인을 허용합니다. 민감한 매핑 정보를 보호하려면 ID 매핑 테이블이 항상 JOIN 작업의 "inner" 측에 있어야 합니다. 예를 들어 다음 JOIN 작업이 유효합니다.
  + table LEFT JOIN id\$1mapping\$1table
  + id\$1mapping\$1table RIGHT JOIN table
  + table INNER JOIN id\$1mapping\$1table

  다음 JOIN 작업은 유효하지 않습니다.
  + id\$1mapping\$1table LEFT JOIN table
  + table RIGHT JOIN id\$1mapping\$1table

  이렇게 하면 데이터 세트에 일치하는 항목이 없는 매핑 레코드가 노출되는 것을 방지할 수 있습니다. 이러한 작업을 허용하면 다른 공동 작업 구성원의 데이터 매핑에 대한 민감한 정보가 잠재적으로 공개될 수 있습니다.
+ JOIN 문에서 매핑 테이블 열을 사용할 수 있습니다.

  그러나 SELECT, WHERE, HAVING, GROUP BY 또는 ORDER BY 문에서는 매핑 테이블 열을 사용할 수 없습니다. 단, 소스 ID 네임스페이스 연결 또는 대상 ID 네임스페이스 연결에서 보호가 수정된 경우는 예외입니다.
+ 확장된 SQL에서는 OUTER , JOIN암시적 및 JOINCROSS AWS Clean Rooms 도 지원합니다JOIN. 이러한 조인은 중첩 요구 사항을 충족할 수 없습니다. 대신 `requireOverlap`를 AWS Clean Rooms 사용하여 조인해야 하는 열을 지정합니다.

지원되는 쿼리 구조 및 구문은 [ID 매핑 테이블 쿼리 구조 및 구문](#id-mapping-table-query-controls)에 정의되어 있습니다.

[ID 매핑 테이블 분석 규칙 쿼리 컨트롤](#parameters-id-mapping-query-controls)에 정의된 분석 규칙의 파라미터에는 쿼리 컨트롤 및 쿼리 결과 컨트롤이 포함됩니다. 쿼리 컨트롤에는 JOIN 문에서 ID 매핑 테이블의 중첩을 요구하는 기능(즉, `requireOverlap`)이 포함됩니다.

**Topics**
+ [ID 매핑 테이블 쿼리 구조 및 구문](#id-mapping-table-query-controls)
+ [ID 매핑 테이블 분석 규칙 쿼리 컨트롤](#parameters-id-mapping-query-controls)
+ [ID 매핑 테이블 분석 규칙의 사전 정의된 구조](#id-mapping-table-predefined-structure)
+ [ID 매핑 테이블 분석 규칙 - 예](#id-mapping-table-example)

## ID 매핑 테이블 쿼리 구조 및 구문
<a name="id-mapping-table-query-controls"></a>

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
```

### 공동 작업 테이블
<a name="collab-table-structure"></a>

다음 표는 AWS Clean Rooms 공동 작업에 있는 구성된 테이블을 나타냅니다. **cr\$1drivers\$1license** 및 **cr\$1insurance** 테이블의 **id** 열은 ID 매핑 테이블과 일치하는 열을 나타냅니다.

**cr\$1drivers\$1license**


|  |  |  | 
| --- |--- |--- |
| id | driver\$1name | state\$1of\$1registration | 
| 1 | Eduard | TX | 
| 2 | Dana | MA | 
| 3 | Gweneth | IL | 

**cr\$1insurance**


|  |  |  | 
| --- |--- |--- |
| id | policyholder\$1email | policy\$1number | 
| 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 매핑 테이블
<a name="id-mapping-table-structure"></a>

다음 표는 **cr\$1drivers\$1license** 및 **cr\$1insurance** 테이블과 일치하는 기존 ID 매핑 테이블을 나타냅니다. 두 공동 작업 테이블에 대한 ID가 없는 항목도 있습니다.


|  |  | 
| --- |--- |
| cr\$1drivers\$1license\$1id | cr\$1insurance\$1id | 
| 1 | a | 
| 2 | null | 
| 3 | b | 
| null | c | 

ID 매핑 테이블 분석 규칙은 다음과 같이 중첩 데이터 세트에 대해서만 쿼리를 실행할 수 있도록 허용합니다.


|  |  |  |  |  |  | 
| --- |--- |--- |--- |--- |--- |
| cr\$1drivers\$1license\$1id | cr\$1insurance\$1id | driver\$1name | state\$1of\$1registration | policyholder\$1email | policy\$1number | 
| 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 | 

### 예제 쿼리
<a name="id-mapping-table-example-queries"></a>

다음 예제에서는 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
;
```

### 고려 사항
<a name="id-mapping-table-considerations"></a>

ID 매핑 테이블 쿼리 구조 및 구문에 대해서는 다음 사항에 유의해야 합니다.
+ 편집할 수 없습니다.
+ 기본적으로 ID 매핑 테이블에 적용됩니다.
+ 공동 작업 내에서 소스 및 대상 ID 네임스페이스 연결을 사용합니다.
+ ID 매핑 테이블은 ID 네임스페이스에서 가져온 열에 대한 기본 보호를 제공하도록 기본적으로 구성됩니다. ID 네임스페이스(`sourceID` 또는 `targetID`)에서 가져온 열이 쿼리의 어느 곳에서든 허용될 수 있도록 이 구성을 수정할 수 있습니다. 자세한 내용은 [의 ID 네임스페이스 AWS Clean Rooms](working-with-id-namespaces.md) 단원을 참조하십시오.
+ ID 매핑 테이블 분석 규칙은 공동 작업 내 다른 분석 규칙의 SQL 제한을 상속합니다.

## ID 매핑 테이블 분석 규칙 쿼리 컨트롤
<a name="parameters-id-mapping-query-controls"></a>

ID 매핑 테이블 쿼리 제어를 사용하여는 테이블의 열을 사용하여 테이블을 쿼리하는 방법을 AWS Clean Rooms 제어합니다. 예를 들어 조인에 사용되는 열과 중첩이 필요한 열을 제어합니다. ID 매핑 테이블 분석 규칙에는 JOIN 없이도 `sourceID`, `targetID` 또는 둘 다를 표시할 수 있는 기능도 포함되어 있습니다.

다음 표에서는 각 컨트롤에 대해 설명합니다.


| 컨트롤 | 정의 | 사용법 | 
| --- | --- | --- | 
| joinColumns | 쿼리를 할 수 있는 구성원이 INNER JOIN 문에서 사용할 수 있는 열입니다. | INNER JOIN 이외의 다른 쿼리 부분에서는 joinColumns를 사용할 수 없습니다.자세한 내용은 [조인 컨트롤](analysis-rules-aggregation.md#join-controls) 단원을 참조하십시오. | 
| dimensionColumns  | 쿼리할 수 있는 구성원이 SELECT 및 GROUP BY 문에서 사용할 수 있는 열입니다(있는 경우). |  `dimensionColumn`은 SELECT 및 GROUP BY에서 사용할 수 있습니다. `dimensionColumn`은 `joinKeys`로 표시될 수 있습니다. 괄호 안에 지정한 경우에만 JOIN 절에서 `dimensionColumns`를 사용할 수 있습니다.  | 
| queryContraints:RequireOverlap |  쿼리를 실행할 수 있도록 조인해야 하는 ID 매핑 테이블의 열입니다.  |  이러한 열은 ID 매핑 테이블과 공동 작업 테이블을 조인하는 데 사용해야 합니다.  | 

## ID 매핑 테이블 분석 규칙의 사전 정의된 구조
<a name="id-mapping-table-predefined-structure"></a>

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 매핑 테이블에 대해 쿼리에 사용할 수 있는 특정 제한이 적용되지 않습니다.

다음 예시는 `sourceID`와 `targetID`에 기본 보호가 적용된 ID 매핑 테이블 분석 규칙의 사전 정의된 구조를 보여줍니다. 이 예시에서 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
}
```

다음 예시는 `targetID`에 보호 기능이 적용된 ID 매핑 테이블 분석 규칙의 미리 정의된 구조를 보여줍니다. 이 예시에서 ID 매핑 테이블 분석 규칙은 `sourceID` 열에 대한 INNER JOIN만 허용합니다.

```
{
  "joinColumns": [
    "source_id",
    "target_id"
  ],
  "queryConstraints": [
    {
      "requireOverlap": {
        "columns": [
          "target_id"
        ]
      }
    }
  ],
  "dimensionColumns": [
    "source_id"
  ]
}
```

다음 예시는 `sourceID`에 보호 기능이 적용된 ID 매핑 테이블 분석 규칙의 미리 정의된 구조를 보여줍니다. 이 예시에서 ID 매핑 테이블 분석 규칙은 `targetID` 열에 대한 INNER JOIN만 허용합니다.

```
{
  "joinColumns": [
    "source_id",
    "target_id"
  ],
  "queryConstraints": [
    {
      "requireOverlap": {
        "columns": [
          "source_id"
        ]
      }
    }
  ],
  "dimensionColumns": [
    "target_id"
  ]
}
```

다음 예시는 `sourceID` 또는 `targetID`에 보호 기능이 적용되지 않은 ID 매핑 테이블 분석 규칙의 미리 정의된 구조를 보여줍니다. 이 예시에서 ID 매핑 테이블 분석 규칙은 `sourceID` 열과 `targetID` 열 모두에 대한 INNER JOIN을 허용합니다.

```
{
  "joinColumns": [
    "source_id",
    "target_id"
  ],
  "queryConstraints": [
    {
      "requireOverlap": {
        "columns": []
      }
    }
  ],
  "dimensionColumns": [
    "source_id",
    "target_id"
  ]
}
```

## ID 매핑 테이블 분석 규칙 - 예
<a name="id-mapping-table-example"></a>

예를 들어 개인 식별 정보(PII)를 참조하는 긴 워터폴 문을 작성하는 대신, 기업은 ID 매핑 테이블 분석 규칙을 통해 다자간 LiveRamp 트랜스코딩을 활용할 수 있습니다. 다음 예제에서는 ID 매핑 테이블 분석 규칙을 AWS Clean Rooms 사용하여에서 협업하는 방법을 보여줍니다.

A사는 소스로 사용될 고객 및 판매 데이터를 보유한 광고주입니다. 또한 A사는 공동 작업의 당사자들을 대신하여 트랜스코딩을 수행하고 LiveRamp 자격 증명을 제공합니다.

B사는 대상으로 사용될 이벤트 데이터를 보유한 게시자입니다.

**참고**  
A사 또는 B사는 LiveRamp 트랜스코딩 자격 증명을 제공하고 트랜스코딩을 수행할 수 있습니다.

공동 작업을 생성하고 공동 작업을 통해 ID 매핑 테이블 분석을 수행하기 위해 두 회사는 다음과 같은 작업을 수행합니다.

1. A사는 공동 작업을 만들고 멤버십을 생성합니다. B사를 추가하고 이 회사의 공동 작업 멤버십도 생성합니다.

1. 회사 A는 기존 ID 네임스페이스 소스를 연결하거나 AWS Clean Rooms 콘솔을 AWS Entity Resolution 사용하여에서 새 ID 네임스페이스 소스를 생성합니다.

   A사는 판매 데이터로 구성된 테이블을 생성하고, 이 테이블에 ID 매핑 테이블의 `sourceId`에 연결된 열을 추가합니다.

   ID 네임스페이스 소스는 트랜스코딩할 데이터를 제공합니다.

1. 회사 B는 AWS Clean Rooms 콘솔을 AWS Entity Resolution 사용하여 기존 ID 네임스페이스 대상을 연결하거나에서 새 대상을 생성합니다.

   B사는 이벤트 데이터로 구성된 테이블을 생성하고, 이 테이블에 ID 매핑 테이블의 `targetId`에 연결된 열을 추가합니다.

   ID 네임스페이스 대상은 트랜스코딩할 데이터를 제공하지 않고 LiveRamp 구성과 관련된 메타데이터만 제공합니다.

1. A사는 공동 작업에 연결된 두 개의 ID 네임스페이스를 검색하고 ID 매핑 테이블을 생성하여 채웁니다.

1. 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
   ```