

# 온디맨드로 열 통계 생성
<a name="column-stats-on-demand"></a>

설정된 일정 없이 온디맨드로 AWS Glue Data Catalog 테이블 태스크에 대한 열 통계 태스크를 실행할 수 있습니다. 이 옵션은 임시 분석이나 통계를 즉시 계산해야 하는 경우에 유용합니다.

다음 단계에 따라 AWS Glue 콘솔 또는 AWS CLI를 사용하여 Data Catalog 테이블에서 온디맨드로 열 통계를 생성합니다.

------
#### [ AWS Management Console ]

**콘솔을 사용하여 열 통계를 생성하는 방법**

1. AWS Glue 콘솔([https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/))에 로그인합니다.

1. 데이터 카탈로그 테이블을 선택합니다.

1.  목록에서 테이블을 선택합니다.

1. **작업** 메뉴에서 **통계 생성**을 선택합니다.

   또한 **테이블** 페이지 하단 섹션의 **열 통계** 탭에서 **생성**, **온디맨드로 생성** 옵션을 선택할 수도 있습니다.

1. [일정에 따라 열 통계 생성](generate-column-stats.md)의 7\~11단계를 따라 테이블에 대한 열 통계를 생성합하세요.

1. **통계 생성** 페이지에서 다음 옵션을 지정합니다.  
![스크린샷은 열 통계를 생성하는 데 사용할 수 있는 옵션을 보여줍니다.](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/generate-column-stats.png)
   + **모든 열** - 표의 모든 열에 대한 통계를 생성하려면 이 옵션을 선택합니다.
   + **선택한 열** - 특정 열에 대한 통계를 생성하려면 이 옵션을 선택합니다. 드롭다운 목록에서 를 선택합니다.
   + **IAM 역할** - 열 통계 생성 태스크를 실행하는 데 필요한 권한 정책이 있는 **새 IAM 역할 생성**을 선택합니다. 권한 세부 정보 보기를 선택하여 정책 설명을 검토합니다. 목록에서 IAM 역할을 선택할 수도 있습니다. 필요한 권한에 대한 자세한 정보는 [열 통계 생성을 위한 사전 요구 사항](column-stats-prereqs.md) 단원을 참조하세요.

     통계를 생성하기 위해 지정한 역할의 AWS Glue 권한을 수임합니다.

     AWS Glue의 역할을 제공하는 데 대한 자세한 내용은 [AWS Glue에 대한 ID 기반 정책](https://docs.aws.amazon.com/glue/latest/dg/security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies)을 참조하세요.
   + (선택 사항) 다음으로 로그에 대해 저장 중 암호화를 활성화하는 보안 구성을 선택합니다.
   + **샘플 행** - 테이블에서 특정 비율의 행만 선택하여 통계를 생성합니다. 기본값은 모든 행입니다. 위쪽 및 아래쪽 화살표를 사용하여 백분율 값을 늘리거나 줄입니다.
**참고**  
정확한 통계를 계산하려면 표에 모든 행을 포함하는 것이 좋습니다. 대략적인 값이 허용되는 경우에만 샘플 행을 사용하여 열 통계를 생성하십시오.

   **통계 생성**을 선택하여 작업을 실행합니다.

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

이 명령은 지정된 테이블에 대한 열 통계를 생성하는 태스크를 시작합니다.

------

## 온디맨드로 열 통계 업데이트
<a name="update-column-stats-on-demand"></a>

 쿼리 옵티마이저가 효율적인 실행 계획을 생성하려면 최신 열 통계를 유지하는 것이 중요합니다. 이를 통해 쿼리 성능을 개선하고 리소스 소비를 줄이며 전체 시스템 성능을 개선할 수 있습니다. 이 프로세스는 대량 로드 또는 광범위한 수정과 같은 중요한 데이터 변경 후에 기존 통계가 더 이상 사용되지 않을 수 있으므로 특히 중요합니다.

열 통계를 새로 고치려면 AWS Glue 콘솔에서 **통계 생성** 작업을 명시적으로 실행해야 합니다. 데이터 카탈로그는 통계를 자동으로 새로 고치지 않습니다.

콘솔에서 AWS Glue의 통계 생성 기능을 사용하지 않는 경우 [UpdateColumnStatisticsForTable](https://docs.aws.amazon.com/glue/latest/webapi/API_UpdateColumnStatisticsForTable.html) 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
                }
            }
        }
    ]
}
```