| valor | nombre | descripción |
|---|---|---|
| 0 | Hello | Inicio del handshake del cliente |
| 1 | consulta | Solicitud de consulta |
| 2 | Data | Bloque con datos |
| 3 | Cancel | Cancelación de consulta |
| 4 | Ping | Solicitud de ping |
| 5 | TableStatus | Solicitud de estado de la tabla |
El paquete Data puede comprimirse.
Hello
Por ejemplo, supongamos que usamos Go Client v1.10, que admite la versión de protocolo 54451, y
queremos conectarnos a la base de datos default con el usuario default y la contraseña secret.
| campo | tipo | valor | descripción |
|---|---|---|---|
| client_name | String | "Go Client" |
Nombre de la implementación del cliente |
| version_major | UVarInt | 1 |
Versión principal del cliente |
| version_minor | UVarInt | 10 |
Versión secundaria del cliente |
| protocol_version | UVarInt | 54451 |
Versión del protocolo TCP |
| database | String | "default" |
Nombre de la base de datos |
| username | String | "default" |
Nombre de usuario |
| password | String | "secret" |
Contraseña |
Versión del protocolo
La versión del protocolo es la versión del protocolo TCP del cliente.
Por lo general, coincide con la última revisión compatible del servidor, pero no debe confundirse con ella.
Valores predeterminados
Todos los valores deben establecerse explícitamente; no hay valores predeterminados del lado del servidor.
Del lado del cliente, use la base de datos "default", el nombre de usuario "default" y la contraseña "" (cadena vacía)
como valores predeterminados.
Consulta
| campo | tipo | valor | descripción |
|---|---|---|---|
| query_id | String | 1ff-a123 |
ID de la consulta, puede ser UUIDv4 |
| client_info | ClientInfo | Ver tipo | Datos del cliente |
| settings | Configuración | Ver tipo | Lista de configuraciones |
| secret | String | secret |
Secreto entre servidores |
| stage | UVarInt | 2 |
Ejecutar hasta la etapa de la consulta |
| compression | UVarInt | 0 |
Desactivado=0, habilitado=1 |
| body | String | SELECT 1 |
Texto de la consulta |
Información del cliente
| field | type | description |
|---|---|---|
| query_kind | byte | None=0, Initial=1, Secondary=2 |
| initial_user | String | Usuario inicial |
| initial_query_id | String | ID de consulta inicial |
| initial_address | String | Dirección inicial |
| initial_time | Int64 | Tiempo inicial |
| interface | byte | TCP=1, HTTP=2 |
| os_user | String | Usuario del SO |
| client_hostname | String | Nombre de host del cliente |
| client_name | String | Nombre del cliente |
| version_major | UVarInt | Versión principal del cliente |
| version_minor | UVarInt | Versión secundaria del cliente |
| protocol_version | UVarInt | Versión del protocolo del cliente |
| quota_key | String | Clave de cuota |
| distributed_depth | UVarInt | Profundidad de Distributed |
| version_patch | UVarInt | Versión de parche del cliente |
| otel | Bool | Los campos de traza están presentes |
| trace_id | FixedString(16) | ID de traza |
| span_id | FixedString(8) | ID de span |
| trace_state | String | Estado del trazado |
| trace_flags | Byte | Indicadores de trazado |
Configuración
| campo | tipo | valor | descripción |
|---|---|---|---|
| key | String | send_logs_level |
Clave de la configuración |
| value | String | trace |
Valor de la configuración |
| important | Bool | true |
Si se puede ignorar o no |
Se codifica como una lista; una clave y un valor en blanco indican el final de la lista.
Etapa
| valor | nombre | descripción |
|---|---|---|
| 0 | FetchColumns | Solo obtiene los tipos de las columnas |
| 1 | WithMergeableState | Hasta el estado fusionable |
| 2 | Complete | Hasta la completitud plena (debería ser el valor predeterminado) |
Data
| campo | tipo | descripción |
|---|---|---|
| info | BlockInfo | Información codificada del bloque |
| columns | UVarInt | Cantidad de columnas |
| rows | UVarInt | Cantidad de filas |
| columns | []Columna | Columnas con datos |
Columna
| campo | tipo | valor | descripción |
|---|---|---|---|
| name | String | foo |
Nombre de la columna |
| type | String | DateTime64(9) |
Tipo de la columna |
| data | bytes | ~ | Datos de la columna |
Cancel
No tiene cuerpo de paquete. El servidor debe cancelar la consulta.
Ping
Sin cuerpo del paquete. El servidor debe responder con pong.