clickhouse-disks
clickhouse-disks
clickhouse-disks는 ClickHouse 디스크에 대해 파일시스템과 유사한 연산을 제공하는 유틸리티예요. 대화형 모드와 비대화형 모드 모두에서 동작합니다.
출처: 문서
본문
ClickHouse 디스크를 위해 파일시스템과 유사한 연산을 제공하는 유틸리티입니다. 대화형 모드와 비대화형 모드 모두에서 동작할 수 있어요.
프로그램 전체 옵션 (Program-wide options)
--config-file, -C— ClickHouse 설정 경로, 기본값은/etc/clickhouse-server/config.xml.--save-logs— 호출한 명령의 진행 상황을/var/log/clickhouse-server/clickhouse-disks.log에 기록합니다.--log-level— 기록할 이벤트 유형. 기본값은none.--disk—mkdir, move, read, write, remove명령에 사용할 디스크. 기본값은default.--query, -q— 대화형 모드를 시작하지 않고 실행할 수 있는 단일 쿼리--help, -h— 설명과 함께 모든 옵션과 명령을 출력합니다
지연 초기화 (Lazy initialization)
설정에 있는 모든 디스크는 지연 초기화됩니다. 즉, 해당 디스크에 대해 객체는 어떤 명령에서 해당 디스크를 사용할 때만 초기화됩니다. 이는 유틸리티를 더 견고하게 만들고, 설정에 기술되어 있지만 사용자가 사용하지 않으면서 초기화에 실패할 수 있는 디스크를 건드리지 않도록 하기 위한 것입니다. 다만 clickhouse-disks를 시작할 때 초기화되는 디스크는 하나 있어야 합니다. 이 디스크는 명령줄의 --disk 파라미터로 지정됩니다(기본값은 default).
기본 디스크 (Default Disks)
실행 후 설정에 지정되지 않았지만 초기화 가능한 두 개의 디스크가 있습니다.
local디스크:clickhouse-disks유틸리티가 실행된 로컬 파일시스템을 모방하도록 설계된 디스크입니다. 초기 경로는clickhouse-disks가 시작된 디렉터리이며, 파일시스템의 루트 디렉터리에 마운트됩니다.default디스크: 이 디스크는 설정의clickhouse/path파라미터가 지정한 디렉터리(기본값은/var/lib/clickhouse)의 로컬 파일시스템에 마운트됩니다. 초기 경로는/로 설정됩니다.
clickhouse-disks 상태 (clickhouse-disks state)
추가된 각 디스크에 대해 유틸리티는 현재 디렉터리를 저장합니다(일반 파일시스템처럼). 사용자는 현재 디렉터리를 변경하고 디스크를 전환할 수 있습니다.
상태는 프롬프트 “disk_name:path_name”에 반영됩니다.
명령 (Commands)
이 문서에서 모든 필수 위치 인자는 <parameter>로, 명명된 인자는 [--parameter value]로 표기합니다. 모든 위치 파라미터는 해당 이름을 가진 명명된 파라미터로도 언급될 수 있어요.
cd (change-dir, change_dir) [--disk disk] <path>디스크disk(기본값은 현재 디스크)의 경로path로 디렉터리를 변경합니다. 디스크 전환은 일어나지 않습니다.copy (cp) [--disk-from disk_1] [--disk-to disk_2] <path-from> <path-to>. 디스크disk_1(기본값은 현재 디스크, 비대화형 모드에서는disk파라미터)의path-from에서 디스크disk_2(기본값은 현재 디스크, 비대화형 모드에서는disk파라미터)의path-to로 데이터를 재귀적으로 복사합니다.current_disk_with_path (current, current_disk, current_path)다음 형식으로 현재 상태를 출력합니다:Disk: "current_disk" Path: "current path on current disk"du [--human-readable] [<path>]현재 디스크의path에 있는 파일 또는 디렉터리의 총 크기(바이트)를 출력합니다. 디렉터리의 경우 포함된 모든 파일의 크기를 재귀적으로 합산합니다.path를 지정하지 않으면 현재 디렉터리가 사용됩니다.--human-readable(-h)을 사용하면 크기가 사람이 읽기 쉬운 형식(예:1.23 GiB)으로 출력됩니다.help [<command>]명령command에 대한 도움말 메시지를 출력합니다.command를 지정하지 않으면 모든 명령에 대한 정보를 출력합니다.move (mv) <path-from> <path-to>. 현재 디스크 내에서path-from의 파일 또는 디렉터리를path-to로 이동합니다.remove (rm, delete) <path>. 현재 디스크에서path를 재귀적으로 제거합니다.link (ln) <path-from> <path-to>. 현재 디스크에서path-from에서path-to로 하드링크를 만듭니다.list (ls) [--recursive] <path>현재 디스크의path에 있는 파일을 나열합니다. 기본은 비재귀적입니다.list-disks (list_disks, ls-disks, ls_disks). 디스크 이름을 나열합니다.mkdir [--recursive] <path>(현재 디스크에서) 디렉터리를 만듭니다. 기본은 비재귀적입니다.read (r) <path-from> [--path-to path]path-from의 파일을path로 읽습니다(path를 지정하지 않으면stdout).read-bitmap <path-from> [--values]path-from에 있는 delete-bitmap(.rbm) 사이드카를 검사합니다. 매직과 버전, CRC 유효성, 카디널리티(삭제된 행 수), 행 범위를 출력합니다.--values를 주면 모든 설정 비트(삭제된 행 오프셋)를 오름차순으로 덤프합니다.switch-disk [--path path] <disk>경로path의 디스크disk로 전환합니다(path를 지정하지 않으면 기본값은 디스크disk의 이전 경로).write (w) [--path-from path] <path-to>.path의 파일을path-to로 씁니다(path를 지정하지 않으면stdin, 입력은 Ctrl+D로 끝나야 함).wc <path> [--bytes] [--lines] [--words]현재 디스크의path에 있는 파일의 바이트, 줄, 단어 수를 셉니다(Unixwc처럼). 플래그가 없으면 세 가지 수치가 모두 줄, 단어, 바이트 순서로 출력됩니다. 특정 수치만 선택하려면--bytes(-c),--lines(-l),--words(-w)를 사용하세요.sed <expression> <path>현재 디스크의path에 있는 파일에sedexpression을 그 자리에서(in place) 적용합니다. 호스트에sed가 설치되어 있어야 합니다. 옵션 없는 단일sed식만 지원합니다(예:'s/foo/bar/g','/foo/d'). 여러 식(-e ... -e ...)이나 주소와 결합된 옵션(예:-nwith4,10p)은 지원하지 않습니다.read-checksums <path>현재 디스크의MergeTree데이터 파트의checksums.txt파일을 읽어name,file_size,file_hash,uncompressed_size,uncompressed_hash컬럼을 가진 탭으로 구분된 사람이 읽기 쉬운 테이블로stdout에 출력합니다. 마지막 두 컬럼은 압축된 파일에만 있습니다.