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

더 알아보기 (Learn more)