system.iceberg_metadata_log
ClickHouse Cloud でのクエリ実行
このシステムテーブルのデータは、ClickHouse Cloud の各ノードにローカルに格納されています。そのため、すべてのデータを包括的に確認するには、clusterAllReplicas 関数を使用する必要があります。詳細についてはこちらを参照してください。
説明
system.iceberg_metadata_log テーブルは、ClickHouse が読み取る Iceberg テーブルのメタデータアクセスおよび解析イベントを記録します。処理された各メタデータファイルまたはエントリに関する詳細情報を提供するため、デバッグ、監査、Iceberg テーブル構造の変化の把握に役立ちます。
このテーブルには、ルートメタデータファイル、マニフェストリスト、マニフェストエントリを含む、Iceberg テーブルから読み取られたすべてのメタデータファイルとエントリが記録されます。これにより、ClickHouse が Iceberg テーブルのメタデータをどのように解釈するかを追跡し、schema の変更、ファイルの解決、またはクエリ計画に関連する問題を診断できます。
注記
このテーブルは主にデバッグ目的で使用することを想定しています。
ログの詳細度を制御する
iceberg_metadata_log_level 設定を使用すると、どのメタデータイベントをログに記録するかを制御できます。
現在のクエリで使用されるすべてのメタデータをログに記録するには、次のようにします。
現在のクエリで使用されているルートメタデータJSONファイルのみをログに出力するには:
詳しくは、iceberg_metadata_log_level 設定の説明を参照してください。
知っておくとよいこと
iceberg_metadata_log_levelは、Iceberg テーブルを詳細に調査する必要がある場合にのみ、クエリレベルで使用してください。そうしないと、ログテーブルが過剰なメタデータで埋まり、パフォーマンスが低下するおそれがあります。- このテーブルには重複したエントリが含まれます。これは主にデバッグを目的としたもので、エンティティごとの一意性は保証されないためです。内容と剪枝ステータスは、プログラム内の異なるタイミングで収集されるため、別々の行に格納されます。内容はメタデータの読み取り時に収集され、剪枝ステータスはメタデータが剪枝対象かどうかを確認する際に収集されます。重複排除のために、このテーブル自体に決して依存しないでください。
ManifestListMetadataよりも Verbose なcontent_typeを使用すると、マニフェストリスト では Iceberg メタデータキャッシュが無効になります。- 同様に、
ManifestFileMetadataよりも Verbose なcontent_typeを使用すると、マニフェストファイル では Iceberg メタデータキャッシュが無効になります。 - SELECT クエリがキャンセルされた場合や失敗した場合でも、失敗前に処理されたメタデータのエントリはログテーブルに残っている可能性がありますが、処理されなかったメタデータエンティティに関する情報は含まれません。
カラム
| Name | Type | Description |
|---|---|---|
event_date | Date | ログエントリの日付。 |
event_time | DateTime | イベントのタイムスタンプ。 |
query_id | String | メタデータの読み取りをトリガーしたクエリ ID。 |
content_type | Enum8 | メタデータ内容の種類 (以下を参照) 。 |
table_path | String | Iceberg テーブルへのパス。 |
file_path | String | ルートメタデータ JSON ファイル、Avro マニフェストリスト、またはマニフェストファイルへのパス。 |
content | String | JSON フォーマットの内容 (.json の生メタデータ、Avro メタデータ、または Avro エントリ) 。 |
row_in_file | Nullable(UInt64) | 該当する場合のファイル内の行番号。ManifestListEntry および ManifestFileEntry の content_type で存在します。 |
pruning_status | Nullable(Enum8) | エントリの剪枝ステータス。'NotPruned'、'PartitionPruned'、'MinMaxIndexPruned'。パーティション剪枝は minmax 剪枝より前に行われるため、'PartitionPruned' は、そのエントリがパーティションフィルターによって剪枝され、minmax 剪枝は試行されていないことを意味します。ManifestFileEntry の content_type で存在します。 |
content_type の値
None: コンテンツなし。Metadata: ルートのメタデータファイル。ManifestListMetadata: マニフェストリストのメタデータ。ManifestListEntry: マニフェストリスト内のエントリ。ManifestFileMetadata: マニフェストファイルのメタデータ。ManifestFileEntry: マニフェストファイル内のエントリ。