온디맨드로 열 통계 생성
설정된 일정 없이 온디맨드로 AWS Glue Data Catalog 테이블 태스크에 대한 열 통계 태스크를 실행할 수 있습니다. 이 옵션은 임시 분석이나 통계를 즉시 계산해야 하는 경우에 유용합니다.
다음 단계에 따라 AWS Glue 콘솔 또는 AWS CLI를 사용하여 Data Catalog 테이블에서 온디맨드로 열 통계를 생성합니다.
- AWS Management Console
-
콘솔을 사용하여 열 통계를 생성하는 방법
-
AWS Glue 콘솔(https://console.aws.amazon.com/glue/)에 로그인합니다.
-
데이터 카탈로그 테이블을 선택합니다.
-
목록에서 테이블을 선택합니다.
-
작업 메뉴에서 통계 생성을 선택합니다.
또한 테이블 페이지 하단 섹션의 열 통계 탭에서 생성, 온디맨드로 생성 옵션을 선택할 수도 있습니다.
일정에 따라 열 통계 생성의 7~11단계를 따라 테이블에 대한 열 통계를 생성합하세요.
-
통계 생성 페이지에서 다음 옵션을 지정합니다.
-
모든 열 - 표의 모든 열에 대한 통계를 생성하려면 이 옵션을 선택합니다.
-
선택한 열 - 특정 열에 대한 통계를 생성하려면 이 옵션을 선택합니다. 드롭다운 목록에서 를 선택합니다.
-
IAM 역할 - 열 통계 생성 태스크를 실행하는 데 필요한 권한 정책이 있는 새 IAM 역할 생성을 선택합니다. 권한 세부 정보 보기를 선택하여 정책 설명을 검토합니다. 목록에서 IAM 역할을 선택할 수도 있습니다. 필요한 권한에 대한 자세한 정보는 열 통계 생성을 위한 사전 요구 사항 단원을 참조하세요.
통계를 생성하기 위해 지정한 역할의 AWS Glue 권한을 수임합니다.
AWS Glue의 역할을 제공하는 데 대한 자세한 내용은 AWS Glue에 대한 ID 기반 정책을 참조하세요.
-
(선택 사항) 다음으로 로그에 대해 저장 중 암호화를 활성화하는 보안 구성을 선택합니다.
-
샘플 행 - 테이블에서 특정 비율의 행만 선택하여 통계를 생성합니다. 기본값은 모든 행입니다. 위쪽 및 아래쪽 화살표를 사용하여 백분율 값을 늘리거나 줄입니다.
정확한 통계를 계산하려면 표에 모든 행을 포함하는 것이 좋습니다. 대략적인 값이 허용되는 경우에만 샘플 행을 사용하여 열 통계를 생성하십시오.
통계 생성을 선택하여 작업을 실행합니다.
- AWS CLI
-
이 명령은 지정된 테이블에 대한 열 통계 태스크 실행을 트리거합니다. 데이터베이스 이름, 테이블 이름, 통계를 생성할 권한이 있는 IAM 역할을 제공하고 선택적으로 통계 계산을 위한 열 이름 및 샘플 크기 백분율을 제공해야 합니다.
aws glue start-column-statistics-task-run \
--database-name 'database_name
\
--table-name 'table_name
' \
--role 'arn:aws:iam::123456789012
:role/stats-role
' \
--column-name 'col1
','col2
' \
--sample-size 10.0
이 명령은 지정된 테이블에 대한 열 통계를 생성하는 태스크를 시작합니다.
온디맨드로 열 통계 업데이트
쿼리 옵티마이저가 효율적인 실행 계획을 생성하려면 최신 열 통계를 유지하는 것이 중요합니다. 이를 통해 쿼리 성능을 개선하고 리소스 소비를 줄이며 전체 시스템 성능을 개선할 수 있습니다. 이 프로세스는 대량 로드 또는 광범위한 수정과 같은 중요한 데이터 변경 후에 기존 통계가 더 이상 사용되지 않을 수 있으므로 특히 중요합니다.
열 통계를 새로 고치려면 AWS Glue 콘솔에서 통계 생성 작업을 명시적으로 실행해야 합니다. 데이터 카탈로그는 통계를 자동으로 새로 고치지 않습니다.
콘솔에서 AWS Glue의 통계 생성 기능을 사용하지 않는 경우 UpdateColumnStatisticsForTable API 작업 또는 AWS CLI를 사용하여 열 통계를 수동으로 업데이트할 수 있습니다. 다음 예에서는 AWS CLI를 이용하여 열 통계를 업데이트하는 방법을 보여 줍니다.
aws glue update-column-statistics-for-table --cli-input-json:
{
"CatalogId": "111122223333
",
"DatabaseName": "database_name
",
"TableName": "table_name
",
"ColumnStatisticsList": [
{
"ColumnName": "col1
",
"ColumnType": "Boolean",
"AnalyzedTime": "1970-01-01T00:00:00",
"StatisticsData": {
"Type": "BOOLEAN",
"BooleanColumnStatisticsData": {
"NumberOfTrues": 5,
"NumberOfFalses": 5,
"NumberOfNulls": 0
}
}
}
]
}