

# 카탈로그 수준 테이블 옵티마이저
<a name="catalog-level-optimizers"></a>

일회성 카탈로그 구성을 사용하면 AWS Glue Data Catalog에서 모든 신규 및 업데이트된 Apache Iceberg 테이블에 대해 압축, 스냅샷 보존, 분리된 파일 삭제 등의 자동 옵티마이저를 설정할 수 있습니다. 카탈로그 수준 옵티마이저 구성을 사용하면 카탈로그 내의 모든 테이블에 일관된 옵티마이저 설정을 적용할 수 있으므로, 각 테이블마다 옵티마이저를 개별적으로 구성할 필요가 없습니다.

데이터 레이크 관리자는 Lake Formation 콘솔에서 기본 카탈로그를 선택하고 `Table optimization` 옵션으로 옵티마이저를 활성화하여 테이블 옵티마이저를 구성할 수 있습니다. Data Catalog에서 새 테이블을 생성하거나 기존 테이블을 업데이트하면, Data Catalog는 테이블 최적화를 자동으로 실행하여 운영 부담을 줄입니다.

테이블 수준에서 최적화를 구성했거나 이전에 테이블의 테이블 최적화 설정을 삭제한 경우 이러한 테이블별 설정이 테이블 최적화에 대한 기본 카탈로그 설정보다 우선합니다. 구성 파라미터가 테이블 또는 카탈로그 수준에서 정의되지 않은 경우 Iceberg 테이블 속성 값이 적용됩니다. 이 설정은 스냅샷 보존 및 분리된 파일 삭제 옵티마이저에 적용됩니다.

카탈로그 수준 옵티마이저를 활성화할 경우 다음 사항을 고려하세요.
+ 카탈로그 생성 시 최적화 설정을 구성한 다음 카탈로그 업데이트 요청을 통해 최적화를 비활성화하면 작업이 카탈로그 내의 모든 테이블에 캐스케이드됩니다.
+ 지정된 테이블에 대해 옵티마이저를 이미 구성한 경우 카탈로그 수준에서 작업을 비활성화해도 이 테이블에는 영향을 미치지 않습니다.
+ 카탈로그 수준에서 옵티마이저를 비활성화하면 기존 옵티마이저 구성이 있는 테이블은 기존 설정을 유지하며 카탈로그 수준 변경의 영향을 받지 않습니다. 하지만 자체 옵티마이저 구성이 없는 테이블은 카탈로그 수준에서 비활성화된 상태를 상속합니다.
+ 스냅샷 보존 및 분리된 파일 삭제 옵티마이저는 일정에 따라 실행될 수 있으므로, 업데이트할 경우 일정의 시작 시점이 무작위로 지연됩니다. 이 경우 각 옵티마이저가 조금씩 다른 시간에 시작되어 로드가 분산되고, 서비스 한도를 초과할 가능성이 줄어듭니다.
+ AWS Glue Data Catalog 암호화가 활성화된 경우 카탈로그 수준 옵티마이저 설정은 테이블에 의해 자동으로 상속되지 않습니다. 카탈로그에서 메타데이터 암호화가 활성화된 경우 각 테이블에 대해 테이블 옵티마이저를 개별적으로 구성해야 합니다. 카탈로그 수준 옵티마이저 상속을 사용하려면 카탈로그에서 메타데이터 암호화를 비활성화해야 합니다.

**Topics**
+ [

# 카탈로그 수준 자동 테이블 최적화 활성화
](enable-auto-table-optimizers.md)
+ [

# 카탈로그 수준 최적화 보기
](view-catalog-optimizations.md)
+ [

# 카탈로그 수준 테이블 최적화 비활성화
](disable-auto-table-optimizers.md)

# 카탈로그 수준 자동 테이블 최적화 활성화
<a name="enable-auto-table-optimizers"></a>

 Data Catalog의 모든 새 Apache Iceberg 테이블에 대해 자동 테이블 최적화를 활성화할 수 있습니다. 테이블을 생성한 후 테이블 최적화 설정을 수동으로 명시적으로 업데이트할 수도 있습니다.

 카탈로그 수준 테이블 최적화를 활성화하도록 Data Catalog 설정을 업데이트하려면 사용된 IAM 역할에 루트 카탈로그에 대한 `glue:UpdateCatalog` 권한이 있어야 합니다. `GetCatalog` API를 사용하여 카탈로그 속성을 확인할 수 있습니다.

 Lake Formation 관리형 테이블의 경우, 카탈로그 최적화 구성 중에 선택하는 IAM 역할에는 새 테이블 또는 업데이트된 테이블에 대한 Lake Formation `ALTER`, `DESCRIBE`, `INSERT` 및 `DELETE` 권한이 있어야 합니다.

## 카탈로그 수준 옵티마이저를 활성화하려면(콘솔)
<a name="enable-catalog-optimizers-console"></a>

1. Lake Formation 콘솔([https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/))을 엽니다.

1. 탐색 창에서 **Data Catalog**를 선택합니다.

1. **카탈로그** 탭을 선택합니다.

1. 계정 수준 카탈로그를 선택합니다.

