해결책
과학 컴퓨팅은 로컬 파일에서 객체 스토리지로 이동하고 있었지만, 단일 파일 형식의 거대한 배열은 원격에서 잘라 읽기 어려웠다. 작은 영역을 읽는 데도 네트워크를 통해 너무 많은 데이터를 끌어와야 할 수 있었다.
Zarr의 비결은 정신적 모델은 N차원 타입 배열로 유지하면서 저장 단위를 바꾸는 것이었다. 데이터는 각각 결정론적 키를 가진 압축된 청크에 저장되고, 메타데이터는 형태, 타입, 청크 그리드, 코덱을 기술한다.
그 덕분에 이 형식은 분산 컴퓨팅에 적합해졌다. 워커들은 청크를 병렬로 읽을 수 있었고, 서로 다른 구현체들이 Python, Rust, JavaScript, Java, C++ 및 기타 언어를 대상으로 할 수 있었다. 이후 OGC는 Zarr V2.0을 다차원 배열 저장을 위한 커뮤니티 표준으로 승인했다.
이룬 것
모든 청크를 주소 지정 가능하게 만들기
청크 키는 클라우드 객체 스토리지와 바이트 주소 지정 가능 저장소에 자연스럽게 매핑된다.
JSON 메타데이터는 형식을 검사 가능하게 만들고 독립적인 구현체들이 쉽게 파싱할 수 있게 했다.
v3 명세는 확장 지점을 공식화하여 코덱과 청크 그리드가 중앙 재작성 없이 진화할 수 있게 했다.
기후, 현미경, 원격 감지, 시뮬레이션 워크플로의 실제 문제를 해결했다.
클라우드 데이터의 경우, 승리하는 형식은 종종 과학자들이 배열 모델을 포기하지 않으면서 부분 읽기를 저렴하게 만드는 형식이다.
그 후
Zarr는 분석 준비가 된 과학 데이터를 위한 공통 기반이 되었다. 이 프로젝트는 10개 언어의 구현체와 총 약 3.1 PB에 달하는 8개의 공개 데이터셋을 나열하며, OGC의 표준 페이지는 Zarr를 ND 배열 데이터 및 메타데이터를 위한 오픈소스 명세로 설명한다.
근거 확인하기
출처
- Zarr core specification Zarr specs documentation · zarr-specs.readthedocs.io
- Zarr Storage Specification Open Geospatial Consortium · ogc.org
- Zarr Implementations Zarr · zarr.dev
- Zarr Datasets Zarr · zarr.dev