> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> El motor permite consultar e insertar en conjuntos de datos remotos mediante Apache Arrow Flight.

# 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](https://arrow.apache.org/docs/format/Flight.html).
Esta integración permite a ClickHouse interactuar con servidores externos compatibles con Flight en formato Arrow columnar y con alto rendimiento.

<div id="creating-a-table">
  ## Crear una tabla
</div>

```sql theme={null}
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](/es/reference/data-types/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](/es/reference/data-types/string).
* `username` — Nombre de usuario que se usará con autenticación básica de estilo HTTP. [String](/es/reference/data-types/string).
* `password` — Contraseña que se usará con autenticación básica de estilo HTTP. [String](/es/reference/data-types/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`.

<div id="named-collections">
  ## Colecciones con nombre
</div>

El motor admite [colecciones con nombre](/es/concepts/features/configuration/server-config/named-collections) para almacenar parámetros de conexión:

```sql theme={null}
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`                     | Sí                                  | —              | Puerto del servidor.                                                        |
| `dataset`                  | Sí                                  | —              | 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. |

<div id="settings">
  ## Configuración
</div>

* `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).

<div id="usage-example">
  ## Ejemplo de uso
</div>

Lectura de datos desde un servidor remoto de Arrow Flight:

```sql theme={null}
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;
```

```text theme={null}
┌─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:

```sql theme={null}
INSERT INTO remote_flight_data VALUES (4, 'qux', 99.9);
```

<div id="notes">
  ## Notas
</div>

* 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 *`.

<div id="see-also">
  ## Véase también
</div>

* [función de tabla arrowFlight](/es/reference/functions/table-functions/arrowflight)
* [Interfaz de Arrow Flight](/es/concepts/features/interfaces/arrowflight)
* [especificación de Apache Arrow Flight SQL](https://arrow.apache.org/docs/format/FlightSql.html)
* [formato Arrow en ClickHouse](/es/reference/formats/Arrow/Arrow)
