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

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

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

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

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

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

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

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

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

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 で作成されたモニタリングダッシュボードを示しています。

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

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

KPI

説明

Query

ファイルの数

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

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

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

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

平均ファイルサイズ

Iceberg データベース内のすべてのファイルの平均ファイルサイズ、メガバイト単位

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

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

小さいファイルの割合

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

合計ストレージサイズ

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

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

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

予防メンテナンス

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

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

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

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