Перейти к основному содержимому
Перейти к основному содержимому

Клиентские пакеты

значениеназваниеописание
0HelloНачало рукопожатия клиента
1QueryЗапрос на выполнение запроса
2DataБлок с данными
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-a123Идентификатор запроса, может быть UUIDv4
client_infoClientInfoСм. типДанные о клиенте
settingsSettingsСм. типСписок настроек
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)Идентификатор трассировки
span_idFixedString(8)Идентификатор спана
trace_stateStringСостояние трассировки
trace_flagsByteФлаги трассировки

Настройки

полетипзначениеописание
keyStringsend_logs_levelКлюч настройки
valueStringtraceЗначение настройки
importantBooltrueМожет быть проигнорирована или нет

Закодировано в виде списка, пустой ключ и значение обозначают конец списка.

Стадия

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

Данные

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

Колонка

полетипзначениеописание
nameStringfooНазвание колонки
typeStringDateTime64(9)Тип колонки
databytes~Данные колонки

Отмена

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

Ping

Нет тела пакета. Сервер должен ответить pong.