system.iceberg_metadata_log
ClickHouse Cloud에서 쿼리하기
이 시스템 테이블의 데이터는 ClickHouse Cloud의 각 노드에 로컬로 저장됩니다. 따라서 전체 데이터를 조회하려면 clusterAllReplicas 함수를 사용해야 합니다. 자세한 내용은 여기를 참고하십시오.
설명
system.iceberg_metadata_log 테이블은 ClickHouse가 읽는 Iceberg 테이블의 메타데이터 접근 및 파싱 이벤트를 기록합니다. 처리된 각 메타데이터 파일 또는 항목에 대한 자세한 정보를 제공하므로, 디버깅, 감사, 그리고 Iceberg 테이블 구조의 변경 추이를 파악하는 데 유용합니다.
이 테이블은 루트 메타데이터 파일, manifest 목록, manifest 항목을 포함하여 Iceberg 테이블에서 읽은 모든 메타데이터 파일과 항목을 기록합니다. 이를 통해 ClickHouse가 Iceberg 테이블 메타데이터를 어떻게 해석하는지 추적하고, 스키마 변경, 파일 해석, 또는 쿼리 계획과 관련된 문제를 진단할 수 있습니다.
참고
이 테이블은 주로 디버깅 용도로 사용됩니다.
로그 출력 수준 제어
iceberg_metadata_log_level 설정을 사용하면 어떤 메타데이터 이벤트를 로그에 기록할지 제어할 수 있습니다.
현재 쿼리에서 사용되는 모든 메타데이터를 기록하려면:
현재 쿼리에서 사용된 루트 메타데이터 JSON 파일만 로그에 남기려면:
iceberg_metadata_log_level 설정 설명에서 자세한 내용을 확인하십시오.
알아두면 좋은 점
- Iceberg 테이블을 세부적으로 조사해야 하는 경우에만 쿼리 수준에서
iceberg_metadata_log_level을 사용하십시오. 그렇지 않으면 로그 테이블에 메타데이터가 과도하게 누적되어 성능 저하가 발생할 수 있습니다. - 이 테이블은 주로 디버깅을 위한 것으로, 개체별 고유성이 보장되지 않기 때문에 중복된 항목이 포함될 수 있습니다. 프로그램에서 서로 다른 시점에 수집되므로, 내용과 프루닝(pruning) 상태는 별도의 행에 저장됩니다. 내용은 메타데이터를 읽을 때 수집되고, 프루닝 상태는 메타데이터가 프루닝 대상인지 확인할 때 수집됩니다. 중복 제거를 위해 이 테이블 자체에 의존해서는 안 됩니다.
ManifestListMetadata보다 더 상세한content_type을 사용하는 경우, manifest 목록에 대해 Iceberg 메타데이터 캐시가 비활성화됩니다.- 마찬가지로
ManifestFileMetadata보다 더 상세한content_type을 사용하는 경우, manifest 파일에 대해 Iceberg 메타데이터 캐시가 비활성화됩니다. - SELECT 쿼리가 취소되었거나 실패한 경우, 실패 전까지 처리된 메타데이터에 대한 항목은 로그 테이블에 남아 있을 수 있지만, 처리되지 않은 메타데이터 개체에 대한 정보는 포함되지 않습니다.
컬럼
| Name | Type | Description |
|---|---|---|
event_date | Date | 로그 항목의 날짜입니다. |
event_time | DateTime | 이벤트의 타임스탬프입니다. |
query_id | String | 메타데이터 읽기를 트리거한 Query id입니다. |
content_type | Enum8 | 메타데이터 내용의 유형입니다(아래 참조). |
table_path | String | Iceberg 테이블의 경로입니다. |
file_path | String | 루트 메타데이터 JSON 파일, Avro manifest 목록 또는 manifest 파일의 경로입니다. |
content | String | JSON 형식의 내용입니다(.json의 원시 메타데이터, Avro 메타데이터 또는 Avro 항목). |
row_in_file | Nullable(UInt64) | 해당하는 경우 파일 내 행 번호입니다. ManifestListEntry 및 ManifestFileEntry 내용 유형에 대해 제공됩니다. |
pruning_status | Nullable(Enum8) | 항목의 프루닝 상태입니다. 'NotPruned', 'PartitionPruned', 'MinMaxIndexPruned'. 파티션 프루닝이 minmax 프루닝보다 먼저 수행되므로, 'PartitionPruned'는 해당 항목이 파티션 필터에 의해 프루닝되었고 minmax 프루닝은 시도조차 되지 않았음을 의미합니다. ManifestFileEntry 내용 유형에 대해 제공됩니다. |
content_type 값
None: 콘텐츠가 없습니다.Metadata: 루트 메타데이터 파일입니다.ManifestListMetadata: manifest 목록 메타데이터입니다.ManifestListEntry: manifest 목록의 항목입니다.ManifestFileMetadata: manifest 파일 메타데이터입니다.ManifestFileEntry: manifest 파일의 항목입니다.