跳到主要内容
跳到主要内容

客户端数据包

valuenamedescription
0Hello客户端握手开始
1Query查询请求
2Data带有数据的块
3Cancel取消查询
4PingPing 请求
5TableStatus表状态请求

Data 可以被压缩。

Hello

例如,我们是 Go Client v1.10,支持 54451 协议版本,并希望连接到 default 数据库,使用 default 用户和 secret 密码。

fieldtypevaluedescription
client_nameString"Go Client"客户端实现名称
version_majorUVarInt1客户端主版本
version_minorUVarInt10客户端次版本
protocol_versionUVarInt54451TCP 协议版本
databaseString"default"数据库名称
usernameString"default"用户名
passwordString"secret"密码

协议版本

协议版本是客户端的 TCP 协议版本。

通常它等于最新兼容的服务器版本,但不应与其混淆。

默认值

所有值应 明确设置,服务器端没有默认值。 在客户端,使用 "default" 数据库、"default" 用户名和 ""(空字符串)作为默认值。

查询

fieldtypevaluedescription
query_idString1ff-a123查询 ID,可以是 UUIDv4
client_infoClientInfo见类型有关客户端的数据
settingsSettings见类型设置列表
secretStringsecret服务器间秘密
stageUVarInt2在查询阶段执行
compressionUVarInt0禁用=0,启用=1
bodyStringSELECT 1查询文本

客户端信息

fieldtypedescription
query_kindbyteNone=0, Initial=1, Secondary=2
initial_userString初始用户
initial_query_idString初始查询 ID
initial_addressString初始地址
initial_timeInt64初始时间
interfacebyteTCP=1, HTTP=2
os_userString操作系统用户
client_hostnameString客户端主机名
client_nameString客户端名称
version_majorUVarInt客户端主版本
version_minorUVarInt客户端次版本
protocol_versionUVarInt客户端协议版本
quota_keyString配额键
distributed_depthUVarInt分布深度
version_patchUVarInt客户端补丁版本
otelBool追踪字段是否存在
trace_idFixedString(16)追踪 ID
span_idFixedString(8)Span ID
trace_stateString追踪状态
trace_flagsByte追踪标志

设置

fieldtypevaluedescription
keyStringsend_logs_level设置的键
valueStringtrace设置的值
importantBooltrue可以忽略与否

以列表编码,空键和空值表示列表的结束。

阶段

valuenamedescription
0FetchColumns仅获取列类型
1WithMergeableState直到可合并状态
2Complete直到完全完整(应为默认)

数据

fieldtypedescription
infoBlockInfo编码块信息
columnsUVarInt列计数
rowsUVarInt行计数
columns[]Column带数据的列

fieldtypevaluedescription
nameStringfoo列名称
typeStringDateTime64(9)列类型
databytes~列数据

取消

没有数据包主体。服务器应取消查询。

Ping

没有数据包主体。服务器应 以 pong 响应