实际上官方文档对于parquet 的定义已经有一些说明了,以下结合源码验证下
参考配置
参考配置参数sabot/kernel/src/main/java/com/dremio/exec/ExecConstants.java
- block size
默认是256m
String PARQUET_BLOCK_SIZE = "store.parquet.block-size";
LongValidator PARQUET_BLOCK_SIZE_VALIDATOR = new LongValidator(PARQUET_BLOCK_SIZE, 256*1024*1024);
- page size
100k
String PARQUET_PAGE_SIZE = "store.parquet.page-size";
LongValidator PARQUET_PAGE_SIZE_VALIDATOR = new LongValidator(PARQUET_PAGE_SIZE, 100000);
- footer 大小
16m
String PARQUET_MAX_FOOTER_LEN = "store.parquet.max_footer_length";
LongValidator PARQUET_MAX_FOOTER_LEN_VALIDATOR = new LongValidator(PARQUET_MAX_FOOTER_LEN, 16*1024*1024);
- 压缩
EnumeratedStringValidator PARQUET_WRITER_COMPRESSION_TYPE_VALIDATOR = new EnumeratedStringValidator(
PARQUET_WRITER_COMPRESSION_TYPE, "snappy", "snappy", "gzip", "none");
- 内存限制
512m
String PARQUET_MEMORY_THRESHOLD = "store.parquet.memory_threshold";
LongValidator PARQUET_MEMORY_THRESHOLD_VALIDATOR = new LongValidator(PARQUET_MEMORY_THRESHOLD, 512*1024*1024);
说明
以上是结合常量的一些配置参数,实际上 sabot/kernel/src/main/java/com/dremio/exec/store/parquet/ParquetRecordWriter.java 中也包含了不少,可以参考对比
参考资料
https://docs.dremio.com/software/data-formats/parquet-files/