当前 ByteHouse 支持两种方式进行参数配置,分别为配置文件和标志位 flag,本文将详细介绍这两种方式的使用,并提供所有配置列表进行参考。
使用标志位的语法
./bytehouse-cli [Options...]
使用 stdin 的语法
./bytehouse-cli [Options...] < input input | ./bytehouse-cli [Options...]
使用标志位 Flag 来指定配置参数的语法如下
# Format --<long_name> -<alias> <description of option> Default: <default value> Type: <value type> # Example of setting an option ./bytehouse-cli --<long_name> your_value ./bytehouse-cli -<alias> your_value ./bytehouse-cli --<long_name>=your_value ./bytehouse-cli -<alias>=your_value
除了使用标志 flag 指定配置参数外,更推荐用配置文件的方式,可以将配置持久化,便于有需要的时候进行调用。
在 ByteHouse CLI 启动时,会默认寻找名为 bytehouse_conf.toml
的默认配置文件。如果指定了 --config_file <path/to/file> 或者 -cf <path/to/file> 参数,则会在 <path/to/file> 路径下寻找对应的配置文件。
如下展示了一个配置文件的样例
# Settings for connection token = "accesstoken" role = "SystemAdmin" region = "cn-beijing" volcano = true secure = true connection_timeout = 100 # Settings for query Settings, set SQL mode by 1 or 0 ansi_sql = 0
使用配置文件的方式如下:
bytehouse-cli --config_file bytehouse_conf.toml
按照如上命令,则 CLI 会寻找当前路径下名为 bytehouse_conf.toml 的配置文件。
此外,当前也支持结合配置文件和标志参数 flag 一起使用,如下所示。
bytehouse-cli -user 'bob' -config_file 'bytehouse_conf.toml'
同时使用的情况下,优先级为:标志参数 > 配置文件 > 参数默认值。
可以通过如下命令来修改配置文件:
set password = 'password'
当前可以通过如下命令来查询所有配置参数:
show configuration
则客户端会返回一系列参数:
可以通过如下命令保存配置文件
save configuration into outfile 'save_config.toml' format toml
如果遇到本地文件名冲突,当前会默认创建 save_config(x).toml
来避免命名冲突。如希望覆盖当前同名配置文件,则可以通过增加 override
命令来执行。
save configuration into outfile 'save_config.toml' format toml override
注:如果配置文件存在于默认路径,并使用了默认文件名 bytehouse_conf.toml,则可以简化命令。
save configuration
该命令等同于下列命令
save configuration into outfile <default file path> format toml
当前 CLI 支持两种类型的配置,客户端配置和查询配置
配置名称 | 简写 | 数据类型 | 默认值 | 说明 |
---|---|---|---|---|
region | R | String | - | ByteHouse 服务所在地域 |
silent | S | Bool | false | 设置为 true 时,只会显示查询结果和错误信息 |
compress | c | Bool | false | 定义是否要用压缩数据 |
config_format | cF | String | toml | 定义配置文件的类型 |
config_file | cf | String | bytehouse_conf.toml | 定义配置文件的路径 |
format_csv_delimiter | csv_delim | String | , | 定义处理 CSV 文件时列的分隔符 |
connection_timeout | ct | Duration | 3s | 建立连接时的超时时间 |
database | d | String | - | 定义默认使用的数据库 |
disable_background | db | Bool | false | 定义后台进程是否要被禁用 |
format | f | String | pretty | 定义输出结果的形式,默认为 pretty,支持 csv, CSVWithNames 等 |
force_continue | fc | Bool | false | 如果前一个查询失败,是否继续执行 sql 脚本或者多条查询。 |
help | h | Bool | false | 显示命令帮助 |
insert_block_size | ibs | Unit64 | 65536 | 定义 session 中的插入数据大小 |
ignore_syntax | is | Bool | false | 定义在发送查询语句到服务端之前,是否要忽略语法检查 |
max_rows_to_print | mr | Uint64 | 1000 | 定义最多能打印的行数 |
no_color | nc | Bool | false | 定义是否禁用 CLI 的颜色显示 |
query | q | String | - | 定义需要执行的查询,当设置了这个选项时,将不会进入交互模式。 |
role | r | String | - | 定义执行当前 session 的角色 |
read_timeout | rt | Duration | 5m0s | 定义从 server 中的读取超时时间 |
secure | s | Bool | false | 定义是否要用 Secure TCP 连接 |
sql_dir | sql | String | - | 定义按词汇顺序执行的.sql文件/文件夹的路径 |
user | u | String | default | 定义连接 ByteHouse 的用户 |
version | v | Bool | false | 展示当前的 CLI 版本 |
warehouse | w | String | - | 定义当前使用的计算组 |
write_timeout | wt | Duration | 5m0s | 定义从 server 中的写超时时间 |