| значение | имя | описание |
|---|
| 0 | Hello | Начало рукопожатия клиента |
| 1 | Запрос | Запрос |
| 2 | Данные | Блок с данными |
| 3 | Cancel | Отмена запроса |
| 4 | Ping | Запрос Ping |
| 5 | TableStatus | Запрос состояния таблицы |
Пакет Data может быть сжат.
Например, мы используем Go Client v1.10, который поддерживает версию протокола 54451, и
хотим подключиться к базе данных default под пользователем default с паролем secret.
| поле | тип | значение | описание |
|---|
| client_name | String | "Go Client" | Название реализации клиента |
| version_major | UVarInt | 1 | Основная версия клиента |
| version_minor | UVarInt | 10 | Минорная версия клиента |
| protocol_version | UVarInt | 54451 | Версия протокола TCP |
| database | String | "default" | Имя базы данных |
| username | String | "default" | Имя пользователя |
| password | String | "secret" | Пароль |
Версия протокола — это версия TCP-протокола клиента.
Обычно она совпадает с последней совместимой ревизией сервера, но
её не следует с ней путать.
Все значения должны быть явно указаны — на стороне сервера значения по умолчанию отсутствуют.
На стороне клиента используйте в качестве значений по умолчанию базу данных "default", имя пользователя "default" и пароль "" (пустую строку).
| поле | тип | значение | описание |
|---|
| query_id | String | 1ff-a123 | Query id, может быть UUIDv4 |
| client_info | ClientInfo | См. тип | Данные о клиенте |
| settings | Настройки | См. тип | Список настроек |
| secret | String | secret | Межсерверный секрет |
| stage | UVarInt | 2 | Выполнять до стадии запроса |
| compression | UVarInt | 0 | Отключено=0, включено=1 |
| body | String | SELECT 1 | Текст запроса |
| поле | тип | описание |
|---|
| query_kind | byte | None=0, Initial=1, Secondary=2 |
| initial_user | String | Первоначальный пользователь |
| initial_query_id | String | Идентификатор исходного запроса |
| initial_address | String | Исходный адрес |
| initial_time | Int64 | Исходное время |
| interface | byte | TCP=1, HTTP=2 |
| os_user | String | Пользователь ОС |
| client_hostname | String | Имя хоста клиента |
| client_name | String | Имя клиента |
| version_major | UVarInt | Основная версия клиента |
| version_minor | UVarInt | Минорная версия клиента |
| protocol_version | UVarInt | Версия протокола клиента |
| quota_key | String | Ключ квоты |
| distributed_depth | UVarInt | Глубина распределения |
| version_patch | UVarInt | Патч-версия клиента |
| otel | Bool | Поля трассировки присутствуют |
| trace_id | FixedString(16) | Trace ID |
| span_id | FixedString(8) | Span ID |
| trace_state | String | Состояние трассировки |
| trace_flags | Byte | Флаги трассировки |
| поле | тип | значение | описание |
|---|
| key | String | send_logs_level | Ключ настройки |
| value | String | trace | Значение настройки |
| important | Bool | true | Можно игнорировать или нет |
Кодируется как список; пустые key и value обозначают конец списка.
| значение | имя | описание |
|---|
| 0 | FetchColumns | Получить только типы столбцов |
| 1 | WithMergeableState | До состояния, пригодного для слияния |
| 2 | Complete | До полной готовности (должно использоваться по умолчанию) |
| поле | тип | описание |
|---|
| info | BlockInfo | Закодированная информация о блоке |
| columns | UVarInt | Число столбцов |
| rows | UVarInt | Число строк |
| columns | []Столбец | Столбцы с данными |
| поле | тип | значение | описание |
|---|
| name | String | foo | Имя столбца |
| type | String | DateTime64(9) | Тип столбца |
| data | bytes | ~ | Данные столбца |
У пакета нет тела. Сервер должен отменить запрос.
Без тела пакета. Сервер должен ответить пакетом pong.Последнее изменение 10 июня 2026 г.