목록 분석 규칙 - AWS Clean Rooms

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

목록 분석 규칙

AWS Clean Rooms에서 목록 분석 규칙은 추가된 구성 테이블과 쿼리가 가능한 구성원의 구성된 테이블 간의 중복 목록을 행 수준 목록으로 출력합니다. 쿼리할 수 있는 구성원은 목록 분석 규칙이 포함된 쿼리를 실행합니다.

목록 분석 규칙 유형은 강화 및 대상 구축과 같은 사용 사례를 지원합니다.

이 분석 규칙의 사전 정의된 쿼리 구조 및 구문에 대한 자세한 내용은 목록 분석 규칙 사전 정의된 구조을(를) 참조하세요.

목록 분석 규칙 - 쿼리 제어에 정의된 목록 분석 규칙의 매개 변수에는 쿼리 컨트롤이 있습니다. 쿼리 컨트롤에는 출력에 나열할 수 있는 열을 선택하는 기능이 포함됩니다. 쿼리에는 직접 또는 전이적으로 쿼리할 수 있는 구성원의 구성된 테이블을 사용한 조인이 하나 이상 있어야 합니다.

집계 분석 규칙과 같은 쿼리 결과 컨트롤은 없습니다.

목록 쿼리는 수학 연산자만 사용할 수 있습니다. 다른 함수(예: 집계 또는 스칼라)는 사용할 수 없습니다.

쿼리 구조 및 구문 목록

목록 분석 규칙이 있는 테이블에 대한 쿼리는 다음 구문을 준수해야 합니다.

--select_list_expression SELECT [TOP number ] DISTINCT column_name [[AS] column_alias ] [, ...] --table_expression FROM table_name [[AS] table_alias ] [[INNER] JOIN table_name [[AS] table_alias] ON join_condition] [...] --where_expression [WHERE where_condition] --limit_expression [LIMIT number]

다음 표에서는 위 구문에 나열된 각 표현식에 대해 설명합니다.

표현식 정의 예제
select_list_expression

테이블 열 이름을 하나 이상 포함하는 쉼표로 구분된 목록입니다.

DISTINCT 파라미터가 필요합니다.

참고

select_list_expression은(는) AS 매개변수를 포함하거나 포함하지 않고 열에 별칭을 지정할 수 있습니다.

또한 TOP 매개변수도 지원합니다. 자세한 내용은 AWS Clean RoomsSQL 참조 섹션을 참조하세요.

SELECT DISTINCT segment

table_expression

join_condition을(를) join_condition에 연결하는 테이블 또는 테이블의 조인.

join_condition은(는) BOOLEAN을 반환합니다.

table_expression은(는) 다음을 지원합니다.

  • 특정 조인 유형(INNER조인)

  • join_condition(=) 내의 동등 비교 조건

  • 논리 연산자(AND, OR).

FROM consumer_table INNER JOIN provider_table ON consumer_table.identifier1 = provider_table.identifier1 AND consumer_table.identifier2 = provider_table.identifier2
where_expression 부울을 반환하는 조건식입니다. 다음과 같이 구성될 수 있습니다:
  • 테이블 열 이름

  • 수학적 연산

  • 문자열 리터럴

  • 수치 리터럴

지원되는 비교 조건은 (=, >, <, <=, >=, <>, !=, NOT, IN, NOT IN, LIKE, IS NULL, IS NOT NULL)입니다.

지원되는 논리 연산자는 (AND, OR)입니다.

where_expression은(는) 선택 사항입니다.

WHERE state + '_' + city = 'NY_NYC'

WHERE timestampColumn = timestampColumn2 - 14

limit_expression

이 표현식은 양의 정수를 사용해야 합니다. TOP 매개변수와 바꿔서 사용할 수도 있습니다.

limit_expression은(는) 선택 사항입니다.

LIMIT 100

목록 쿼리 구조 및 구문에 대해서는 다음 사항에 유의해야 합니다.

  • SELECT 이외의 SQL 명령은 지원되지 않습니다.

  • 하위 쿼리 및 공통 테이블 표현식(예:WITH)은 지원되지 않습니다

  • HAVING GROUP BY, 및 BY ORDER 절은 지원되지 않습니다

  • OFFSET 파라미터는 지원되지 않습니다

목록 분석 규칙 - 쿼리 제어

