Parquet 파일 구조
Header
header, 하나이상의 블럭, footer로 구성된다. header,footer에는 4 byte magic number를 포함하고 있다. 이는 파일이 parquet format임을 알려준다. 메타데이터는 footer에 저장되어있다.
Data Block
Page에는 비슷한 값들을 포함하므로 압축하기가 쉽다.
Footer
다음의 인코딩 방식이 있다.
- 델타 인코딩(값의 차이 저장)
- 연속길이 인코딩(동일한 값이 연속으로 나오면 그 값과 빈도 저장)
- 사전 인코딩(값의 사전을 만들어 인코딩한 후 사전의 인덱스를 나타내는 정수로 그 값을 저장)
- bit packing(작은 몇개의 값을 한 바이트에 저장)
인코딩된 페이지에 다음의 압축 알고리즘을 적용할 수 있다.
- Snappy
- gzip
- LZO