과학 컴퓨팅은 로컬 파일에서 객체 스토리지로 이동하고 있었지만, 단일 파일 형식의 거대한 배열은 원격에서 잘라 읽기 어려웠다. 작은 영역을 읽는 데도 네트워크를 통해 너무 많은 데이터를 끌어와야 할 수 있었다.

Zarr의 비결은 정신적 모델은 N차원 타입 배열로 유지하면서 저장 단위를 바꾸는 것이었다. 데이터는 각각 결정론적 키를 가진 압축된 청크에 저장되고, 메타데이터는 형태, 타입, 청크 그리드, 코덱을 기술한다.

그 덕분에 이 형식은 분산 컴퓨팅에 적합해졌다. 워커들은 청크를 병렬로 읽을 수 있었고, 서로 다른 구현체들이 Python, Rust, JavaScript, Java, C++ 및 기타 언어를 대상으로 할 수 있었다. 이후 OGC는 Zarr V2.0을 다차원 배열 저장을 위한 커뮤니티 표준으로 승인했다.

모든 청크를 주소 지정 가능하게 만들기

청크 키는 클라우드 객체 스토리지와 바이트 주소 지정 가능 저장소에 자연스럽게 매핑된다.

JSON 메타데이터는 형식을 검사 가능하게 만들고 독립적인 구현체들이 쉽게 파싱할 수 있게 했다.

v3 명세는 확장 지점을 공식화하여 코덱과 청크 그리드가 중앙 재작성 없이 진화할 수 있게 했다.

기후, 현미경, 원격 감지, 시뮬레이션 워크플로의 실제 문제를 해결했다.

클라우드 데이터의 경우, 승리하는 형식은 종종 과학자들이 배열 모델을 포기하지 않으면서 부분 읽기를 저렴하게 만드는 형식이다.

Zarr는 분석 준비가 된 과학 데이터를 위한 공통 기반이 되었다. 이 프로젝트는 10개 언어의 구현체와 총 약 3.1 PB에 달하는 8개의 공개 데이터셋을 나열하며, OGC의 표준 페이지는 Zarr를 ND 배열 데이터 및 메타데이터를 위한 오픈소스 명세로 설명한다.

근거 확인하기

출처

  1. Zarr core specification Zarr specs documentation · zarr-specs.readthedocs.io
  2. Zarr Storage Specification Open Geospatial Consortium · ogc.org
  3. Zarr Implementations Zarr · zarr.dev
  4. Zarr Datasets Zarr · zarr.dev