ORC
| 입력 | 출력 | 별칭 |
|---|---|---|
| ✔ | ✔ |
설명
Apache ORC는 Hadoop 생태계에서 널리 사용되는 열 지향 저장 형식입니다.
데이터 타입 매핑
아래 표는 INSERT 및 SELECT 쿼리에서 지원되는 ORC 데이터 타입과 이에 대응하는 ClickHouse 데이터 타입을 비교합니다.
ORC data type (INSERT) | ClickHouse data type | ORC data type (SELECT) |
|---|---|---|
Boolean | UInt8 | Boolean |
Tinyint | Int8/UInt8/Enum8 | Tinyint |
Smallint | Int16/UInt16/Enum16 | Smallint |
Int | Int32/UInt32 | Int |
Bigint | Int64/UInt32 | Bigint |
Float | Float32 | Float |
Double | Float64 | Double |
Decimal | Decimal | Decimal |
Date | Date32 | Date |
Timestamp | DateTime64 | Timestamp |
String, Char, Varchar, Binary | String | Binary |
List | Array | List |
Struct | Tuple | Struct |
Map | Map | Map |
Int | IPv4 | Int |
Binary | IPv6 | Binary |
Binary | Int128/UInt128/Int256/UInt256 | Binary |
Binary | Decimal256 | Binary |
- 그 외 타입은 지원되지 않습니다.
- Array 타입은 중첩될 수 있고, 인자로 널 허용(Nullable) 타입 값을 가질 수 있습니다.
Tuple및Map타입 역시 중첩될 수 있습니다. - ClickHouse 테이블 컬럼의 데이터 타입은 해당 ORC 데이터 필드와 일치할 필요가 없습니다. 데이터를 삽입할 때 ClickHouse는 위 표에 따라 데이터 타입을 해석한 다음, ClickHouse 테이블 컬럼에 설정된 데이터 타입으로 데이터를 형 변환합니다.
사용 예
데이터 삽입
다음 데이터가 포함된 ORC 파일 football.orc을 사용합니다:
데이터를 삽입합니다:
데이터 읽기
ORC 형식을 사용해 데이터를 읽습니다:
팁
ORC는 터미널에서 사람이 읽을 수 있는 텍스트 형식으로 표시되지 않는 바이너리 포맷입니다. ORC 파일로 출력하려면 INTO OUTFILE을 사용하십시오.
포맷 설정
| 설정 | 설명 | 기본값 |
|---|---|---|
output_format_arrow_string_as_string | String 컬럼에 대해 Binary 대신 Arrow String 타입을 사용합니다. | false |
output_format_orc_compression_method | 출력 ORC 포맷에서 사용되는 압축 방법입니다. | none |
input_format_arrow_case_insensitive_column_matching | Arrow 컬럼을 ClickHouse 컬럼과 매칭할 때 대소문자를 구분하지 않습니다. | false |
input_format_arrow_allow_missing_columns | Arrow 데이터를 읽을 때 누락된 컬럼을 허용합니다. | false |
input_format_arrow_skip_columns_with_unsupported_types_in_schema_inference | Arrow 포맷에 대해 스키마 추론(schema inference)을 수행할 때, 지원되지 않는 타입의 컬럼은 건너뛰도록 허용합니다. | false |
Hadoop과 데이터를 교환하려면 HDFS table engine을 사용할 수 있습니다.