安装
运行
如果你只是下载了 ClickHouse 但未安装,请使用
./clickhouse client,不要使用 clickhouse-client。
有关命令行选项的完整列表,请参见命令行选项。
连接到 ClickHouse Cloud
选择 Native,即可看到详细信息以及一个
clickhouse-client 命令示例:
在配置文件中存储连接信息
为了突出查询语法,其余示例省略了连接信息 (
--host、--port 等) 。使用这些命令时,请记得补上。交互模式
使用 交互模式
PrettyCompact。
你可以在查询的 FORMAT 子句中修改格式,也可以通过指定 --format 命令行选项来修改。
要使用 Vertical format,可以使用 --vertical,或者在查询末尾加上 \G。
在这种格式下,每个值都会单独占一行,这对于宽表很方便。
在交互模式下,默认情况下,按下 Enter 时会执行你输入的内容。
查询末尾无需分号。
你可以使用 -m, --multiline 参数启动客户端。
要输入多行查询,请在行尾换行符前输入反斜杠 \。
按下 Enter 后,系统会提示你输入查询的下一行。
要执行查询,请以分号结尾并按下 Enter。
ClickHouse 客户端 基于 replxx (类似于 readline) ,因此支持常见的键盘快捷键并保留历史记录。
默认情况下,历史记录会写入 ~/.clickhouse-client-history。
要退出客户端,请按 Ctrl+D,或者输入以下任一内容来代替查询:
exit或exit;quit或quit;q、Q或:qlogout或logout;
查询处理信息
- 进度,默认情况下每秒最多更新 10 次。 对于执行很快的查询,进度可能还来不及显示。
- 解析后生成的格式化后的查询,用于调试。
- 以指定格式输出的结果。
- 结果中的行数、已耗时间以及查询处理的平均速度。 所有数据量均指未压缩数据。
Ctrl+C 取消长时间运行的查询。
不过,你仍需要稍等片刻,让服务器中止该请求。
在某些阶段,查询无法取消。
如果不等待而再次按下 Ctrl+C,客户端将退出。
ClickHouse 客户端 允许在查询时传递外部数据 (外部临时表) 。
更多信息,请参见 查询处理的外部数据 一节。
别名
\l- SHOW DATABASES\d- SHOW TABLES\c <DATABASE>- USE DATABASE.- 重复上一条查询
键盘快捷键
Alt (Option) + Shift + e- 使用当前查询打开编辑器。可通过环境变量EDITOR指定要使用的编辑器,默认使用vim。Alt (Option) + #- 注释当前行。Ctrl + r- 模糊搜索历史记录。
批次模式
使用批次模式
--query:
stdin 传入查询:
messages 表,你也可以通过命令行插入数据:
--query 时,所有输入都会在一个换行符后追加到请求中。
将 CSV 文件插入远程 ClickHouse 服务
cell_towers.csv 插入到 default 数据库中现有的 cell_towers 表:
从命令行插入数据示例
cat <<_EOF 会开启一个 heredoc,它会持续读取内容,直到再次遇到 _EOF,然后将其输出:
cat 将 file.csv 的内容输出到 stdout,并通过管道传递给 clickhouse-client 作为输入:
TabSeparated。
如上例所示,你可以在查询的 FORMAT 子句中设置格式。
带参数的查询
查询语法
示例
AI SQL 生成
OPENAI_API_KEY 或 ANTHROPIC_API_KEY 环境变量,AI 辅助功能即可开箱即用。有关更高级的配置,请参阅配置部分。
用法
??:
- 自动探索你的数据库 schema
- 根据发现的表和列生成合适的 SQL
- 立即执行生成的查询
示例
配置
基于环境变量的回退机制
- 首先检查
OPENAI_API_KEY环境变量 - 如果未找到,再检查
ANTHROPIC_API_KEY环境变量 - 如果两者都未找到,则会禁用 AI 功能
配置文件
$XDG_CONFIG_HOME/clickhouse/config.xml(如果未设置XDG_CONFIG_HOME,则使用~/.config/clickhouse/config.xml) (XML 格式)$XDG_CONFIG_HOME/clickhouse/config.yaml(如果未设置XDG_CONFIG_HOME,则使用~/.config/clickhouse/config.yaml) (YAML 格式)~/.clickhouse-client/config.xml(XML 格式,旧版位置)~/.clickhouse-client/config.yaml(YAML 格式,旧版位置)- 或使用
--config-file指定自定义位置
- XML
- YAML
使用 OpenAI 兼容 API (例如 OpenRouter) :
参数
必填参数
必填参数
api_key- AI 服务的 API 密钥。如果已通过环境变量设置,则可省略:- OpenAI:
OPENAI_API_KEY - Anthropic:
ANTHROPIC_API_KEY - 注意:配置文件中的 API 密钥优先于环境变量
- OpenAI:
provider- AI 提供商:openai或anthropic- 如果省略,将根据可用的环境变量自动进行回退
模型配置
模型配置
model- 要使用的模型 (默认值:取决于所选提供商)- OpenAI:
gpt-4o,gpt-4,gpt-3.5-turbo等 - Anthropic:
claude-3-5-sonnet-20241022,claude-3-opus-20240229等 - OpenRouter: 使用其模型命名格式,例如
anthropic/claude-3.5-sonnet
- OpenAI:
连接设置
连接设置
base_url- 用于 OpenAI 兼容服务的自定义 API 端点 (可选)timeout_seconds- 请求超时时间 (单位:秒) (默认值:30)
Schema 探索
Schema 探索
enable_schema_access- 允许 AI 探索数据库 schema (默认值:true)max_steps- schema 探索期间可调用工具的最大步数 (默认值:10)
生成参数
生成参数
temperature- 控制随机性,0.0 = 确定性,1.0 = 更具创造性 (默认值:0.0)max_tokens- 响应的最大长度 (以标记数计) (默认值:1000)system_prompt- 提供给 AI 的自定义指令 (可选)
工作原理
- Schema 发现
- 列出可用的数据库
- 发现相关数据库中的表
- 通过
CREATE TABLE语句检查表结构
- 查询生成
- 符合你的自然语言意图
- 使用正确的表名和列名
- 应用适当的连接和聚合
- 执行
局限性
- 需要可用的互联网连接
- API 的使用受 AI 提供商的速率限制和费用约束
- 复杂查询可能需要多次调整
- AI 仅对 schema 信息具有只读访问权限,无法访问实际数据
安全性
- API 密钥绝不会发送到 ClickHouse 服务器
- AI 只能看到 schema 信息 (表名/列名和类型) ,看不到实际数据
- 所有生成的查询都会遵循您现有的数据库权限
连接字符串
用法
注意事项
--user、--password 或 --database 指定 (反之亦然) 。
主机部分可以是主机名,也可以是 IPv4 或 IPv6 地址。
IPv6 地址应放在 [] 中:
clickHouse-client 的第一个参数指定。
除 --host 和 --port 外,连接字符串还可以与任意数量的其他命令行选项组合使用。
query_parameters 允许以下键:
百分号编码
以下参数中的非 US-ASCII 字符、空格和特殊字符必须进行百分号编码:
userpasswordhostsdatabasequery parameters
示例
localhost 的 9000 端口,并执行查询 SELECT 1。
john 和密码 secret 连接到 localhost,主机为 127.0.0.1,端口为 9000
default 用户身份连接到 localhost,主机的 IPv6 地址为 [::1],端口为 9000。
localhost 的 9000 端口。
default 通过 9000 端口连接到 localhost。
localhost 的 9000 端口,并默认使用 my_database 数据库。
localhost,默认使用连接字符串中指定的 my_database database,并通过简写的 s 参数建立安全连接。
my_user,且不使用密码。
localhost。@ 符号会进行百分号编码,变为 %40。
192.168.1.15、192.168.1.25。
查询 ID 格式
query_id_formats 标签内指定自定义格式。格式字符串中的 {query_id} 占位符会替换为查询 ID。该标签内可包含多个格式字符串。
此功能可用于生成 URL,便于对查询进行性能分析。
示例
配置文件
- 通过
-c [ -C, --config, --config-file ]参数指定的文件。 ./clickhouse-client.[xml|yaml|yml]$XDG_CONFIG_HOME/clickhouse/config.[xml|yaml|yml](如果未设置XDG_CONFIG_HOME,则使用~/.config/clickhouse/config.[xml|yaml|yml])~/.clickhouse-client/config.[xml|yaml|yml]/etc/clickhouse-client/config.[xml|yaml|yml]
clickhouse-client.xml
- XML
- YAML
环境变量选项
CLICKHOUSE_USER、CLICKHOUSE_PASSWORD 和 CLICKHOUSE_HOST 设置用户名、密码和主机。
命令行参数 --user、--password 或 --host,或者连接字符串 (如果已指定) ,其优先级均高于环境变量。
命令行选项
常规选项
连接选项
除了
--host、--port、--user 和 --password 选项外,客户端还支持连接字符串。