메인 콘텐츠로 건너뛰기
ArrowFlight 테이블 엔진을 사용하면 ClickHouse에서 Apache Arrow Flight 프로토콜을 통해 원격 데이터셋을 읽고 쓸 수 있습니다. 이 통합을 사용하면 ClickHouse에서 외부 Flight 지원 서버와 열 지향 Arrow 형식으로 고성능 상호 작용을 수행할 수 있습니다.

테이블 생성

CREATE TABLE [IF NOT EXISTS] [db.]table_name (name1 [type1], name2 [type2], ...)
    ENGINE = ArrowFlight('host:port', 'dataset_name' [, 'username', 'password']);
엔진 매개변수
  • host:port — 원격 Arrow Flight 서버의 주소입니다. 포트를 생략하면 기본 포트 8815가 사용됩니다. String.
  • dataset_name — Flight 서버의 데이터셋 식별자입니다(arrow_flight_request_descriptor_type 설정에 따라 PATH 디스크립터로 사용되거나 SELECT * 쿼리에서 사용됩니다). String.
  • username — 기본 HTTP 인증용 사용자 이름입니다. String.
  • password — 기본 HTTP 인증용 비밀번호입니다. String.
usernamepassword를 생략하면 인증을 사용하지 않습니다(Arrow Flight 서버가 인증 없이 접근하는 것을 허용하는 경우에만 작동합니다). 컬럼 목록은 선택 사항입니다. 생략하면 GetSchema를 통해 원격 Arrow Flight 서버에서 스키마를 추론합니다.

이름이 지정된 컬렉션

이 엔진은 연결 매개변수를 저장하기 위해 이름이 지정된 컬렉션을 지원합니다:
CREATE TABLE remote_flight_data
    ENGINE = ArrowFlight(named_collection_name);
명명된 컬렉션 매개변수:
매개변수필수기본값설명
host or hostname아니요""서버 호스트명입니다.
port서버 포트입니다.
dataset데이터셋 이름 또는 디스크립터입니다.
use_basic_authentication아니요true기본 인증을 활성화합니다.
user or username인증 활성화 시인증에 사용할 사용자 이름입니다.
password아니요""인증에 사용할 비밀번호입니다.
enable_ssl아니요falseTLS 암호화를 활성화합니다.
ssl_ca아니요""TLS 검증에 사용할 CA 인증서 파일 경로입니다.
ssl_override_hostname아니요""TLS 검증 시 확인할 호스트명을 재정의합니다.

설정

  • arrow_flight_request_descriptor_type — 데이터셋 이름을 Flight 서버로 전송하는 방식을 제어합니다. 가능한 값은 path(기본값, PATH 디스크립터로 전송) 또는 command(SELECT * FROM <dataset>를 포함한 CMD 디스크립터로 전송)입니다. SQL 명령을 기대하는 Flight 서버(예: Dremio)에는 command를 사용하십시오.

사용 예시

원격 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  │
└────┴─────────┴───────┘
원격 Arrow Flight 서버에 데이터를 삽입합니다:
INSERT INTO remote_flight_data VALUES (4, 'qux', 99.9);

참고 사항

  • CREATE TABLE 문에서 컬럼을 지정한 경우, Flight 서버가 반환하는 스키마와 일치해야 합니다.
  • 컬럼을 생략한 경우, 스키마는 원격 server에서 자동으로 추론됩니다.
  • 읽기(SELECT)와 쓰기(INSERT)를 모두 지원합니다.
  • arrow_flight_request_descriptor_type 설정은 데이터셋 이름을 PATH 디스크립터로 보낼지, 또는 SELECT * 쿼리를 감싸는 CMD 디스크립터로 보낼지를 제어합니다.

관련 항목

마지막 수정일 2026년 6월 29일