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 (참고 사항)
DatabaseMySQL와 DatabasePostgreSQL의 경우 이러한 데이터베이스는 기본 데이터를 소유하지 않아요. 데이터는 원격 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