목록 쿼리 컨트롤을 사용하면 테이블의 열을 사용하여 테이블을 쿼리하는 방법을 제어할 수 있습니다. 예를 들어, 조인에 사용되는 열 또는 SELECT 명령문 및 WHERE 절에서 사용할 수 있는 열을 제어할 수 있습니다.

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

조인 컨트롤

조인 컨트롤을 사용하면 테이블이 table_expression의 다른 테이블에 조인되는 방식을 제어할 수 있습니다. AWS Clean Rooms은(는 INNER JOIN만 지원합니다. 목록 분석 규칙에는 최소 하나 이상의 INNER JOIN이 필요하며 쿼리가 가능한 구성원은 자신이 소유한 테이블을 INNER JOIN에 포함해야 합니다. 즉, 직접 또는 전이적으로 테이블을 자신의 테이블과 조인해야 합니다.

다음은 전이성의 예입니다.

ON my_table.identifer = third_party_table.identifier .... ON third_party_table.identifier = member_who_can_query_table.id

INNER JOIN 문은 분석 규칙에서 명시적으로 joinColumn(으)로 분류된 열만 사용할 수 있습니다.

INNER JOIN은 구성된 테이블의 joinColumn와(과) 공동 작업의 다른 구성된 테이블의 joinColumn에 대해 작동해야 합니다. 테이블에서 joinColumn(으)로 사용할 수 있는 열을 결정합니다.

ON 절의 각 일치 조건은 두 열 간의 등식 비교 조건(=)을 사용해야 합니다.

ON 조항 내의 여러 일치 조건은 다음과 같을 수 있습니다.

  • AND 논리 연산자를 사용하여 조합합니다

  • OR 논리 연산자를 사용하여 구분합니다

참고

모든 JOIN 일치 조건은 JOIN의 양쪽에서 한 행씩 일치해야 합니다. OR 또는 AND 논리 연산자로 연결된 모든 조건문도 이 요구 사항을 준수해야 합니다.

다음은 AND 논리 연산자를 사용한 쿼리의 예입니다.

SELECT some_col, other_col FROM table1 JOIN table2 ON table1.id = table2.id AND table1.name = table2.name

다음은 OR 논리 연산자를 사용하는 쿼리의 예입니다.

SELECT some_col, other_col FROM table1 JOIN table2 ON table1.id = table2.id OR table1.name = table2.name
컨트롤 정의 사용량
joinColumns 쿼리를 할 수 있는 구성원이 INNER JOIN 문에서 사용할 수 있도록 허용하려는 열입니다.

동일한 열을 joinColumn와(과) listColumn(목록 컨트롤 참조) 모두로 분류할 수는 없습니다.

joinColumn은(는) INNER JOIN 이외의 쿼리 다른 부분에서는 사용할 수 없습니다.

목록 컨트롤

목록 컨트롤은 쿼리 출력에 나열될 수 있는 열 (즉, SELECT 문에 사용) 또는 결과를 필터링하는 데 사용할 수 있는 열 (즉, WHERE 문에서 사용) 을 제어합니다.

컨트롤 정의 사용량
listColumns 쿼리할 수 있는 구성원이 SELECT와 WHERE에서 사용하도록 허용한 열 listColumn은(는) SELECT 및 WHERE에서 사용할 수 있습니다.

동일한 열을 listColumn와(과) joinColumn 둘 다로 사용할 수는 없습니다.

목록 분석 규칙 사전 정의된 구조

다음 예제에는 목록 분석 규칙을 완성하는 방법을 보여주는 사전 정의된 구조가 포함되어 있습니다.

다음 예제에서는 MyTable은(는) 데이터 테이블을 의미합니다. 각 user input placeholder를 사용자의 정보로 바꿀 수 있습니다.

{ "joinColumns": [MyTable column name(s)], "listColumns": [MyTable column name(s)], }

목록 분석 규칙 - 예제

다음 예는 목록 분석을 사용하여 AWS Clean Rooms에서 두 회사가 협력할 수 있는 방법을 보여줍니다.

회사 A에는 고객 관계 관리(CRM) 데이터가 있습니다. 회사 A는 고객에 대해 더 자세히 알아보고 잠재적으로 속성을 다른 분석에 입력 자료로 사용할 수 있도록 고객에 대한 추가 세그먼트 데이터를 확보하고자 합니다. 회사 B는 자사 데이터를 기반으로 생성한 고유한 세그먼트 속성으로 구성된 세그먼트 데이터를 보유하고 있습니다. 회사 B는 고객 데이터와 회사 A 데이터 간에 중복되는 고객에 대해서만 회사 A에 고유한 세그먼트 속성을 제공하려고 합니다.

두 회사는 A사가 중복되는 데이터를 보강할 수 있도록 협력하기로 결정합니다. 회사 A는 쿼리를 할 수 있는 구성원이고 회사 B는 기여자입니다.

공동 작업을 생성하고 공동 작업으로 목록 분석을 실행하기 위해 회사는 다음과 같은 작업을 수행합니다.

  1. 회사 A는 공동 작업을 만들고 멤버십을 생성합니다. 공동 작업에는 회사 B가 공동 작업의 또 다른 구성원으로 참여합니다. 회사 A는 공동 작업에서 쿼리 로깅을 활성화하고 해당 계정에서 쿼리 로깅을 활성화합니다.

  2. 회사 B는 공동 작업 멤버십을 생성합니다. 이를 통해 해당 계정에서 쿼리 로깅이 가능합니다.

  3. 회사 A는 CRM으로 구성된 테이블을 생성합니다

  4. 회사 A는 다음 예에 나와 있는 대로 고객 구성 테이블에 분석 규칙을 추가합니다.

    { "joinColumns": [ "identifier1", "identifier2" ], "listColumns": [ "internalid", "segment1", "segment2", "customercategory" ] }

    joinColumns— 회사 A는 hashedemail 및/또는 thirdpartyid(ID 공급업체로부터 획득)을(를) 사용하여 CRM 데이터의 고객과 세그먼트 데이터의 고객을 매칭하려고 합니다. 이를 통해 A사는 풍부한 데이터를 적합한 고객에게 매칭할 수 있습니다. 두 개의 JoinColumn이 있어 분석의 일치율을 잠재적으로 개선할 수 있습니다.

    listColumns— 회사 A는 자체 시스템에서 사용하는 internalid 외에도 풍부한 열을 얻기 위해 listColumns을(를) 사용합니다. segment1, segment2, 및 customercategory을(를)을 추가하여 필터에 사용함으로써 잠재적으로 특정 세그먼트로 보강을 제한할 수 있습니다.

  5. 회사 B는 세그먼트 구성 테이블을 만듭니다.

  6. 회사 B는 세그먼트 구성 테이블에 분석 규칙을 추가합니다.

    { "joinColumns": [ "identifier2" ], "listColumns": [ "segment3", "segment4" ] }

    joinColumns— 회사 B는 회사 A가 identifier2에서 조인하여 세그먼트 데이터에서 CRM 데이터로 고객을 일치시킬 수 있도록 지원합니다. 회사 A와 회사 B는 ID 공급업체와 협력하여 이번 공동 작업에 적합한 identifier2을(를) 확보했습니다. identifier2이(가) 가장 높고 정확한 일치율을 제공하며 다른 식별자는 쿼리에 필요하지 않다고 판단했기 때문에 다른 joinColumns을(를) 추가하지 않았습니다.

    listColumns— 회사 B는 회사 A가 데이터 보강의 일부로(고객 A와 함께) 생성, 수집, 정렬한 고유 속성인 segment3segment4 속성을 사용하여 데이터를 보강할 수 있도록 지원합니다. 그들은 A 회사가 행 수준에서 중복되는 부분에 대해 이러한 세그먼트를 확보하기를 원합니다. 이는 데이터 강화 공동 작업이기 때문입니다.

  7. 회사 A는 공동 작업에 CRM 테이블 연결을 생성합니다.

  8. 회사 B는 공동 작업에 대한 세그먼트 테이블 연결을 생성합니다.

  9. 회사 A는 다음과 같은 쿼리를 실행하여 중복되는 고객 데이터를 보강합니다.

    SELECT companyA.internalid, companyB.segment3, companyB.segment4 INNER JOIN returns companyB ON companyA.identifier2 = companyB.identifier2 WHERE companyA.customercategory > 'xxx'
  10. 회사 A와 회사 B는 쿼리 로그를 검토합니다. 회사 B는 쿼리가 공동 작업 계약에서 합의한 내용과 일치하는지 확인합니다.