객체 스토리지 파일 형식

객체 스토리지 파일 형식 (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)를 살펴보면 좋아요.