Skip to main content

설명

Apache Arrow에는 두 가지 기본 제공 열 지향 저장 포맷이 있습니다. ClickHouse는 이러한 포맷의 읽기와 쓰기를 지원합니다. Arrow는 Apache Arrow의 “file mode” 형식이며, 메모리 내에서 임의 접근이 가능하도록 설계되었습니다.

데이터 타입 매핑

아래 표는 지원되는 데이터 타입과 INSERT 및 SELECT 쿼리에서 해당 타입이 ClickHouse 데이터 타입에 어떻게 매핑되는지를 보여줍니다. 배열은 중첩될 수 있으며, 인수로 Nullable 타입을 사용할 수도 있습니다. Tuple 및 Map 타입도 중첩할 수 있습니다. DICTIONARY 타입은 INSERT 쿼리에서 지원됩니다. 또한 SELECT 쿼리에서는 output_format_arrow_low_cardinality_as_dictionary 설정을 사용해 LowCardinality 타입을 DICTIONARY 타입으로 출력할 수 있습니다. LowCardinality 딕셔너리에는 사용되지 않는 값이 포함될 수 있으므로, 출력된 Arrow DICTIONARY에도 사용되지 않는 값이 포함될 수 있다는 점에 유의하십시오. 지원되지 않는 Arrow 데이터 타입:
  • JSON
  • ENUM.
ClickHouse 테이블 컬럼의 데이터 타입은 해당 Arrow 데이터 필드와 일치할 필요가 없습니다. 데이터를 삽입할 때 ClickHouse는 먼저 위 표에 따라 데이터 타입을 해석한 다음, 데이터를 ClickHouse 테이블 컬럼에 설정된 데이터 타입으로 CAST합니다.

사용 예시

아래 예시에서는 ClickHouse SQL playground에서 제공되는 forex 데이터셋을 사용합니다.

데이터 선택

Playground에서 EUR/USD 환율 데이터 1일치를 선택해 로컬 forex_eurusd.arrow 파일에 저장합니다. HTTP 인터페이스를 통해 Playground에 쿼리하며, 이때 host는 sql-clickhouse.clickhouse.com이고 user는 demo입니다(password는 없음):

파일 다시 읽기

이제 clickhouse-local과 file 테이블 함수를 사용해 로컬 Arrow 파일을 다시 읽어올 수 있습니다. 이 파일은 자체적으로 구조 정보를 포함하고 있으므로 Arrow 형식이 스키마(schema)를 자동으로 추론합니다:
Response

데이터 삽입

Arrow 파일을 ClickHouse 테이블에 삽입하려면 FORMAT Arrow와 함께 clickhouse-client로 파이프하여 전달하십시오:

포맷 설정

마지막 수정일 2026년 8월 14일