ORC 포맷
ORC 포맷 (Orc Format)
ORC 포맷은 Apache Orc 데이터를 읽고 쓸 수 있게 해줍니다. 직렬화 스키마(Serialization Schema)와 역직렬화 스키마(Deserialization Schema)를 모두 지원하며, FileSystem 커넥터와 함께 사용해 ORC 파일 기반 테이블을 만들 수 있습니다. ORC 포맷의 타입 매핑은 Apache Hive와 호환됩니다.
출처: 문서
본문
- 포맷: 직렬화 스키마 (Serialization Schema)
- 포맷: 역직렬화 스키마 (Deserialization Schema)
Apache Orc 포맷은 Orc 데이터를 읽고 쓸 수 있게 해줍니다.
의존성 (Dependencies)
ORC 포맷을 사용하려면 다음 의존성이 필요합니다. 이는 Maven이나 SBT 같은 빌드 자동화 도구를 사용하는 프로젝트와 SQL JAR 번들을 사용하는 SQL Client 양쪽 모두에 필요합니다.
Maven 의존성
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-orc</artifactId>
<version>2.3.0</version>
</dependency>
SQL Client
Orc 포맷으로 테이블 만들기
다음은 Filesystem 커넥터와 Orc 포맷을 사용해 테이블을 만드는 예시입니다.
CREATE TABLE user_behavior (
user_id BIGINT,
item_id BIGINT,
category_id BIGINT,
behavior STRING,
ts TIMESTAMP(3),
dt STRING
) PARTITIONED BY (dt) WITH (
'connector' = 'filesystem',
'path' = '/tmp/user_behavior',
'format' = 'orc'
)
포맷 옵션 (Format Options)
| 옵션 (Option) | 필수 (Required) | 기본값 (Default) | 타입 (Type) | 설명 (Description) |
|---|---|---|---|---|
format |
required | (none) | String | 사용할 포맷을 지정합니다. 여기서는 'orc'여야 합니다. |
Orc 포맷은 또한 Table properties의 테이블 속성을 지원합니다. 예를 들어 orc.compress=SNAPPY를 구성해 snappy 압축을 활성화할 수 있습니다.
데이터 타입 매핑 (Data Type Mapping)
Orc 포맷의 타입 매핑은 Apache Hive와 호환됩니다. 다음 표는 Flink 타입에서 Orc 타입으로의 매핑을 나열합니다.
| Flink 데이터 타입 | Orc 물리 타입 | Orc 논리 타입 |
|---|---|---|
CHAR |
bytes | CHAR |
VARCHAR |
bytes | VARCHAR |
STRING |
bytes | STRING |
BOOLEAN |
long | BOOLEAN |
BYTES |
bytes | BINARY |
DECIMAL |
decimal | DECIMAL |
TINYINT |
long | BYTE |
SMALLINT |
long | SHORT |
INT |
long | INT |
BIGINT |
long | LONG |
FLOAT |
double | FLOAT |
DOUBLE |
double | DOUBLE |
DATE |
long | DATE |
TIMESTAMP |
timestamp | TIMESTAMP |
ARRAY |
- | LIST |
MAP |
- | MAP |
ROW |
- | STRUCT |