

# 列統計の自動生成
<a name="auto-column-stats-generation"></a>

列統計を自動で生成することにより、AWS Glue Data Catalog の新しいテーブルで、統計をスケジュールして自動的に計算することができます。統計の自動生成を有効にすると、データカタログが、特定のデータ形式 (Parquet、JSON、CSV、XML、ORC、ION、Apache Iceberg など) を持つ新しいテーブルを、それぞれのバケットパスとともに検出します。1 回限りのカタログ設定を使用すると、データカタログがこれらのテーブルの統計を生成します。

 データレイクの管理者は、Lake Formation コンソールでデフォルトのカタログを選択し、`Optimization configuration` オプションを使用してテーブル統計を有効にすることで、統計の生成を設定できます。データカタログで新しいテーブルを作成したり既存のテーブルを更新したりすると、データカタログが Apache Iceberg テーブルの個別値の数 (NDV) と、サポートされている他のファイル形式の NULL、最大長、最小長、平均長など、追加の統計を毎週収集します。

テーブルレベルで統計生成を設定している場合、またはテーブルの統計生成の設定を以前に削除している場合、これらテーブル固有の設定は、列統計の自動生成のデフォルトのカタログ設定より優先されます。

 統計の自動生成タスクは、テーブル内のレコードの 50% を分析して統計を計算します。列統計の自動生成により、データカタログは Amazon Athena や Amazon Redshift Spectrum などのクエリエンジンで使用できるメトリクスを週単位で保守でき、クエリのパフォーマンスを向上させ潜在的なコストを削減することができます。AWS Glue API またはコンソールを使用して統計の生成をスケジュールできるため、手動による介入なしにプロセスを自動的に実行できます。

**Topics**
+ [カタログレベルでの統計の自動生成を有効化](enable-auto-column-stats-generation.md)
+ [自動化されたテーブルレベルの設定を表示](view-auto-column-stats-settings.md)
+ [カタログレベルの列統計の生成の無効化](disable-auto-column-stats-generation.md)

# カタログレベルでの統計の自動生成を有効化
<a name="enable-auto-column-stats-generation"></a>

データカタログのすべての新しい Apache Iceberg テーブルと、OTF 以外のテーブル (Parquet、JSON、CSV、XML、ORC、ION) 形式のテーブルに対して、列統計の自動生成を有効にできます。テーブルを作成すると、列統計の設定を手動で明示的に更新することもできます。

 データカタログの設定を更新してカタログレベルを有効にするには、使用する IAM ロールに、ルートカタログに対する `glue:UpdateCatalog` アクセス許可または AWS Lake Formation `ALTER CATALOG` アクセス許可が必要になります。カタログのプロパティは、`GetCatalog` API を使用して確認できます。

------
#### [ AWS マネジメントコンソール ]

**アカウントレベルで列統計の自動生成を有効にするには**

1. Lake Formation コンソール (‭‬[https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)‬) を開きます。

1. 左のナビゲーションペインで **[カタログ]** を選択します。

1. **[カタログの概要]** ページの **[最適化の設定]** で **[編集]** を選択します。  
![\[このスクリーンショットは、列統計の生成に使用できるオプションを示しています。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/edit-column-stats-auto.png)

1. **[テーブル最適化の設定]** ページで、**[カタログのテーブルの自動統計生成を有効にする]** を選択します。  
![\[このスクリーンショットは、列統計の生成に使用できるオプションを示しています。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/edit-optimization-option.jpg)

1. 既存の IAM ロールを選択するか、列統計タスクを実行するための必要なアクセス許可を持つ新しいロールを作成します。

1. **[送信]** を選択します。

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

AWS CLI を使ってカタログレベルの統計収集を有効にすることもできます。AWS CLI を使用してテーブルレベルの統計収集を設定するには、次のコマンドを実行します。

```
aws glue update-catalog --cli-input-json '{
    "name": "123456789012",
    "catalogInput": {
        "description": "Updating root catalog with role arn",
        "catalogProperties": {
            "customProperties": {
                "ColumnStatistics.RoleArn": "arn:aws:iam::"123456789012":role/service-role/AWSGlueServiceRole",
                "ColumnStatistics.Enabled": "true"
            }
        }
    }
}'
```

 上記のコマンドは AWS Glue の `UpdateCatalog` オペレーションを呼び出します。これにより、カタログレベルの統計を生成するために、次のキーと値のペアを持つ `CatalogProperties` 構造が取り込まれます。
+ ColumnStatistics.RoleArn – カタログレベルの統計生成でトリガーされるすべてのタスクで使用する IAM ロール ARN
+ ColumnStatistics.Enabled – カタログレベルの設定が有効か無効かを示すブール値

------

# 自動化されたテーブルレベルの設定を表示
<a name="view-auto-column-stats-settings"></a>

 カタログレベルの統計収集が有効になっている場合、Apache Hive テーブルまたは Apache Iceberg テーブルが、AWS マネジメントコンソール、SDK、AWS Glue クローラー のいずれかで `CreateTable` または `UpdateTable` API を介して作成または更新されるたびに、そのテーブルに対して同等のテーブルレベルの設定が作成されます。

 統計の自動生成が有効になっているテーブルは、次のいずれかのプロパティに従う必要があります。
+ org.apache.hadoop で始まり、`TableType` が `EXTERNAL_TABLE` である `InputSerdeLibrary` を使用する
+ `com.amazon.ion` で始まり、`TableType` が `EXTERNAL_TABLE` である `InputSerdeLibrary` を使用する
+ 自身のパラメータ構造に table\$1type: "ICEBERG" を含める 

 テーブルを作成または更新したら、テーブルの詳細を検証して統計の生成を確定できます。`Statistics generation summary` では、`Schedule` プロパティが `AUTO` に設定され、`Statistics configuration` 値が `Inherited from catalog` を示しています。次の設定を持つテーブル設定は、Glue によって内部で自動的にトリガーされます。

![\[カタログレベルの統計収集を含む Hive テーブルのイメージが適用され、統計が収集されました。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/auto-stats-summary.png)


# カタログレベルの列統計の生成の無効化
<a name="disable-auto-column-stats-generation"></a>

 新しいテーブルの列統計の自動生成は、AWS Lake Formation コンソール、`glue:UpdateCatalogSettings` API、`glue:DeleteColumnStatisticsTaskSettings` API のいずれかを使用して無効にすることができます。

**アカウントレベルで列統計の自動生成を無効にするには**

1. Lake Formation コンソール (‭‬[https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)‬) を開きます。

1. 左のナビゲーションペインで **[カタログ]** を選択します。

1. **[カタログの概要]** ページの **[最適化の設定]** で **[編集]** を選択します。

1. **[テーブル最適化の設定]** ページで、**[カタログのテーブルの自動統計生成を有効にする]** の選択を解除します。

1. [**Submit**] を選択します。