Saltar al contenido principal
El motor de tabla ArrowFlight permite a ClickHouse leer de y escribir en conjuntos de datos remotos mediante el protocolo Apache Arrow Flight. Esta integración permite a ClickHouse interactuar con servidores externos compatibles con Flight en formato Arrow columnar y con alto rendimiento.

Crear una tabla

CREATE TABLE [IF NOT EXISTS] [db.]table_name (name1 [type1], name2 [type2], ...)
    ENGINE = ArrowFlight('host:port', 'dataset_name' [, 'username', 'password']);
Parámetros del motor
  • host:port — Dirección del servidor remoto de Arrow Flight. Si se omite el puerto, se usa el puerto predeterminado 8815. String.
  • dataset_name — Identificador del conjunto de datos en el servidor de Flight (se usa como descriptor PATH o en una consulta SELECT *, según la configuración arrow_flight_request_descriptor_type). String.
  • username — Nombre de usuario que se usará con autenticación básica de estilo HTTP. String.
  • password — Contraseña que se usará con autenticación básica de estilo HTTP. String.
Si se omiten username y password, significa que no se usa autenticación (eso solo funcionará si el servidor de Arrow Flight permite el acceso sin autenticación). La lista de columnas es opcional: si se omite, el esquema se infiere desde el servidor remoto de Arrow Flight mediante GetSchema.

Colecciones con nombre

El motor admite colecciones con nombre para almacenar parámetros de conexión:
CREATE TABLE remote_flight_data
    ENGINE = ArrowFlight(named_collection_name);
Parámetros de la colección con nombre:
ParámetroObligatorioPredeterminadoDescripción
host or hostnameNo""Nombre de host del servidor.
portPuerto del servidor.
datasetNombre del conjunto de datos o descriptor.
use_basic_authenticationNotrueHabilita la autenticación básica.
user or usernameSi la autenticación está habilitadaNombre de usuario para la autenticación.
passwordNo""Contraseña para la autenticación.
enable_sslNofalseHabilita el cifrado TLS.
ssl_caNo""Ruta al archivo del certificado de la CA para la verificación TLS.
ssl_override_hostnameNo""Sobrescribe el nombre de host que se comprueba durante la verificación TLS.

Configuración

  • arrow_flight_request_descriptor_type — Controla cómo se envía el nombre del conjunto de datos al servidor de Flight. Valores posibles: path (predeterminado; se envía como un descriptor PATH) o command (se envía como un descriptor CMD con SELECT * FROM <dataset>). Usa command para servidores de Flight que esperan comandos SQL (por ejemplo, Dremio).

Ejemplo de uso

Lectura de datos desde un servidor remoto de Arrow Flight:
CREATE TABLE remote_flight_data
(
    id UInt32,
    name String,
    value Float64
) ENGINE = ArrowFlight('127.0.0.1:9005', 'sample_dataset');

SELECT * FROM remote_flight_data ORDER BY id;
┌─id─┬─name────┬─value─┐
│  1 │ foo     │ 42.1  │
│  2 │ bar     │ 13.3  │
│  3 │ baz     │ 77.0  │
└────┴─────────┴───────┘
Inserción de datos en un servidor remoto de Arrow Flight:
INSERT INTO remote_flight_data VALUES (4, 'qux', 99.9);

Notas

  • Si se especifican columnas en la sentencia CREATE TABLE, deben coincidir con el esquema devuelto por el servidor de Flight.
  • Si se omiten las columnas, el esquema se infiere automáticamente del servidor remoto.
  • Se admiten tanto la lectura (SELECT) como la escritura (INSERT).
  • La configuración arrow_flight_request_descriptor_type controla si el nombre del conjunto de datos se envía como un descriptor PATH o como un descriptor CMD que encapsula una consulta SELECT *.

Véase también

Última modificación el 29 de junio de 2026