客户端数据包
值 | 名称 | 描述 |
---|---|---|
0 | Hello | 客户端握手开始 |
1 | 查询 | 查询请求 |
2 | 数据 | 包含数据的数据块 |
3 | 取消 | 取消查询 |
4 | Ping | Ping 请求 |
5 | 表状态 | 表状态请求 |
Data
可以被压缩。
Hello
例如,我们使用的是支持 54451
协议版本的 Go Client
v1.10,并希望连接到 default
数据库,使用 default
用户和 secret
密码。
字段 | 类型 | 值 | 描述 |
---|---|---|---|
client_name | 字符串 | "Go Client" | 客户端实现名称 |
version_major | UVarInt | 1 | 客户端主版本 |
version_minor | UVarInt | 10 | 客户端次版本 |
protocol_version | UVarInt | 54451 | TCP 协议版本 |
database | 字符串 | "default" | 数据库名称 |
username | 字符串 | "default" | 用户名 |
password | 字符串 | "secret" | 密码 |
协议版本
协议版本是客户端的 TCP 协议版本。
通常它等于最新的兼容服务器版本,但不要与之混淆。
默认值
所有值都应 **显式设置**,服务器端没有默认值。在客户端,使用 "default"
数据库、"default"
用户名和 ""
(空字符串)密码作为默认值。
查询
字段 | 类型 | 值 | 描述 |
---|---|---|---|
query_id | 字符串 | 1ff-a123 | 查询 ID,可以是 UUIDv4 |
client_info | ClientInfo | 参见类型 | 关于客户端的信息 |
settings | 设置 | 参见类型 | 设置列表 |
secret | 字符串 | secret | 服务器间密钥 |
stage | UVarInt | 2 | 执行到查询阶段 |
compression | UVarInt | 0 | 禁用=0,启用=1 |
body | 字符串 | SELECT 1 | 查询文本 |
客户端信息
字段 | 类型 | 描述 |
---|---|---|
query_kind | 字节 | 无=0,初始=1,次要=2 |
initial_user | 字符串 | 初始用户 |
initial_query_id | 字符串 | 初始查询 ID |
initial_address | 字符串 | 初始地址 |
initial_time | Int64 | 初始时间 |
interface | 字节 | TCP=1,HTTP=2 |
os_user | 字符串 | 操作系统用户 |
client_hostname | 字符串 | 客户端主机名 |
client_name | 字符串 | 客户端名称 |
version_major | UVarInt | 客户端主版本 |
version_minor | UVarInt | 客户端次版本 |
protocol_version | UVarInt | 客户端协议版本 |
quota_key | 字符串 | 配额密钥 |
distributed_depth | UVarInt | 分布式深度 |
version_patch | UVarInt | 客户端补丁版本 |
otel | 布尔值 | 跟踪字段是否存在 |
trace_id | FixedString(16) | 跟踪 ID |
span_id | FixedString(8) | 跨度 ID |
trace_state | 字符串 | 跟踪状态 |
trace_flags | 字节 | 跟踪标志 |
设置
字段 | 类型 | 值 | 描述 |
---|---|---|---|
键 | 字符串 | send_logs_level | 设置的键 |
值 | 字符串 | 跟踪 | 设置的值 |
重要 | 布尔值 | true | 可以忽略或不忽略 |
编码为列表,空键和值表示列表结束。
阶段
值 | 名称 | 描述 |
---|---|---|
0 | FetchColumns | 仅获取列类型 |
1 | WithMergeableState | 直到可合并状态 |
2 | Complete | 直到完全完整(应为默认值) |
数据
字段 | 类型 | 描述 |
---|---|---|
info | BlockInfo | 编码的数据块信息 |
columns | UVarInt | 列数 |
rows | UVarInt | 行数 |
columns | []Column | 包含数据列 |
列
字段 | 类型 | 值 | 描述 |
---|---|---|---|
名称 | 字符串 | foo | 列名 |
类型 | 字符串 | DateTime64(9) | 列类型 |
data | 字节 | ~ | 列数据 |
取消
没有数据包主体。服务器应取消查询。
Ping
没有数据包主体。服务器应 以 pong 响应。