Перейти к основному содержанию
значениеимяописание
0HelloНачало рукопожатия клиента
1ЗапросЗапрос
2ДанныеБлок с данными
3CancelОтмена запроса
4PingЗапрос Ping
5TableStatusЗапрос состояния таблицы
Пакет Data может быть сжат.

Hello

Например, мы используем Go Client v1.10, который поддерживает версию протокола 54451, и хотим подключиться к базе данных default под пользователем default с паролем secret.
полетипзначениеописание
client_nameString"Go Client"Название реализации клиента
version_majorUVarInt1Основная версия клиента
version_minorUVarInt10Минорная версия клиента
protocol_versionUVarInt54451Версия протокола TCP
databaseString"default"Имя базы данных
usernameString"default"Имя пользователя
passwordString"secret"Пароль

Версия протокола

Версия протокола — это версия TCP-протокола клиента. Обычно она совпадает с последней совместимой ревизией сервера, но её не следует с ней путать.

Значения по умолчанию

Все значения должны быть явно указаны — на стороне сервера значения по умолчанию отсутствуют. На стороне клиента используйте в качестве значений по умолчанию базу данных "default", имя пользователя "default" и пароль "" (пустую строку).

Запрос

полетипзначениеописание
query_idString1ff-a123Query id, может быть UUIDv4
client_infoClientInfoСм. типДанные о клиенте
settingsНастройкиСм. типСписок настроек
secretStringsecretМежсерверный секрет
stageUVarInt2Выполнять до стадии запроса
compressionUVarInt0Отключено=0, включено=1
bodyStringSELECT 1Текст запроса

Информация о клиенте

полетипописание
query_kindbyteNone=0, Initial=1, Secondary=2
initial_userStringПервоначальный пользователь
initial_query_idStringИдентификатор исходного запроса
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)Trace ID
span_idFixedString(8)Span ID
trace_stateStringСостояние трассировки
trace_flagsByteФлаги трассировки

Настройки

полетипзначениеописание
keyStringsend_logs_levelКлюч настройки
valueStringtraceЗначение настройки
importantBooltrueМожно игнорировать или нет
Кодируется как список; пустые key и value обозначают конец списка.

Этап

значениеимяописание
0FetchColumnsПолучить только типы столбцов
1WithMergeableStateДо состояния, пригодного для слияния
2CompleteДо полной готовности (должно использоваться по умолчанию)

Данные

полетипописание
infoBlockInfoЗакодированная информация о блоке
columnsUVarIntЧисло столбцов
rowsUVarIntЧисло строк
columns[]СтолбецСтолбцы с данными

Столбец

полетипзначениеописание
nameStringfooИмя столбца
typeStringDateTime64(9)Тип столбца
databytes~Данные столбца

Cancel

У пакета нет тела. Сервер должен отменить запрос.

Ping

Без тела пакета. Сервер должен ответить пакетом pong.
Последнее изменение 10 июня 2026 г.