1. **테이블 최적화** 탭에서 **테이블 최적화**, **편집**을 선택합니다. **작업**에서 **최적화 편집**을 선택할 수도 있습니다.  
![\[이 스크린샷은 카탈로그 수준에서 최적화를 활성화하는 편집 옵션을 보여줍니다.\]](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/catalog-edit-optimizations.png)

1. **테이블 최적화** 페이지에서 다음 옵션을 구성합니다.  
![\[이 스크린샷은 카탈로그 수준의 최적화 옵션을 보여줍니다.\]](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/catalog-optimization-options.png)

   1. **압축** 설정 구성:
      + 압축을 활성화/비활성화합니다.
      + 옵티마이저를 실행하는 데 필요한 권한이 있는 IAM 역할을 선택합니다.

        IAM 역할의 권한 요구 사항에 대한 자세한 내용은 [테이블 최적화 필수 조건](optimization-prerequisites.md) 섹션을 참조하세요.

   1. **스냅샷 보존** 설정 구성:
      + 보존을 활성화/비활성화합니다.
      + 스냅샷 보존 기간을 일 단위로 설정합니다. 기본값은 5일입니다.
      + 보존할 스냅샷 수를 설정합니다. 기본값은 스냅샷 1개입니다.
      + 만료된 파일의 정리를 활성화/비활성화합니다.

   1. **분리된 파일 삭제** 설정 구성:
      + 분리된 파일 삭제를 활성화/비활성화합니다.
      + 분리된 파일 기간을 일 단위로 설정합니다. 기본값은 3일입니다.

1. **저장**을 선택합니다.

## AWS CLI를 통해 카탈로그 수준 옵티마이저 활성화
<a name="catalog-auto-optimizers-cli"></a>

다음 CLI 명령을 사용하여 옵티마이저 설정으로 기존 카탈로그를 업데이트합니다.

**Example 옵티마이저 설정으로 카탈로그 업데이트**  

```
aws glue update-catalog \
   --name catalog-id \
  --catalog-input \
  '{
    "CatalogId": "111122223333",
    "CatalogInput": {
        "CatalogProperties": {
            "CustomProperties": {
                "ColumnStatistics.Enabled": "false",
                "ColumnStatistics.RoleArn": "arn:aws:iam::111122223333:role/service-role/stats-role-name"
            },
            "IcebergOptimizationProperties": {
                "RoleArn": "arn:aws:iam::111122223333:role/optimizer-role-name",
                "Compaction": {
                    "enabled": "true"
                },
                "Retention": {
                    "enabled": "true",
                    "snapshotRetentionPeriodInDays": "10",
                    "numberOfSnapshotsToRetain": "5",
                    "cleanExpiredFiles": "true"
                },
                "OrphanFileDeletion": {
                    "enabled": "true",
                    "orphanFileRetentionPeriodInDays": "3"
                }
            }
        }
    }
}'
```

카탈로그 수준 옵티마이저에 문제가 발생하면 다음을 확인합니다.
+ 사전 조건 섹션에서 설명하는 올바른 권한이 IAM 역할에 부여되어 있는지 확인합니다.
+ CloudWatch 로그에 옵티마이저 작업과 관련한 오류 메시지가 없는지 확인합니다.

   자세한 내용은 **Amazon CloudWatch 사용 설명서의 [사용 가능한 지표 보기](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html)를 참조하세요.
+ 카탈로그 구성을 검사하여 카탈로그 설정이 제대로 적용되었는지 확인합니다.
+ 테이블 액세스 오류의 경우 CloudWatch 로그 및 EventBridge 알림에서 자세한 오류 정보를 확인합니다.

# 카탈로그 수준 최적화 보기
<a name="view-catalog-optimizations"></a>

 카탈로그 수준 테이블 최적화가 활성화되면, AWS Management Console, SDK 또는 AWS Glue 크롤러에서 `CreateTable` 또는 `UpdateTable` API를 통해 Apache Iceberg 테이블이 생성되거나 업데이트될 때마다 해당 테이블에 대해 동일한 테이블 수준 설정이 생성됩니다.

 테이블을 생성하거나 업데이트한 후 테이블 세부 정보에서 테이블 최적화를 확인할 수 있습니다. `Table optimization`의 경우 `Configuration source` 속성 세트가 `Catalog`로 설정됩니다.

![\[카탈로그 수준 최적화 구성이 적용된 Apache Iceberg 테이블의 이미지.\]](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/catalog-optimization-enabled.png)


# 카탈로그 수준 테이블 최적화 비활성화
<a name="disable-auto-table-optimizers"></a>

 AWS Lake Formation 콘솔, `glue:UpdateCatalog` API를 사용하여 새 테이블의 테이블 최적화를 비활성화할 수 있습니다.

**카탈로그 수준에서 테이블 최적화를 비활성화하려면**

1. Lake Formation 콘솔([https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/))을 엽니다.

1. 왼쪽 탐색 모음에서 **카탈로그**를 선택합니다.

1. **카탈로그 요약** 페이지의 **테이블 최적화**에서 **편집**을 선택합니다.

1. **최적화 편집** 페이지에서 **최적화 옵션**을 선택 취소합니다.

1. **저장**을 선택합니다.