Apache Iceberg ワークロードのモニタリング - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Apache Iceberg ワークロードのモニタリング

Iceberg ワークロードをモニタリングするには、メタデータテーブルの分析とメトリクスレポーターの使用の 2 つのオプションがあります。メトリクスレポーターは Iceberg バージョン 1.2 で導入され、REST カタログと JDBC カタログでのみ使用できます。

を使用している場合は AWS Glue Data Catalog、Iceberg が公開するメタデータテーブルの上にモニタリングを設定することで、Iceberg テーブルの状態に関するインサイトを得ることができます。

モニタリングは、パフォーマンス管理とトラブルシューティングに不可欠です。例えば、Iceberg テーブルのパーティションが小さなファイルの特定の割合に達すると、ワークロードは圧縮ジョブを開始してファイルをより大きなファイルに統合できます。これにより、クエリが許容可能なレベルを超えて遅くなるのを防ぐことができます。

テーブルレベルのモニタリング

次の画面は、Amazon で作成されたテーブルモニタリングダッシュボードを示しています QuickSight。このダッシュボードは、Spark SQL を使用して Iceberg メタデータテーブルをクエリし、アクティブなファイルの数やストレージの合計などの詳細なメトリクスをキャプチャします。その後、この情報は運用上の目的で AWS Glue テーブルに保存されます。最後に、次の図に示すように、Amazon Athena を使用して QuickSight ダッシュボードが作成されます。この情報は、システム内の特定の問題を特定して対処するのに役立ちます。

QuickSight Iceberg テーブルをモニタリングするための ダッシュボード

QuickSight このダッシュボードの例では、Iceberg テーブルについて以下の主要業績評価指標 (KPIs) を収集します。

KPI

説明

Query

ファイル数

Iceberg テーブル内のファイルの数 (すべてのスナップショット)

select count(*) from <catalog.database.table_name>.all_files

アクティブなファイルの数

Iceberg テーブルの最後のスナップショットにあるアクティブなファイルの数

select count(*) from <catalog.database.table_name>.files

平均ファイルサイズ

Iceberg テーブル内のすべてのファイルの平均ファイルサイズをメガバイト単位で表します。

select avg(file_size_in_bytes)/1000000 from <catalog.database.table_name>.all_files

平均アクティブファイルサイズ

Iceberg テーブル内のアクティブなファイルの平均ファイルサイズをメガバイト単位で表します。

select avg(file_size_in_bytes)/1000000 from <catalog.database.table_name>.files

小さなファイルの割合

100 MB 未満のアクティブなファイルの割合

select cast(sum(case when file_size_in_bytes < 100000000 then 1 else 0 end)*100/count(*) as decimal(10,2)) from <catalog.database.table_name>.files

合計ストレージサイズ

孤立したファイルと Amazon S3 オブジェクトバージョンを除く、テーブル内のすべてのファイルの合計サイズ (有効な場合)

select sum(file_size_in_bytes)/1000000 from <catalog.database.table_name>.all_files

アクティブなストレージの合計サイズ

特定のテーブルの現在のスナップショット内のすべてのファイルの合計サイズ

select sum(file_size_in_bytes)/1000000 from <catalog.database.table_name>.files

データベースレベルのモニタリング

次の例は、Iceberg テーブルのコレクションに関するデータベースレベルの KPIs の概要 QuickSight を提供するために で作成されたモニタリングダッシュボードを示しています。

QuickSight Iceberg のデータベースレベルモニタリング用の ダッシュボード

このダッシュボードは、次の KPIs。

KPI

説明

Query

ファイル数

Iceberg データベース内のファイルの数 (すべてのスナップショット)

このダッシュボードは、前のセクションで提供されたテーブルレベルのクエリを使用し、結果を統合します。

アクティブなファイルの数

Iceberg データベース内のアクティブなファイルの数 (Iceberg テーブルの最後のスナップショットに基づく)

平均ファイルサイズ

Iceberg データベース内のすべてのファイルの平均ファイルサイズをメガバイト単位で表します。

平均アクティブファイルサイズ

Iceberg データベース内のすべてのアクティブなファイルの平均ファイルサイズをメガバイト単位で表します。

小さなファイルの割合

Iceberg データベースで 100 MB 未満のアクティブなファイルの割合

合計ストレージサイズ

孤立したファイルと Amazon S3 オブジェクトバージョンを除く、データベース内のすべてのファイルの合計サイズ (有効な場合)

アクティブなストレージの合計サイズ

データベース内のすべてのテーブルの現在のスナップショット内のすべてのファイルの合計サイズ

予防メンテナンス

前のセクションで説明したモニタリング機能を設定することで、事後対応型ではなく予防型からテーブルのメンテナンスにアプローチできます。例えば、テーブルレベルとデータベースレベルのメトリクスを使用して、次のようなアクションをスケジュールできます。

  • テーブルが N 個の小さなファイルに達したときに小さなファイルをグループ化するには、ビンパッキング圧縮を使用します。

  • テーブルが特定のパーティション内の N 個の削除ファイルに達したときに削除ファイルをマージするには、ビンパッキング圧縮を使用します。

  • 合計ストレージがアクティブストレージの X 倍になったら、スナップショットを削除して、既に圧縮された小さなファイルを削除します。