테이블 디스크
이는 테이블 디스크입니다. 경로/엔드포인트는 데이터베이스 데이터가 아니라 테이블 데이터를 가리킵니다. 객체 스토리지 자체에 메타데이터가 있는 디스크 (s3_plain, s3_plain_rewritable, web, web_index) 및 해당 캐시 변형에서 지원됩니다. 암호화된 변형은 쓰기 가능한 s3_plain / s3_plain_rewritable 디스크에서만 지원되며, 읽기 전용 web / web_index 디스크에서는 지원되지 않습니다. 경로 아래에 이미 존재하는 파트는 이 테이블에 선언된 컬럼 및 정렬 키와 일치하는 것으로 간주됩니다. 각 파트가 어떤 정렬 키로 기록되었는지는 별도로 저장되지 않으므로, 동일한 파트에 대해 다른 정렬 키를 선언한 테이블은 잘못된 결과를 반환하거나 오류를 발생시킵니다.table_readonly
true로 설정하면 테이블이 읽기 전용 모드로 전환됩니다. 테이블을 수정하는 모든 포그라운드 작업이 거부됩니다. 여기에는 삽입, 뮤테이션,OPTIMIZE, 그리고 데이터를 변경하는 파티션 명령어
(ATTACH/MOVE/DROP/DROP DETACHED/FETCH/REPLACE PARTITION 및 이 테이블을 대상으로 하는 MOVE PARTITION ... TO TABLE)가 포함됩니다. FREEZE/UNFREEZE, FORGET PARTITION처럼
테이블 데이터를 수정하지 않는 작업은 계속 허용됩니다.
테이블 데이터를 수정하는 백그라운드 작업은 예약되지 않습니다. 일반 머지, TTL 머지(DELETE/MOVE/재압축), 재압축 머지, 백그라운드 뮤테이션,
백그라운드 파트 이동 작업이 모두 억제됩니다. 따라서 이 설정이 활성화되어 있는 동안에는 TTL이 지정된 테이블이라도 만료된 데이터를 회수하거나
이동하지 않습니다. 정리(cleanup) 작업은 진행 중인 정리 주기가 끝나기를 기다린 후 중지됩니다. 쓰기 가능한 테이블이 시작 후 수행하는 오래된(비활성) 파트의
비동기 로딩은 아직 대기 중이라면 일시 중단됩니다. 이미 대기열에 들어갔지만 시작되지 않은 로드를 포함하여 더 이상 파트를 로드하지 않으며,
로드되지 않고 남은 파트는 설정을 다시 해제하면 로드됩니다. 백그라운드 worker는 설정을 활성화하는 ALTER가 이를 커밋하기 전에
비활성화되므로, 이미 영구적으로 읽기 전용이 된 테이블에서 정리나 파트 로드가 새로 시작되는 일은 없습니다. 이미 시작된 파트 로딩을 비롯해
이미 진행 중인 다른 작업은 끝까지 완료될 수 있습니다.
인메모리 통계 캐시는 계속 주기적으로 갱신됩니다. 이 백그라운드 작업까지 비활성화하려면 refresh_statistics_interval = 0으로 설정하십시오.
스트리밍 읽기(SELECT ... STREAM)는 계속 동작합니다. 해당 subscription을 처리하는 백그라운드 작업은 파트를 읽기만 하므로 읽기 전용 테이블에서도 실행됩니다.
이 설정은 언제든지 ALTER TABLE ... MODIFY SETTING table_readonly = 0(또는 RESET SETTING)으로 되돌릴 수 있습니다. 읽기 전용 테이블에서 시작되지 않았던
백그라운드 worker가 이 시점에 시작되므로, 서버를 재시작하지 않아도 머지, 뮤테이션, 이동 작업, TTL, 정리 작업이 재개됩니다.
오래된(비활성) 파트는 정리 작업이 이를 포함하는 빈 파트를 제거하기 전에 먼저 로드됩니다. 해당 ALTER가 실행되는 동안 테이블은 동시 쿼리에 대해
계속 읽기 전용 상태를 유지합니다. 즉, 메타데이터가 커밋된 시점이 아니라 SQL 문이 반환된 후에야 다시 쓰기를 허용합니다.
이 설정은 ReplicatedMergeTree에서는 지원되지 않습니다.