Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Motor de tabla ArrowFlight

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ámetro Obligatorio Predeterminado Descripción
host or hostname No "" Nombre de host del servidor.
port Puerto del servidor.
dataset No "" Nombre del conjunto de datos o descriptor.
use_basic_authentication No true Habilita la autenticación básica.
user or username Si la autenticación está habilitada Nombre de usuario para la autenticación.
password No "" Contraseña para la autenticación.
enable_ssl No false Habilita el cifrado TLS.
ssl_ca No "" Ruta al archivo del certificado de la CA para la verificación TLS.
ssl_override_hostname No "" 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

Navigation