Clickhouse-disks
一个为 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)。
默认磁盘
启动后,会有两个未在配置中显式指定但可用于初始化的磁盘。
-
local磁盘:该磁盘用于模拟启动clickhouse-disks工具时所在的本地文件系统。它的初始路径为启动clickhouse-disks时所在的目录,并挂载在文件系统根目录。 -
default磁盘:该磁盘挂载到本地文件系统中由配置参数clickhouse/path指定的目录(默认值为/var/lib/clickhouse)。它的初始路径被设置为/。
Clickhouse-disks 状态
对于添加的每个磁盘,该工具都会存储当前目录(类似于普通文件系统)。用户可以更改当前目录并在各个磁盘之间切换。
状态会显示在提示符中 "disk_name:path_name"
命令
在本说明文档中,所有必需的位置参数记作 <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上路径path-from的数据(默认值为当前磁盘(在非交互模式下为参数disk的值)) 复制到磁盘disk_2上的路径path-to(默认值为当前磁盘(在非交互模式下为参数disk的值))。current_disk_with_path (current, current_disk, current_path)以如下格式打印当前状态:Disk: "current_disk" Path: "current path on current disk"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)。switch-disk [--path path] <disk>在路径path上切换到磁盘disk(如果未指定path,默认值为之前在磁盘disk上的路径)。write (w) [--path-from path] <path-to>. 将文件从path(如果未提供path则从stdin读取,输入必须以 Ctrl+D 结束)写入到path-to。