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

Пакеты клиента

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

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

fieldtypedescription
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Флаги трассировки

Настройки

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

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

Стадия

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

Данные

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

Столбец

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

Отмена

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

Пинг

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