メインコンテンツまでスキップ
メインコンテンツまでスキップ

system.iceberg_metadata_log

system.iceberg_metadata_log テーブルは、ClickHouse によって読み取られた Iceberg テーブルのメタデータアクセスおよびパースイベントを記録します。これは、処理された各メタデータファイルまたはエントリに関する詳細情報を提供し、デバッグ、監査、および Iceberg テーブル構造の進化を理解するのに役立ちます。

Purpose

このテーブルは、Iceberg テーブルから読み取られたすべてのメタデータファイルおよびエントリをログに記録します。これには、ルートメタデータファイル、マニフェストリスト、およびマニフェストエントリが含まれます。これにより、ユーザーは ClickHouse が Iceberg テーブルのメタデータをどのように解釈しているかを追跡し、スキーマの進化、ファイルの解決、またはクエリプランニングに関連する問題を診断できます。

注記

このテーブルは主にデバッグ目的で使用されます。

注記

Columns

NameTypeDescription
event_dateDateログエントリの日付。
event_timeDateTimeイベントのタイムスタンプ。
query_idStringメタデータ読み取りをトリガーしたクエリ ID。
content_typeEnum8メタデータコンテンツの種類(下記参照)。
table_pathStringIceberg テーブルへのパス。
file_pathStringルートメタデータ JSON ファイル、Avro マニフェストリスト、またはマニフェストファイルへのパス。
contentStringJSON 形式のコンテンツ(.json からの生メタデータ、Avro メタデータ、または Avro エントリ)。
row_in_fileNullable(UInt64)ファイル内の行番号(該当する場合)。ManifestListEntry および ManifestFileEntry コンテンツタイプで表示されます。

content_type values

  • None: コンテンツなし。
  • Metadata: ルートメタデータファイル。
  • ManifestListMetadata: マニフェストリストメタデータ。
  • ManifestListEntry: マニフェストリスト内のエントリ。
  • ManifestFileMetadata: マニフェストファイルメタデータ。
  • ManifestFileEntry: マニフェストファイル内のエントリ。
ClickHouse Cloud におけるクエリ

このシステムテーブルのデータは、ClickHouse Cloud の各ノードにローカルに保持されています。したがって、すべてのデータの完全なビューを取得するには、clusterAllReplicas 関数が必要です。詳細については こちら を参照してください。

Controlling log verbosity

iceberg_metadata_log_level 設定を使用して、どのメタデータイベントがログに記録されるかを制御できます。

現在のクエリで使用されるすべてのメタデータをログに記録するには:

SELECT * FROM my_iceberg_table SETTINGS iceberg_metadata_log_level = 'manifest_file_entry';

SYSTEM FLUSH LOGS iceberg_metadata_log;

SELECT content_type, file_path, row_in_file
FROM system.iceberg_metadata_log
WHERE query_id = '{previous_query_id}';

現在のクエリで使用されるルートメタデータ JSON ファイルのみをログに記録するには:

SELECT * FROM my_iceberg_table SETTINGS iceberg_metadata_log_level = 'metadata';

SYSTEM FLUSH LOGS iceberg_metadata_log;

SELECT content_type, file_path, row_in_file
FROM system.iceberg_metadata_log
WHERE query_id = '{previous_query_id}';

iceberg_metadata_log_level 設定の説明で詳細情報を参照してください。

Good To Know

  • iceberg_metadata_log_level は、Iceberg テーブルを詳細に調査する必要がある場合のみ、クエリレベルで使用してください。それ以外の場合、ログテーブルに過剰なメタデータが記録され、性能が低下する可能性があります。
  • このテーブルには重複エントリが含まれる場合があります。これは主にデバッグ用に設計されており、エンティティごとの一意性を保証しません。
  • ManifestListMetadata よりも詳細な content_type を使用する場合、マニフェストリストのための Iceberg メタデータキャッシュは無効になります。
  • 同様に、ManifestFileMetadata よりも詳細な content_type を使用する場合、マニフェストファイルのための Iceberg メタデータキャッシュは無効になります。

See also