我们可以基于dremio 的反射进行数据加速处理,dremio 支持全量以及增量,全量是比较简单的,dremio
直接处理完整数据(当然会基于版本以及有效期处理,不是简单的直接删除,然后使用的,不然会影响业务的),对于增量处理就比较复杂了
增量处理策略
- 对于文件系统,可以自动标识新的文件
- 对于其他数据集(物理以及虚拟的),早期版本对于增量的是需要一个bigint的字段的,而且是自增的,之后版本也自持基于int,时间戳,时间,浮点,货币类型。。。
官方的一些建议
- 推荐对于append only 模式的数据使用增量,对于经常变动的数据,可能会造成不正常的数据,一般推荐基于全量的
- 对于包含join 的虚拟数据集是不支持增量更新的,dremio会使用全量反射的
反射队列路由
我们可以基于sql 进行反射队列路由,可以更好的控制数据的调度处理(这个是一个比较复杂的领域,需要结合实际场景优化)
参考资料
https://docs.dremio.com/software/acceleration/updating-reflections/
https://docs.dremio.com/software/sql-reference/sql-commands/queue-routing-sql/
https://docs.dremio.com/software/sql-reference/sql-commands/analyze-table/
https://docs.dremio.com/software/sql-reference/sql-commands/datasets/