

# カタログレベルの自動テーブル最適化の有効化
<a name="enable-auto-table-optimizers"></a>

 データカタログ内のすべての新しい Apache Iceberg テーブルの自動テーブル最適化を有効にできます。テーブルを作成すると、テーブル最適化の設定を手動で明示的に更新することもできます。

 データカタログの設定を更新してカタログレベルのテーブル最適化を有効にするには、使用する 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. ナビゲーションペインで、**[データカタログ]** を選択します。

1. **[カタログ]** タブを選択します。

1. アカウントレベルのカタログを選択します。

1. **[テーブルの最適化]** タブで、**[テーブルの最適化]**、**[編集]** を選択します。また、**[アクション]** で **[最適化を編集]** を選択することもできます。  
![このスクリーンショットは、カタログレベルで最適化を有効にする編集オプションを示しています。](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/catalog-edit-optimizations.png)

1. **[テーブルの最適化]** ページで、次のオプションを設定します。  
![このスクリーンショットは、カタログレベルの最適化オプションを示しています。](http://docs.aws.amazon.com/ja_jp/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 通知で詳細なエラー情報を確認してください。