객체 스토리지 파일 형식
객체 스토리지 파일 형식 (Object storage file formats)
객체 스토리지 커넥터는 기반 데이터 소스가 지정하는 하나 이상의 파일 형식을 지원해요. 이 페이지에서는 ORC와 Parquet 형식의 읽기·쓰기 동작을 구성하는 프로퍼티를 다뤄요.
출처: 문서
본문
객체 스토리지 커넥터는 기반 데이터 소스가 지정하는 하나 이상의 파일 형식을 지원해요.
ORC 형식 구성 프로퍼티 (ORC format configuration properties)
지원되는 객체 스토리지 커넥터가 ORC 파일로 수행하는 읽기·쓰기 동작을 구성하는 데 다음 프로퍼티를 사용해요.
| 프로퍼티 | 설명 | 기본값 |
|---|---|---|
orc.time-zone |
시간대를 선언하지 않은 레거시 ORC 파일의 기본 시간대를 설정해요. | JVM 기본 |
orc.bloom-filters.enabled |
프레디킷 푸시다운(predicate pushdown)을 위한 bloom 필터를 활성화해요. | false |
orc.read-legacy-short-zone-id |
stripe footer에 짧은 zone ID가 있는 ORC 파일의 읽기를 허용해요. | false |
파일 압축·해제는 자동으로 수행되며 일부 세부 사항을 구성할 수 있어요.
ORC 지원 제한 (ORC support limitations)
Trino는 ORC 파일 메타데이터의 Calendar 항목을 무시해요. 그 결과 Trino는 날짜와 타임스탬프를 항상 proleptic Gregorian 달력을 사용해 쓴 값으로 취급해요. 이로 인해 hybrid Julian-Gregorian 달력으로 작성된 1582년 10월 15일 이전의 날짜/시간 값을 읽을 때 잘못된 값이 읽힐 수 있어요.
Parquet 형식 구성 프로퍼티 (Parquet format configuration properties)
지원되는 객체 스토리지 커넥터가 Parquet 파일로 수행하는 읽기·쓰기 동작을 구성하는 데 다음 프로퍼티를 사용해요.
| 프로퍼티 | 설명 | 기본값 |
|---|---|---|
parquet.time-zone |
타임스탬프 값을 특정 시간대에 맞춰 조정해요. Hive 3.1+에서는 UTC로 설정하세요. | JVM 기본 |
parquet.writer.validation-percentage |
쓰기 후 전체 파일을 다시 읽어 검증할 Parquet 파일의 백분율. 해당 카탈로그 세션 프로퍼티는 parquet_optimized_writer_validation_percentage. 이 값을 0으로 설정하면 검증을 끌 수 있어요. |
5 |
parquet.writer.page-size |
Parquet writer가 쓰는 페이지의 최대 크기. 해당 카탈로그 세션 프로퍼티는 parquet_writer_page_size. |
1 MB |
parquet.writer.page-value-count |
Parquet writer가 쓰는 페이지의 최대 값 개수. 해당 카탈로그 세션 프로퍼티는 parquet_writer_page_value_count. |
80000 |
parquet.writer.row-group-size |
Parquet writer가 쓰는 행 그룹(row group)의 최대 크기. 해당 카탈로그 세션 프로퍼티는 parquet_writer_row_group_size. |
128 MB |
parquet.writer.row-group-max-row-count |
Parquet writer가 쓰는 행 그룹의 최대 행 수. 해당 카탈로그 세션 프로퍼티는 parquet_writer_row_group_max_row_count. |
unlimited |
parquet.writer.batch-size |
parquet writer가 한 배치에서 처리하는 최대 행 수. 해당 카탈로그 세션 프로퍼티는 parquet_writer_batch_size. |
10000 |
parquet.writer.delta-length-byte-array-encoding-enabled |
Parquet dictionary 인코딩이 효과적이지 않을 때 BYTE_ARRAY 컬럼에 DELTA_LENGTH_BYTE_ARRAY 인코딩을 사용해요. |
true |
parquet.use-bloom-filter |
Parquet 파일을 읽을 때 프레디킷 푸시다운에 bloom 필터를 사용할지 여부. 기본적으로 bloom 필터 사용을 끄려면 false로 설정해요. 해당 카탈로그 세션 프로퍼티는 parquet_use_bloom_filter. |
true |
parquet.use-column-index |
Parquet column index를 사용해 Parquet 페이지 읽기를 건너뛰어요. 해당 카탈로그 세션 프로퍼티는 parquet_use_column_index. Delta Lake와 Hive 커넥터만 지원해요. |
true |
parquet.ignore-statistics |
손상되거나 잘못된 통계가 있는 파일도 쿼리할 수 있도록 Parquet 통계를 무시해요. 해당 카탈로그 세션 프로퍼티는 parquet_ignore_statistics. |
false |
parquet.max-read-block-row-count |
한 배치에서 읽는 최대 행 수를 설정해요. 해당 카탈로그 세션 프로퍼티는 parquet_max_read_block_row_count이며 Delta Lake, Hive, Iceberg, Hudi 커넥터가 지원해요. |
8192 |
parquet.small-file-threshold |
이보다 작으면 Parquet 파일 전체를 읽는 데이터 크기. 해당 카탈로그 세션 프로퍼티는 parquet_small_file_threshold. |
3MB |
parquet.experimental.vectorized-decoding.enabled |
parquet 파일을 더 빠르게 디코딩하기 위해 Java Vector API(SIMD) 사용을 활성화해요. 해당 카탈로그 세션 프로퍼티는 parquet_vectorized_decoding_enabled. |
true |
parquet.max-footer-read-size |
Parquet 파일 footer의 최대 허용 읽기 크기를 설정해요. 이보다 큰 footer를 가진 파일을 읽으려 하면 오류가 발생해요. 잘못 구성된 Parquet writer 때문에 워커가 full GC에 들어가거나 크래시하는 것을 방지해요. | 15MB |
parquet.footer-read-size |
초기 파일 끝(foot)-읽기에 사용할 예상 Parquet footer 크기를 설정해요. 실제 footer가 더 크면 Trino는 실제 크기로 footer를 다시 읽어요. | 48kB |
parquet.max-page-read-size |
읽기 중 parquet 페이지의 최대 허용 크기. 이보다 큰 페이지가 있는 파일은 읽을 때 예외가 발생해요. | 500MB |
파일 압축·해제는 자동으로 수행되며 일부 세부 사항을 구성할 수 있어요.
더 알아보기 (Learn more)
ORC·Parquet 파일 형식의 구성을 배웠어요. 이어서 함수와 연산자(Functions and operators)를 살펴보면 좋아요.