기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
집계 분석 규칙
AWS Clean Rooms에서 집계 분석 규칙은 선택적 측정기준과 함께 COUNT, SUM 및/또는 AVG 함수를 사용하여 집계 통계를 생성합니다. 구성된 테이블에 집계 분석 규칙을 추가하면 쿼리를 할 수 있는 구성원이 구성된 테이블에서 쿼리를 실행할 수 있습니다.
집계 분석 규칙은 캠페인 계획, 미디어 도달 범위, 빈도 측정, 속성 등의 사용 사례를 지원합니다.
지원되는 쿼리 구조 및 구문은 집계 쿼리 구조 및 구문에 정의되어 있습니다.
집계 분석 규칙 - 쿼리 제어에 정의된 분석 규칙의 매개 변수에는 쿼리 컨트롤 및 쿼리 결과 컨트롤이 포함됩니다. 쿼리 컨트롤에는 쿼리할 수 있는 구성원이 소유한 하나 이상의 구성된 테이블에 구성된 테이블을 직접 또는 전이적으로 조인하도록 요구하는 기능이 포함됩니다. 이 요구 사항을 통해 쿼리가 테이블과 해당 테이블의 교차점(INNERJOIN)에서 실행되도록 할 수 있습니다.
집계 쿼리 구조 및 구문
집계 분석 규칙이 있는 테이블에 대한 쿼리는 다음 구문을 준수해야 합니다.
--
select_aggregate_function_expression
SELECT aggregation_function(column_name) [[AS] column_alias ] [, ...] --select_grouping_column_expression
[, {column_name|scalar_function(arguments)} [[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] --group_by_expression
[GROUP BY {column_name|scalar_function(arguments)}, ...]] --having_expression
[HAVING having_condition] --order_by_expression
[ORDER BY {column_name|scalar_function(arguments)} [{ASC|DESC}]] [,...]]
다음 표에서는 위 구문에 나열된 각 표현식에 대해 설명합니다.
표현식 | 정의 | 예제 |
---|---|---|
|
다음 표현식을 포함하는 쉼표로 구분된 쉼표로 구분된 목록입니다.
참고
|
|
|
지원되는 집계 함수가 하나 이상의 열에 하나 이상 적용되었습니다. 열만 집계 함수의 인수로 사용할 수 있습니다. 참고
|
|
|
다음을 사용하는 모든 식을 포함할 수 있는 표현식:
참고
|
|
|
테이블 또는 테이블의 조인으로, 조인 조건식을
|
|
|
부울을 반환하는 조건식. 다음과 같이 구성될 수 있습니다.
지원되는 비교 조건은 ( 지원되는 논리 연산자는 (
|
|
|
|
|
|
조건은 부울 결과가 있는 표현식입니다. 지원되는 집계 함수가 단일 열(예: 지원되는 조건은 ( 지원되는 논리 연산자는 (
|
|
|
앞에서
참고
|
|
집계 쿼리 구조 및 구문의 경우 다음 사항에 유의해야 합니다.
-
SELECT 이외의 SQL 명령은 지원되지 않습니다.
-
하위 쿼리 및 공통 테이블 표현식(예:WITH)은 지원되지 않습니다.
-
여러 쿼리를 결합하는 연산자(예:UNION)는 지원되지 않습니다.
-
TOP, LIMIT, 및 OFFSET 파라미터는 지원되지 않습니다.
집계 분석 규칙 - 쿼리 제어
집계 쿼리 컨트롤을 사용하면 테이블의 열을 사용하여 테이블을 쿼리하는 방법을 제어할 수 있습니다. 예를 들어 조인에 사용할 열, 계산할 수 있는 열 또는 WHERE 명령문에 사용할 수 있는 열을 제어할 수 있습니다.
다음 단원에서는 각 컨트롤에 대해 설명합니다.
집계 제어
집계 제어를 사용하면 허용할 집계 함수와 해당 집계 함수를 적용해야 하는 열을 정의할 수 있습니다. 집계 함수는 SELECT, HAVING, 및 ORDER BY 표현식에서 사용할 수 있습니다.
컨트롤 | 정의 | 사용량 |
---|---|---|
aggregateColumns |
집계 함수 내에서 사용할 수 있도록 구성된 테이블 열의 열 |
일부 주어진 |
function |
카운트, 합계 및 평균 함수는 aggregateColumns 위에서 사용할 수 있습니다. |
|
조인 컨트롤
JOIN
절은 두 개 이상의 테이블에서 관련 열을 기반으로 두 개 이상의 테이블에서 행을 결합하는 데 사용됩니다.
조인 컨트롤을 사용하여 테이블을 table_expression
의 다른 테이블에 조인하는 방법을 제어할 수 있습니다. AWS Clean Rooms은(는) INNERJOIN만 지원합니다. INNERJOIN명령문은 사용자가 정의하는 컨트롤에 따라 분석 규칙에서 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 명령문에서 사용할 수 있도록 허용하려는 열(있는 경우) |
특정 동일한 열을
|
joinRequired |
쿼리할 수 있는 멤버에게 구성된 테이블이 있는 INNER JOIN이(가) 필요한지 여부를 제어합니다. |
이 파라미터는 이 지정된 경우에만 INNER JOIN이(가) 필요합니다. 이 매개 변수를 활성화하지 않는 경우 INNER JOIN은(는) 선택 사항입니다. 이 매개 변수를 활성화하면 쿼리할 수 있는 구성원은 자신이 소유한 테이블을 INNER JOIN에 포함해야 합니다. 그들은 직접적으로든 간접적으로든(즉, 그들의 테이블을 다른 테이블에 조인하거나 그것이 자신의 테이블과 조인된 경우) 자신의 테이블과 JOIN해야 합니다 |
다음은 전이성의 예입니다.
ON my_table.identifer = third_party_table.identifier .... ON third_party_table.identifier = member_who_can_query_table.id
참고
쿼리할 수 있는 멤버도 joinRequired
파라미터를 사용할 수 있습니다. 이 경우 쿼리는 테이블을 하나 이상의 다른 테이블과 조인해야 합니다.
치수 제어
차원 컨트롤은 집계 열을 필터링, 그룹화 또는 집계할 수 있는 열을 제어합니다.
컨트롤 | 정의 | 사용량 |
---|---|---|
dimensionColumns |
쿼리할 수 있는 구성원이SELECT,WHERE, GROUP BY 및 ORDER BY에서 사용할 수 있도록 허용하는 열(있는 경우). |
동일한 열에 |
스칼라 함수
스칼라 함수는 차원 열에 사용할 수 있는 스칼라 함수를 제어합니다.
컨트롤 | 정의 | 사용량 |
---|---|---|
scalarFunctions |
쿼리의 |
스칼라 함수는 다른 함수 위나 다른 함수 내에서 사용할 수 없습니다. 스칼라 함수의 인수는 열, 문자열 리터럴 또는 숫자형 리터럴일 수 있습니다. |
지원되는 스칼라 함수는 다음과 같습니다.
-
수학 함수 — ABS, 천장, 바닥, 통나무, LN, 원형, SQRT
-
데이터 형식 지정 함수 – CAST, CONVERT, TO_CHAR, TO_DATE, TO_NUMBER, TO_TIMESTAMP
-
문자열 함수 — 하한, 상단, 트림, 트림, 하위 문자열
-
RTRIM의 경우 트리밍할 사용자 정의 문자 세트를 사용할 수 없습니다.
-
-
조건부 표현식 – COALESCE
-
날짜 함수 — 추출, GETDATE, CURRENT_DATE, DATEADD
-
기타 함수 — TRUNC
자세한 내용은 AWS Clean Rooms SQL 참조를 참조하세요.
집계 분석 규칙 - 쿼리 결과 제어
집계 쿼리 결과 컨트롤을 사용하면 각 출력 행이 충족해야 반환되는 조건을 하나 이상 지정하여 반환되는 결과를 제어할 수 있습니다. AWS Clean Rooms은(는) COUNT (DISTINCT column) >=
X
와(과) 같은 형식의 집계 제약 조건을 지원합니다. 이 양식을 사용하려면 각 행이 구성된 테이블에서 선택한 고유한 값을 X개 이상 집계해야 합니다(예: 고유 user_id
값의 최소 수). 제출된 쿼리 자체에서 지정된 열을 사용하지 않는 경우에도 이 최소 임계값은 자동으로 적용됩니다. 이 규칙들은 집합적으로 적용되며 쿼리에서 각 구성된 테이블에 걸쳐 적용되며, 공동 작업 참여자 각각의 구성된 테이블을 포함합니다.
구성된 각 테이블의 분석 규칙에는 하나 이상의 집계 제약조건이 있어야 합니다. 구성된 테이블 소유자는 여러 개의 columnName
와(과) 연결된 minimum
을(를) 추가할 수 있으며, 이는 일괄적으로 적용됩니다.
집계 제약 조건
집계 제약 조건은 쿼리 결과에서 반환되는 행을 제어합니다. 행이 반환되려면 집계 제약 조건에 지정된 각 열의 고유 값의 지정된 최소 개수를 충족해야 합니다. 이 요구 사항은 쿼리나 분석 규칙의 다른 부분에서 열이 명시적으로 언급되지 않은 경우에도 적용됩니다.
컨트롤 | 정의 | 사용량 |
---|---|---|
columnName |
각 출력 행이 충족해야 하는 조건에 사용되는 |
구성된 테이블의 모든 열이 될 수 있습니다. |
minimum |
쿼리 결과에서 반환되기 위해 출력 행에 있어야 하는 연관된 |
|
집계 분석 규칙 구조
다음 예제에서는 집계 분석 규칙의 사전 정의된 구조를 보여줍니다.
다음 예제에서는 데이터
은(는) 데이터 테이블을 나타냅니다. MyTable
user input placeholder
를 사용자의 정보로 바꿉니다.
{ "aggregateColumns": [ { "columnNames": [
MyTable column names
], "function": [Allowed Agg Functions
] }, ], "joinRequired": ["QUERY_RUNNER"], "joinColumns": [MyTable column names
], "dimensionColumns": [MyTable column names
], "scalarFunctions": [Allowed Scalar functions
], "outputConstraints": [ { "columnName": [MyTable column names
], "minimum": [Numeric value
] }, ] }
집계 분석 규칙 - 예제
다음 예는 집계 분석을 AWS Clean Rooms 사용하여 두 회사가 공동 작업을 수행할 수 있는 방법을 보여줍니다.
회사 A에는 고객 및 판매 데이터가 있습니다. 회사 A는 제품 반품 활동을 이해하는 데 관심이 있습니다. 회사 B는 회사 A의 소매업체 중 하나이며 반품 데이터를 보유하고 있습니다. 또한 B사는 A에 유용한 고객 세그먼트 속성을 가지고 있습니다(예: 관련 제품 구매, 소매업체의 고객 서비스 이용). 회사 B는 행 수준의 고객 반품 데이터 및 속성 정보를 제공하고 싶지 않습니다. 회사 B는 회사 A가 최소 집계 임계값으로 중복되는 고객에 대한 집계 통계를 얻을 수 있도록 일련의 쿼리를 활성화하려는 것뿐입니다.
A사와 B사는 A사가 제품 반품 활동을 이해하고 B사 및 기타 채널에서 더 나은 제품을 제공할 수 있도록 협력하기로 결정했습니다.
공동 작업을 구축하고 집계 분석을 실행하기 위해 회사는 다음과 같은 작업을 수행합니다.
-
회사 A는 공동 작업을 만들고 멤버십을 생성합니다. 공동 작업에는 회사 B가 협업의 또 다른 구성원으로 포함됩니다. 회사 A는 공동 작업에서 쿼리 로깅을 활성화하고 해당 계정에서 쿼리 로깅을 활성화합니다.
-
회사 B는 공동 작업을 통해 멤버십을 생성합니다. 이를 통해 해당 계정에서 쿼리 로그인이 가능합니다.
-
회사 A는 판매 구성 테이블을 생성합니다.
-
회사 A는 판매 구성 테이블에 다음과 같은 집계 분석 규칙을 추가합니다.
{ "aggregateColumns": [ { "columnNames": [ "identifier" ], "function": "COUNT_DISTINCT" }, { "columnNames": [ "purchases" ], "function": "AVG" }, { "columnNames": [ "purchases" ], "function": "SUM" } ], "joinColumns": [ "hashedemail" ], "dimensionColumns": [ "demoseg", "purchasedate", "productline" ], "scalarFunctions": [ "CAST", "COALESCE", "TRUNC" ], "outputConstraints": [ { "columnName": "hashedemail", "minimum": 2, "type": "COUNT_DISTINCT" }, ] }
aggregateColumns
— 회사 A는 판매 데이터와 반품 데이터가 겹치는 순 고객 수를 세려고 합니다. 또한 A 회사는purchases
제조 건수를 합산하여returns
의 수와 비교하려고 합니다.joinColumns
— 회사 A는 판매 데이터의 고객과 반품 데이터의 고객을 매칭하는 데identifier
을(를) 사용하려고 합니다. 이렇게 하면 회사 A가 올바른 구매에 대한 반품을 매칭하는 데 도움이 됩니다. 또한 A사가 중복되는 고객을 세분화하는 데도 도움이 됩니다.dimensionColumns
— 회사 A는 특정 제품별로 필터링하고, 일정 기간 동안의 구매 및 반품을 비교하고, 반품 날짜가 제품 날짜 이후인지 확인하고, 중복되는 고객을 분류하기 위해dimensionColumns
을(를) 사용합니다.scalarFunctions
— 회사 A는 회사 A가 공동 작업에 연결하는 구성 테이블을 기반으로 필요한 경우 데이터 유형 형식을 업데이트하는 데 도움이 되는CAST
스칼라 함수를 선택합니다. 또한 필요한 경우 열 서식을 지정하는 데 도움이 되는 스칼라 함수도 추가되었습니다.outputConstraints
— 회사 A는 최소 출력 제약 조건을 설정합니다. 분석가가 판매 테이블에서 행 수준 데이터를 볼 수 있으므로 결과를 제한할 필요가 없습니다.참고
회사 A는 분석 규칙에
joinRequired
을(를) 포함하지 않습니다. 이를 통해 분석가는 유연하게 판매 테이블만 쿼리할 수 있습니다. -
회사 B는 반품 구성 테이블을 생성합니다.
-
회사 B는 반품 구성 테이블에 다음과 같은 집계 분석 규칙을 추가합니다.
{ "aggregateColumns": [ { "columnNames": [ "identifier" ], "function": "COUNT_DISTINCT" }, { "columnNames": [ "returns" ], "function": "AVG" }, { "columnNames": [ "returns" ], "function": "SUM" } ], "joinColumns": [ "hashedemail" ], "joinRequired": [ "QUERY_RUNNER" ], "dimensionColumns": [ "state", "popularpurchases", "customerserviceuser", "productline", "returndate" ], "scalarFunctions": [ "CAST", "LOWER", "UPPER", "TRUNC" ], "outputConstraints": [ { "columnName": "hashedemail", "minimum": 100, "type": "COUNT_DISTINCT" }, { "columnName": "producttype", "minimum": 2, "type": "COUNT_DISTINCT" } ] }
aggregateColumns
— 회사 B를 사용하면 회사 A의 합계를returns
구매 건수와 비교할 수 있습니다. 집계 쿼리를 활성화하기 때문에 집계 열이 하나 이상 있습니다.joinColumns
— 회사 B를 사용하면 회사 A가identifier
에 참여하여 반품 데이터에 있는 고객과 판매 데이터를 바탕으로 고객을 매칭할 수 있습니다.identifier
데이터는 특히 민감한 데이터이므로 이를joinColumn
(으)로 설정하면 쿼리에서 데이터가 출력되지 않습니다.joinRequired
— 회사 B에서는 반품 데이터에 대한 쿼리가 판매 데이터와 중복되도록 요구합니다. 회사 A가 데이터 세트에 있는 모든 개인을 쿼리할 수 있도록 하고 싶지는 않습니다. 또한 공동 작업 계약에서도 이러한 제한에 동의했습니다.dimensionColumns
— 회사 B는 회사 A에 대한 분석에 도움이 될 수 있는 고유한 속성인state
,popularpurchases
, 및customerserviceuser
을(를) 기준으로 필터링 및 그룹화할 수 있도록 합니다. 회사 B는 회사 B를 통해 회사 A가returndate
을(를) 사용하여purchasedate
이후에 발생하는returndate
의 출력을 필터링할 수 있도록 합니다. 이 필터링을 사용하면 제품 변경의 영향을 평가하는 데 더 정확한 결과를 얻을 수 있습니다.scalarFunctions
— 회사 B는 다음을 가능하게 합니다.-
날짜용 TRUNC
-
데이터에
producttype
이(가) 다른 형식으로 입력된 경우 LOWER 및 UPPER를 사용합니다. -
CAST 회사 A가 매출의 데이터 유형을 수익의 데이터 유형과 동일하게 변환해야 하는 경우
회사 A는 다른 스칼라 함수가 쿼리에 필요하지 않다고 생각하기 때문에 다른 스칼라 함수를 활성화하지 않습니다.
outputConstraints
— 회사 B는 고객을 재식별하는 능력을 줄이기 위해hashedemail
에 최소 출력 제약 조건을 설정합니다. 또한 반품된 특정 제품을 재식별하는 능력을 줄이기 위해producttype
에 최소 생산량 제한을 추가합니다. 생산량 규모에 따라 특정 제품 유형이 더 우세할 수 있습니다 (예:state
). 회사 A가 데이터에 추가한 출력 제약 조건과 관계없이 해당 출력 제약은 항상 적용됩니다. -
-
회사 A는 공동 작업과 관련된 판매 테이블을 생성합니다.
-
회사 B는 공동 작업에 대한 반품 테이블 연결을 생성합니다.
-
회사 A는 다음 예와 같은 쿼리를 실행하여 2022년 위치별 총 구매액과 비교하여 회사 B의 반품 수량을 더 잘 파악합니다.
SELECT companyB.state, SUM(companyB.returns), COUNT(DISTINCT companyA.hashedemail) FROM sales companyA INNER JOIN returns companyB ON companyA.identifier = companyB.identifier WHERE companyA.purchasedate BETWEEN '2022-01-01' AND '2022-12-31' AND TRUNC(companyB.returndate) > companyA.purchasedate GROUP BY companyB.state;
-
회사 A와 회사 B는 쿼리 로그를 검토합니다. 회사 B는 쿼리가 공동 작업 계약에서 합의한 내용과 일치하는지 확인합니다.
집계 분석 규칙 문제 해결
여기에 있는 정보를 사용하여 집계 분석 규칙으로 작업할 때 흔히 발생하는 문제를 진단하고 해결하는 데 도움을 받을 수 있습니다.
쿼리에서 결과가 반환되지 않았습니다.
일치하는 결과가 없거나 일치하는 결과가 하나 이상의 최소 집계 임계값을 충족하지 않을 때 이런 일이 발생할 수 있습니다.
최소 집계 임계값에 대한 자세한 내용은 집계 분석 규칙 - 예제 섹션을 참조하세요.