Утилита для выполнения операций с дисками ClickHouse, аналогичных операциям файловой системы. Может работать как в интерактивном, так и в неинтерактивном режиме.
Общие параметры программы
--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– вывести все параметры и команды с описанием
Ленивая инициализация
Все диски, доступные в конфигурации, инициализируются лениво. Это означает, что объект, соответствующий диску, инициализируется только тогда, когда этот диск используется в какой-либо команде. Это сделано, чтобы повысить устойчивость утилиты и избежать обращения к дискам, описанным в конфигурации, но не используемым пользователем, которые могут вызвать ошибку при инициализации. Однако при запуске clickhouse-disks должен инициализироваться хотя бы один диск. Этот диск задаётся параметром --disk в командной строке (значение по умолчанию — default).
Диски по умолчанию
После запуска доступны два диска, которые не указаны в конфигурации, но могут быть инициализированы.
-
localDisk: Этот диск предназначен для эмуляции локальной файловой системы, из которой была запущена утилитаclickhouse-disks. Его исходный путь — каталог, из которого был запущенclickhouse-disks, а сам диск смонтирован в корень файловой системы. -
defaultDisk: Этот диск смонтирован в локальной файловой системе в каталог, указанный параметромclickhouse/pathв конфигурации (значение по умолчанию —/var/lib/clickhouse). Его исходный путь —/.
Состояние clickhouse-disks
Для каждого добавленного диска утилита сохраняет текущий каталог (как в обычной файловой системе). Пользователь может менять текущий каталог и переключаться между дисками.
Состояние отображается в строке приглашения "disk_name:path_name"
Команды
В этом файле документации все обязательные позиционные аргументы обозначаются как <parameter>, а именованные — как [--parameter value]. Все позиционные параметры также могут быть указаны как именованные с соответствующим именем.
cd (change-dir, change_dir) [--disk disk] <path>Перейти в каталог по путиpathна дискеdisk(значение по умолчанию — текущий диск). Переключения диска не происходит.copy (cp) [--disk-from disk_1] [--disk-to disk_2] <path-from> <path-to>. Рекурсивно скопировать данные изpath-fromна дискеdisk_1(значение по умолчанию — текущий диск (параметрdiskв неинтерактивном режиме)) вpath-toна дискеdisk_2(значение по умолчанию — текущий диск (параметрdiskв неинтерактивном режиме)).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(stdout, если путь не указан).read-bitmap <path-from> [--values]Просмотреть sidecar-файл delete-bitmap (.rbm) по путиpath-from. Выводит сигнатуру и версию, корректность CRC, мощность (число удалённых строк) и диапазон строк. С--valuesтакже выводит все установленные биты (смещения удалённых строк) в порядке возрастания.switch-disk [--path path] <disk>Переключиться на дискdiskпо путиpath(еслиpathне указан, значением по умолчанию будет предыдущий путь на дискеdisk).write (w) [--path-from path] <path-to>. Записать файл изpath(stdin, еслиpathне указан; ввод должен завершаться по Ctrl+D) вpath-to.wc <path> [--bytes] [--lines] [--words]Подсчитать количество байтов, строк и слов в файле по путиpathна текущем диске (как Unixwc). Без флагов выводятся все три значения в порядке: строки, слова, затем байты. Используйте--bytes(-c),--lines(-l),--words(-w) для вывода конкретных значений.sed <expression> <path>Применитьsed-выражениеexpressionк файлу по путиpathна текущем диске с изменением на месте. Требуется, чтобыsedбыл установлен на хосте. Поддерживается только одно выражениеsedбез опций (например,'s/foo/bar/g','/foo/d'), а не несколько выражений (-e ... -e ...) и не опции, объединённые с адресом (например,-nс4,10p).read-checksums <path>Прочитать файлchecksums.txtdata partMergeTreeна текущем диске и вывести его вstdoutкак удобочитаемую таблицу с разделением табуляцией и столбцамиname,file_size,file_hash,uncompressed_sizeиuncompressed_hash. Последние два столбца присутствуют только для сжатых файлов.