CustomSQL
이 규칙 유형은 다음과 같은 두 가지 사용 사례를 지원하도록 확장되었습니다.
데이터 세트에 대해 사용자 지정 SQL 문을 실행하고 지정된 표현식을 기준으로 반환 값을 확인합니다.
일부 조건과 비교하여 행 수준 결과를 얻는 SELECT 문에 열 이름을 지정하는 사용자 지정 SQL 문을 실행합니다.
구문
CustomSql
<SQL_STATEMENT>
<EXPRESSION>
SQL_STATEMENT - 큰따옴표로 묶인 단일 숫자 값을 반환하는 SQL 문입니다.
EXPRESSION - 부울 값을 생성하기 위해 규칙 유형 응답에 대해 실행할 표현식입니다. 자세한 내용은 Expressions 단원을 참조하십시오.
예: 전체 규칙 결과를 검색하기 위한 사용자 지정 SQL
이 예제 규칙에서는 SQL 문을 사용하여 데이터 세트의 레코드 수를 검색합니다. 그런 다음 레코드 수가 10~20 사이인지 확인합니다.
CustomSql "select count(*) from primary" between 10 and 20
예: 행 수준 결과를 검색하기 위한 사용자 지정 SQL
이 예제 규칙은 일부 조건과 비교하여 행 수준 결과를 얻는 SELECT 문에 열 이름을 지정하는 SQL 문을 사용합니다. 임곗값 조건 표현식에서는 전체 규칙이 실패하기 위해 실패해야 하는 레코드 수의 임곗값을 정의합니다. 규칙에는 조건과 키워드가 모두 포함되지 않을 수도 있습니다.
CustomSql "select Name from primary where Age > 18"
또는
CustomSql "select Name from primary where Age > 18" with threshold > 3
중요
primary
별칭은 평가하려는 데이터 세트의 이름을 나타냅니다. 콘솔에서 시각적 ETL 작업을 수행할 때 primary
에서는 항상 EvaluateDataQuality.apply()
변환에 전달 중인 DynamicFrame
을 나타냅니다. AWS Glue 데이터 카탈로그를 사용하여 테이블에 대해 데이터 품질 작업을 실행하는 경우 primary
는 테이블을 나타냅니다.
AWS Glue 데이터 카탈로그에 있는 경우 실제 테이블 이름을 사용할 수도 있습니다.
CustomSql "select count(*) from database.table" between 10 and 20
여러 테이블을 조인하여 서로 다른 데이터 요소를 비교할 수도 있습니다.
CustomSql "select count(*) from database.table inner join database.table2 on id1 = id2" between 10 and 20
AWS Glue ETL에서 CustomSQL은 데이터 품질 검사에 실패한 레코드를 식별할 수 있습니다. 이 작업을 수행하려면 데이터 품질을 평가하는 기본 테이블의 일부인 레코드를 반환해야 합니다. 쿼리의 일부로 반환된 레코드는 성공으로 간주되고 반환되지 않은 레코드는 실패로 간주됩니다.
다음 규칙에서는 age가 100 미만인 레코드는 성공으로, 그 이상인 레코드는 실패로 표시됩니다.
CustomSql "select id from primary where age < 100"
레코드 중 50%에서 age가 10을 초과하는 경우 이 CustomSQL 규칙은 통과되며 실패한 레코드도 식별합니다. 이 CustomSQL에서 반환된 레코드는 통과로 간주되고 반환되지 않은 레코드는 실패로 간주됩니다.
CustomSQL "select ID, CustomerID from primary where age > 10" with threshold > 0.5
참고: 데이터 세트에서 사용할 수 없는 레코드를 반환하면 CustomSQL 규칙이 실패합니다.