Pular para o conteúdo principal
O motor de tabela ArrowFlight permite que o ClickHouse leia de e grave em conjuntos de dados remotos por meio do protocolo Apache Arrow Flight. Essa integração permite que o ClickHouse interaja com servidores externos com suporte a Flight no formato colunar Arrow, com alto desempenho.

Criando uma tabela

CREATE TABLE [IF NOT EXISTS] [db.]table_name (name1 [type1], name2 [type2], ...)
    ENGINE = ArrowFlight('host:port', 'dataset_name' [, 'username', 'password']);
Parâmetros do motor
  • host:port — Endereço do servidor Arrow Flight remoto. Se a porta for omitida, a porta padrão 8815 será usada. String.
  • dataset_name — Identificador do conjunto de dados no servidor Flight (usado como um descritor PATH ou em uma consulta SELECT *, dependendo da configuração arrow_flight_request_descriptor_type). String.
  • username — Nome de usuário para autenticação HTTP básica. String.
  • password — Senha para autenticação HTTP básica. String.
Se username e password forem omitidos, a autenticação não será usada (isso só funciona se o servidor Arrow Flight permitir acesso sem autenticação). A lista de colunas é opcional — se omitida, o esquema é inferido do servidor Arrow Flight remoto via GetSchema.

Coleções nomeadas

O motor oferece suporte a coleções nomeadas para armazenar parâmetros de conexão:
CREATE TABLE remote_flight_data
    ENGINE = ArrowFlight(named_collection_name);
Parâmetros da coleção nomeada:
ParâmetroObrigatórioPadrãoDescrição
host or hostnameNão""Hostname do servidor.
portSimPorta do servidor.
datasetSimNome do conjunto de dados ou descritor.
use_basic_authenticationNãotrueHabilita a autenticação básica.
user or usernameSe a autenticação estiver habilitadaNome de usuário para autenticação.
passwordNão""Senha para autenticação.
enable_sslNãofalseHabilita a criptografia TLS.
ssl_caNão""Caminho para o arquivo do certificado da CA para verificação TLS.
ssl_override_hostnameNão""Substitui o hostname verificado durante a verificação TLS.

Configurações

  • arrow_flight_request_descriptor_type — Controla como o nome do conjunto de dados é enviado ao servidor Flight. Valores possíveis: path (padrão; envia como um descritor PATH) ou command (envia como um descritor CMD com SELECT * FROM <dataset>). Use command em servidores Flight que esperam comandos SQL (por exemplo, Dremio).

Exemplo de uso

Leitura de dados de um servidor remoto do 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  │
└────┴─────────┴───────┘
Inserindo dados em um servidor remoto do Arrow Flight:
INSERT INTO remote_flight_data VALUES (4, 'qux', 99.9);

Notas

  • Se colunas forem especificadas na instrução CREATE TABLE, elas deverão corresponder ao esquema retornado pelo servidor Flight.
  • Se as colunas forem omitidas, o esquema será inferido automaticamente do servidor remoto.
  • Há suporte tanto para leitura (SELECT) quanto para gravação (INSERT).
  • A configuração arrow_flight_request_descriptor_type controla se o nome do conjunto de dados é enviado como um descritor PATH ou como um descritor CMD que encapsula uma consulta SELECT *.

Veja também

Última modificação em 29 de junho de 2026