detached_tables 시스템 테이블

detached_tables 시스템 테이블

detached_tables 시스템 테이블은 각 분리된(detached) 테이블에 대한 정보를 담고 있어요.

출처: 문서

본문

Description (설명)

각 분리된 테이블에 대한 정보를 담고 있어요.

Columns (열)

  • database (String) — 테이블이 속한 데이터베이스의 이름.
  • table (String) — 테이블 이름.
  • uuid (UUID) — 테이블 uuid (Atomic database).
  • metadata_path (String) — 파일 시스템의 테이블 메타데이터 경로.
  • is_permanently (UInt8) — 테이블이 영구적으로 분리됨.

Notes (참고 사항)

DatabaseMySQLDatabasePostgreSQL의 경우 이러한 데이터베이스는 기본 데이터를 소유하지 않아요. 데이터는 원격 MySQL/PostgreSQL 서버에 있어요. 결과적으로 이 데이터베이스 엔진 중 하나의 테이블에 대한 DROP TABLE은 내부적으로 detachTablePermanently로 구현돼요. 이는 ClickHouse의 테이블 로컬 추적만 제거하며, 테이블은 명시적인 DETACH TABLE PERMANENTLY와 마찬가지로 is_permanently = 1과 함께 system.detached_tables에 표시돼요. 원격 데이터 자체는 건드리지 않아요. 영구적 MySQL/PostgreSQL 데이터베이스의 경우 분리 상태는 서버 재시작과 재연결 후에도 유지돼요. DatabaseMySQL은 메타데이터 디렉터리에 .remove_flag 마커를 저장하고, DatabasePostgreSQL.removed 마커를 저장해요. 둘 다 시작 시 loadStoredObjects로 다시 로드돼요. 테이블은 기존 메타데이터 디렉터리 없이 새 외부 데이터베이스 매핑이 생성될 때만 다시 나타나요. 예를 들어 메타데이터가 제거되거나 데이터베이스가 다른 이름으로 생성되는 경우예요.

Example (예제)

SELECT * FROM system.detached_tables FORMAT Vertical;
Row 1:
──────
database:                   base
table:                      t1
uuid:                       81b1c20a-b7c6-4116-a2ce-7583fb6b6736
metadata_path:              /var/lib/clickhouse/store/461/461cf698-fd0b-406d-8c01-5d8fd5748a91/t1.sql
is_permanently:             1

더 알아보기 (Learn more)