Avro
특정 언어에 종속되지 않은 언어 중립적 데이터 직렬화 시스템
- 하둡 Writable의 주요 단점인 언어 이식성을 해결하기 위해 만든 프로젝트
- 다른 시스템과 비슷하게 언어 독립 스키마로 기술
- 하지만 특정 스키마를 사전에 알지 못하더라도 해당 스키마에 부합하는 데이터를 읽고 쓸 수 있음
- 에이브로의 스키마는 JSON으로 작성
- 데이터는 바이너리 포맷으로 인코딩
- 스키마 해석 기능
- 데이터 I/O를 하는 스키마가 서로 같지 않아도 됨
- 스키마 변형 매커니즘 -> 새로운 필드는 적당히 무시하고 기존 데이터 작업처럼 처리 가능
- 하둡의 시퀀스 파일과 유사한 연속적 객체를 위한 객체 컨테이너 포멧을 제공
- 에이브로 데이터 파일은 스키마가 저장된 메타데이터 섹션을 포함하고 있어 자신을 설명하는 파일이 됨
- 압축과 분할 기능 제공
- 자료형과 스키마
- 기본 자료형 : null, boolean, Int, long, float, double, bytes(순차8비트 부호 없는 바이트), string (순차 유니코드 문자)
- 복합 자료형 : array, map, record(임의의 자료형으로 명명된 필드의 집합), enum(명명된 값의 집합), fixed(고정길이의 8비트 부호 없는 바이트), union