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

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

значениеимяописание
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-a123ID запроса, может быть UUIDv4
client_infoClientInfoСм. типДанные о клиенте
settingsSettingsСм. типСписок настроек
secretStringsecretСекрет между серверами
stageUVarInt2Выполнять до стадии запроса
compressionUVarInt0Отключен=0, включен=1
bodyStringSELECT 1Текст запроса

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

полетипописание
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)ID диапазона
trace_stateStringСостояние трассировки
trace_flagsByteФлаги трассировки

Настройки

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

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

Стадия

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

Данные

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

Колонка

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

Отмена

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

Ping

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