객체 스토리지

객체 스토리지 (Object storage)

객체 스토리지 시스템은 데이터 레이크(lake)나 레이크하우스(lakehouse)를 만드는 데 흔히 사용돼요. 객체를 구조화된 방식으로 저장하고, 예를 들어 HTTP 기반 API로 접근하는 방법을 제공해요.

출처: 문서

본문

객체 스토리지 시스템은 데이터 레이크나 레이크하우스를 만드는 데 흔히 사용돼요. 이 시스템들은 객체를 구조화된 방식으로 저장하고, 예를 들어 HTTP를 통한 API로 접근하는 방법을 제공해요. 객체는 ORC, Parquet 등 다양한 형식의 파일이에요. 객체 스토리지 시스템은 퍼블릭 클라우드 제공자와 다른 공급업체의 서비스로 제공되거나, 상용·오픈소스 제품으로 직접 호스팅(self-host)할 수도 있어요.

객체 스토리지 커넥터 (Object storage connectors)

Trino는 객체 스토리지와 원격 파일시스템 스토리지의 파일에 직접 접근해요. 다음 커넥터들은 데이터 파일을 읽고 쓰는 데 이 직접 접근 방식을 사용해요.

  • Delta Lake 커넥터
  • Hive 커넥터
  • Hudi 커넥터
  • Iceberg 커넥터

이 커넥터들은 모두 이러한 객체 스토리지 시스템에서 사용되는 다양한 프로토콜과 형식을 지원하며, 메타데이터 가용성에 대한 요구 사항도 각각 달라요.

구성 (Configuration)

기본적으로 카탈로그에는 어떤 파일시스템 지원도 활성화되어 있지 않아요. 카탈로그에서 서로 다른 파일시스템을 지원하도록 다음 프로퍼티 중 하나를 선택해 구성해야 해요. 각 카탈로그는 파일시스템 지원 하나만 사용할 수 있어요.

프로퍼티 설명
fs.azure.enabled Azure Storage 지원의 네이티브 구현을 활성화해요. 기본값은 false.
fs.gcs.enabled Google Cloud Storage 지원의 네이티브 구현을 활성화해요. 기본값은 false.
fs.s3.enabled S3 스토리지 지원의 네이티브 구현을 활성화해요. 기본값은 false.
fs.hadoop.enabled HDFS 라이브러리를 사용한 HDFS 지원을 활성화해요. 기본값은 false.

네이티브 파일시스템 지원 (Native file system support)

Trino에는 다음 시스템(및 호환 대체)에 접근하는 최적화된 구현이 포함돼 있어요.

  • Azure Storage 파일시스템 지원
  • Google Cloud Storage 파일시스템 지원
  • S3 파일시스템 지원
  • 로컬 파일시스템 지원

네이티브 지원은 네 커넥터 모두에서 사용 가능하며, 사용하려면 활성화해야 해요.

레거시 파일시스템 지원 (Legacy file system support)

HDFS 라이브러리는 Hadoop Distributed File System(HDFS)에 접근하는 데 사용돼요.

  • HDFS 파일시스템 지원

fs.hadoop.enabled와 더 이상 쓰이지 않는 hive.* 프로퍼티를 통한 레거시 객체 스토리지 지원은 더 이상 사용할 수 없어요. Azure Storage, Google Cloud Storage, S3에는 네이티브 구현을 사용하세요. 이전 카탈로그 구성을 마이그레이션하려면 다음 가이드를 참고하세요.

  • Azure Storage: hive.azure.* 프로퍼티에서 마이그레이션
  • Google Cloud Storage: hive.gcs.* 프로퍼티에서 마이그레이션
  • S3: hive.s3.* 프로퍼티에서 마이그레이션

기타 객체 스토리지 지원 (Other object storage support)

Trino는 객체 스토리지에 대해 다음 추가 지원과 기능도 제공해요.

  • 파일시스템 캐시(File system cache)
  • 메타스토어(Metastores)
  • 객체 스토리지 파일 형식(Object storage file formats)

더 알아보기 (Learn more)

객체 스토리지의 전체 그림을 봤어요. 이어서 Azure Storage 파일시스템 지원부터 각 파일시스템 지원을 자세히 살펴보면 좋아요.