Using Apache Arrow, Calcite, and Parquet to Build a Relational Cache

https://www.slideshare.net/dremio/using-apache-arrow-calcite-and-parquet-to-build-a-relational-cache-81440786

Types of Caching

Relational Caching相比于手工维护视图的好处

Pasted-Image-20231225104505.png

Dremio Relational Caching架构图,如何选择MV则是由Calcite来决定的包括:

  1. Aggregation Rollup. 使用预聚合数据
  2. Join/Aggregation 将Agg下推过Join, 这样可以尽可能使用Agg Rollup
  3. Costing & Partitioning Benefits. 如果有partition key的话,partition key上还可以做筛选

Pasted-Image-20231225104446.png

在刷新MV上可以选择合适的顺序进行刷新"Refresh Graph". Dremio底层使用Iceberg格式,是不是也是因为这个容易用来维护MV,这样实现上不用重写物化视图对应的文件。

Pasted-Image-20231225104348.png