Skip to main content

설명

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

데이터 타입 매핑

아래 표는 지원되는 데이터 타입과 INSERTSELECT 쿼리에서 해당 타입이 ClickHouse 데이터 타입에 어떻게 매핑되는지를 보여줍니다. 배열은 중첩될 수 있으며, 인수로 Nullable 타입을 사용할 수도 있습니다. TupleMap 타입도 중첩할 수 있습니다. 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-localfile 테이블 함수를 사용해 로컬 Arrow 파일을 다시 읽어올 수 있습니다. 이 파일은 자체적으로 구조 정보를 포함하고 있으므로 Arrow 형식이 스키마(schema)를 자동으로 추론합니다:
Response

데이터 삽입

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

포맷 설정

마지막 수정일 2026년 7월 27일