위키득계정 ↗
기술

Apache Avro

Apache Avro기술
프로젝트 계열
Apache
스키마 표현
JSON
지원 인코딩
바이너리와 JSON
파일 구성
스키마와 객체 블록
Apache Avro는 스키마를 이용해 구조화된 자료를 직렬화하는 형식이다. 자료를 쓸 때의 스키마를 함께 사용해 읽으며, 객체 컨테이너 파일과 원격 호출을 위한 규칙을 제공한다.

스키마와 바이너리 자료

바이너리 자료 자체에는 필드 이름과 자료형 정보가 포함되지 않는다. 따라서 값을 올바르게 해석하려면 자료를 쓸 때 사용한 스키마가 필요하다.

객체 컨테이너 파일

컨테이너 파일은 파일의 스키마에 맞춰 쓴 객체들을 블록에 저장한다. 블록을 압축할 수 있고 동기화 표식을 사용해 MapReduce 같은 처리에서 파일을 나누어 읽도록 돕는다.

읽기와 쓰기 스키마의 차이

읽는 프로그램이 기대하는 스키마와 저장 당시 스키마가 다를 수 있다. Avro는 이 차이를 해석하는 규칙을 두며, 필드의 기본값이나 호환되는 자료형 등 정해진 조건에 따라 읽기 결과를 결정한다.

관련 문서

Apache Parquet / Apache ORC / Apache Arrow / MapReduce / 데이터베이스 스키마 / 데이터 압축