

# 일정에 따라 열 통계 생성
<a name="generate-column-stats"></a>

다음 단계에 따라 AWS Glue 콘솔, AWS CLI 또는 [CreateColumnStatisticsTaskSettings](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-column-statistics.html#aws-glue-api-crawler-column-statistics-CreateColumnStatisticsTaskSettings) 작업을 실행하여 AWS Glue Data Catalog에서 열 통계를 생성하는 일정을 구성합니다.

------
#### [ Console ]

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

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

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

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

1. **테이블** 페이지의 하단 섹션에서 **열 통계** 탭을 선택하세요.

1. **작업**의 **열 통계**에서 **일정에 따라 생성**을 선택할 수도 있습니다.

1. **일정에 따라 통계 생성** 페이지에서 빈도 및 시작 시간을 선택하여 열 통계 태스크를 실행하는 반복 일정을 구성하세요. 빈도를 시간별, 일별, 주별로 선택하거나 cron 표현식을 정의하여 일정을 지정할 수 있습니다.

   cron 표현식은 일정 패턴을 나타내는 문자열로, \$1 \$1 \$1 <minute> <hour><day of month> <month> <day of week> <year>처럼 공백으로 구분된 6개 필드로 구성됩니다. 예를 들어 매일 자정에 태스크를 실행하는 경우 cron 표현식은 0 0 \$1 \$1 ? \$1입니다.

   자세한 내용은 [cron 표현식](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html#CronExpressions) 섹션을 참조하세요.  
![\[스크린샷은 열 통계를 생성하는 데 사용할 수 있는 옵션을 보여줍니다.\]](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/generate-column-stats-schedule.png)

1. 그런 다음 열 옵션을 선택하여 통계를 생성하세요.
   + **모든 열** - 표의 모든 열에 대한 통계를 생성하려면 이 옵션을 선택합니다.
   + **선택한 열** - 특정 열에 대한 통계를 생성하려면 이 옵션을 선택합니다. 드롭다운 목록에서 를 선택합니다.

1. IAM 역할을 선택하거나 통계를 생성할 권한이 있는 기존 역할을 생성하세요. AWS Glue에서 이 역할을 수임하여 열 통계를 생성합니다.

   더 빠른 접근 방식은 AWS Glue 콘솔에서 자동으로 역할을 생성하는 것입니다. 생성하는 역할은 특히 열 통계 생성을 위한 것이며 `AWSGlueServiceRole` AWS 관리형 정책과 지정된 데이터 소스에 필요한 인라인 정책을 포함합니다.

   열 통계 생성에 대한 기존 역할을 지정하는 경우 `AWSGlueServiceRole` 정책 또는 이에 상응하는 것(또는 이 정책의 범위가 축소된 버전)과 필수 인라인 정책이 포함되어 있는지 확인합니다.

1. (선택 사항) 다음으로 로그에 대해 저장 중 암호화를 활성화하는 보안 구성을 선택합니다.

1. (선택 사항) 테이블에서 특정 비율의 행만 표시하여 통계를 생성함으로써 샘플 크기를 선택할 수 있습니다. 기본값은 모든 행입니다. 위쪽 및 아래쪽 화살표를 사용하여 백분율 값을 늘리거나 줄입니다.

   정확한 통계를 계산하려면 표에 모든 행을 포함하는 것이 좋습니다. 대략적인 값이 허용되는 경우에만 샘플 행을 사용하여 열 통계를 생성하십시오.

1. **통계 생성**을 선택하여 열 통계 생성 태스크를 실행하세요.

------
#### [ AWS CLI ]

다음 AWS CLI 예제를 사용하여 열 통계 생성 일정을 생성할 수 있습니다. database-name, table-name, role은 필수 파라미터이며 schedule, column-name-list, catalog-id, sample-size, security-configuration은 선택적 파라미터입니다.

```
aws glue create-column-statistics-task-settings \ 
 --database-name 'database_name' \ 
 --table-name table_name \ 
 --role 'arn:aws:iam::123456789012:role/stats-role' \ 
 --schedule 'cron(0 0-5 14 * * ?)' \ 
 --column-name-list 'col-1' \  
 --catalog-id '123456789012' \ 
 --sample-size '10.0 ' \
 --security-configuration 'test-security'
```

[StartColumnStatisticsTaskRun](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-column-statistics.html#aws-glue-api-crawler-column-statistics-StartColumnStatisticsTaskRun) 작업을 호출하여 열 통계를 생성해도 됩니다.

------

# 열 통계 생성 일정 관리
<a name="manage-column-stats-schedule"></a>

AWS Glue에서 열 통계 생성에 대한 일정 업데이트, 시작, 중지, 삭제와 같은 일정 운영 작업을 관리할 수 있습니다. AWS Glue 콘솔, AWS CLI 또는 [AWS Glue 열 통계 API 작업](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-column-statistics.html)을 사용하여 이러한 태스크를 수행할 수 있습니다.

**Topics**
+ [열 통계 생성 일정 업데이트](#update-column-stats-shedule)
+ [열 통계 생성 일정 중지](#stop-column-stats-schedule)
+ [열 통계 생성 일정 재개](#resume-column-stats-schedule)
+ [열 통계 생성 일정 삭제](#delete-column-stats-schedule)

## 열 통계 생성 일정 업데이트
<a name="update-column-stats-shedule"></a>

일정이 생성된 후 열 통계 생성 태스크를 트리거하도록 일정을 업데이트할 수 있습니다. AWS Glue 콘솔, AWS CLI를 사용하거나 [UpdateColumnStatisticsTaskSettings](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-column-statistics.html#aws-glue-api-crawler-column-statistics-UpdateColumnStatisticsTaskSettings) 작업을 실행하여 테이블의 일정을 업데이트할 수 있습니다. 일정 유형(온디맨드 또는 예약)과 같은 기존 일정 파라미터 및 기타 선택적 파라미터를 수정할 수 있습니다.

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

**열 통계 생성 태스크 설정을 업데이트하는 방법**

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

1. 테이블 목록에서 업데이트하려는 테이블을 선택하세요.

1. 테이블 세부 정보 페이지의 하단 섹션에서 **열 통계**를 선택하세요.

1. **작업**에서 **편집**을 선택하여 일정을 업데이트하세요.

1. 일정을 원하는 대로 변경하고 **저장**을 선택하세요.

------
#### [ AWS CLI ]

 콘솔에서 AWS Glue의 통계 생성 기능을 사용하지 않는 경우 `update-column-statistics-task-settings` 명령을 사용하여 일정을 수동으로 업데이트할 수 있습니다. 다음 예에서는 AWS CLI를 이용하여 열 통계를 업데이트하는 방법을 보여 줍니다.

```
aws glue update-column-statistics-task-settings \ 
 --database-name 'database_name' \ 
 --table-name 'table_name' \ 
 --role arn:aws:iam::123456789012:role/stats_role \ 
 --schedule 'cron(0 0-5 16 * * ?)' \ 
 --column-name-list 'col-1' \
 --sample-size '20.0' \  
 --catalog-id '123456789012'\
 --security-configuration 'test-security'
```

------

## 열 통계 생성 일정 중지
<a name="stop-column-stats-schedule"></a>

 증분 통계가 더 이상 필요하지 않은 경우 예약된 생성을 중지하여 리소스와 비용을 절약할 수 있습니다. 일정을 일시 중지해도 이전에 생성된 통계에는 영향을 주지 않습니다. 사용자에게 편한 시간에 일정을 재개할 수 있습니다.

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

**열 통계 생성 태스크 일정을 중지하는 방법**

1. AWS Glue 콘솔에서 데이터 카탈로그에서 **테이블**을 선택합니다.

1. 열 통계가 있는 테이블을 선택합니다.

1. **테이블 세부정보** 페이지에서 **열 통계**를 선택합니다.

1. **작업**에서 **예약된 생성**, **일시 중지**를 선택하세요.

1. **일시 중지**를 선택하여 확인하세요.

------
#### [ AWS CLI ]

AWS CLI를 사용하여 열 통계 태스크 실행 일정을 중지하려면 다음 명령을 사용할 수 있습니다.

```
aws glue stop-column-statistics-task-run-schedule \
 --database-name ''database_name' \
 --table-name 'table_name'
```

`database_name` 및 `table_name`을 열 통계 태스크 실행 일정을 중지하려는 데이터베이스 및 테이블의 실제 이름으로 바꾸세요.

------

## 열 통계 생성 일정 재개
<a name="resume-column-stats-schedule"></a>

 통계 생성 일정을 일시 중지한 경우 AWS Glue는 사용자에게 편한 시간에 일정을 재개할 수 있습니다. AWS Glue 콘솔, AWS CLI 또는 [StartColumnStatisticsTaskRunSchedule](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-column-statistics.html#aws-glue-api-crawler-column-statistics-StartColumnStatisticsTaskRunSchedule) 작업을 사용하여 일정을 재개할 수 있습니다.

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

**열 통계 생성 일정을 재개하는 방법**

1. AWS Glue 콘솔에서 데이터 카탈로그에서 **테이블**을 선택합니다.

1. 열 통계가 있는 테이블을 선택합니다.

1. **테이블 세부정보** 페이지에서 **열 통계**를 선택합니다.

1. **작업**에서 **예약된 생성**을 선택하고 **재개**를 선택하세요.

1. **재개**를 선택하여 확인하세요.

------
#### [ AWS CLI ]

`database_name` 및 `table_name`을 열 통계 태스크 실행 일정을 중지하려는 데이터베이스 및 테이블의 실제 이름으로 바꾸세요.

```
aws glue start-column-statistics-task-run-schedule \
 --database-name 'database_name' \
 --table-name 'table_name'
```

------

## 열 통계 생성 일정 삭제
<a name="delete-column-stats-schedule"></a>

 최적의 쿼리 성능을 위해 일반적으로 최신 통계를 유지하는 것이 좋지만 자동 생성 일정을 제거하는 것이 도움이 될 수 있는 특정 사용 사례가 있습니다.
+ 데이터가 비교적 정적으로 유지되는 경우 기존 열 통계는 장기간 정확하게 유지되므로 자주 업데이트할 필요성이 줄어듭니다. 일정을 삭제하면 변경되지 않은 데이터에 대한 통계 재생성과 관련된 불필요한 리소스 소비 및 오버헤드를 방지할 수 있습니다.
+ 통계 생성에 대한 수동 제어가 선호되는 경우 자동 일정을 삭제하면 관리자는 특정 간격으로 또는 중요한 데이터 변경 후 열 통계를 선택적으로 업데이트하여 유지 관리 전략 및 리소스 할당 요구 사항에 맞게 프로세스를 조정할 수 있습니다.

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

**열 통계 생성 일정을 삭제하는 방법**

1. AWS Glue 콘솔에서 데이터 카탈로그에서 **테이블**을 선택합니다.

1. 열 통계가 있는 테이블을 선택합니다.

1. **테이블 세부정보** 페이지에서 **열 통계**를 선택합니다.

1. **작업**에서 **예약된 생성**, **삭제**를 차례로 선택하세요.

1. **삭제**를 선택하여 확인하세요.

------
#### [ AWS CLI ]

`database_name` 및 `table_name`을 열 통계 태스크 실행 일정을 중지하려는 데이터베이스 및 테이블의 실제 이름으로 바꾸세요.

[DeleteColumnStatisticsForTable](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-column-statistics.html#aws-glue-api-crawler-column-statistics-DeleteColumnStatisticsTaskSettings) API 작업 또는 AWS CLI를 사용하여 열 통계 일정을 삭제할 수 있습니다. 다음 예제에서는 AWS Command Line Interface(AWS CLI)를 사용하여 열 통계 생성 일정을 삭제하는 방법을 보여줍니다.

```
aws glue delete-column-statistics-task-settings \
    --database-name 'database_name' \
    --table-name 'table_name'
```

------