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.
  • --diskmkdir, move, read, write, remove 명령에 사용할 디스크. 기본값은 default.
  • --query, -q — 대화형 모드를 시작하지 않고 실행할 수 있는 단일 쿼리
  • --help, -h — 설명과 함께 모든 옵션과 명령을 출력합니다

지연 초기화 (Lazy initialization)

설정에 있는 모든 디스크는 지연 초기화됩니다. 즉, 해당 디스크에 대해 객체는 어떤 명령에서 해당 디스크를 사용할 때만 초기화됩니다. 이는 유틸리티를 더 견고하게 만들고, 설정에 기술되어 있지만 사용자가 사용하지 않으면서 초기화에 실패할 수 있는 디스크를 건드리지 않도록 하기 위한 것입니다. 다만 clickhouse-disks를 시작할 때 초기화되는 디스크는 하나 있어야 합니다. 이 디스크는 명령줄의 --disk 파라미터로 지정됩니다(기본값은 default).

기본 디스크 (Default Disks)

실행 후 설정에 지정되지 않았지만 초기화 가능한 두 개의 디스크가 있습니다.

  1. local 디스크: clickhouse-disks 유틸리티가 실행된 로컬 파일시스템을 모방하도록 설계된 디스크입니다. 초기 경로는 clickhouse-disks가 시작된 디렉터리이며, 파일시스템의 루트 디렉터리에 마운트됩니다.
  2. 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에 있는 파일의 바이트, 줄, 단어 수를 셉니다(Unix wc처럼). 플래그가 없으면 세 가지 수치가 모두 줄, 단어, 바이트 순서로 출력됩니다. 특정 수치만 선택하려면 --bytes(-c), --lines(-l), --words(-w)를 사용하세요.
  • sed <expression> <path> 현재 디스크의 path에 있는 파일에 sed expression을 그 자리에서(in place) 적용합니다. 호스트에 sed가 설치되어 있어야 합니다. 옵션 없는 단일 sed 식만 지원합니다(예: 's/foo/bar/g', '/foo/d'). 여러 식(-e ... -e ...)이나 주소와 결합된 옵션(예: -n with 4,10p)은 지원하지 않습니다.
  • read-checksums <path> 현재 디스크의 MergeTree 데이터 파트의 checksums.txt 파일을 읽어 name, file_size, file_hash, uncompressed_size, uncompressed_hash 컬럼을 가진 탭으로 구분된 사람이 읽기 쉬운 테이블로 stdout에 출력합니다. 마지막 두 컬럼은 압축된 파일에만 있습니다.

더 알아보기 (Learn more)