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

Пакеты клиентской части

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

Data может быть сжата.

Hello

Например, мы используем Go Client v1.10, который поддерживает версию протокола 54451 и хотим подключиться к базе данных default с пользователем default и паролем secret.

fieldtypevaluedescription
client_nameString"Go Client"Имя реализации клиента
version_majorUVarInt1Основная версия клиента
version_minorUVarInt10Небольшая версия клиента
protocol_versionUVarInt54451Версия TCP протокола
databaseString"default"Имя базы данных
usernameString"default"Имя пользователя
passwordString"secret"Пароль

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

Версия протокола — это версия TCP протокола клиента.

Обычно она совпадает с последней совместимой ревизией сервера, но не следует путать их.

По умолчанию

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

Запрос

fieldtypevaluedescription
query_idString1ff-a123ID запроса, может быть 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)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~Данные столбца

Отмена

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

Пинг

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