我是用Doris开发了一个自助的BI系统,现在描述下我的场景和实际存在的问题:
- A表、B表、C表三表通过一定的条件进行关联后得到D表(关联 =>左、右关联、全关联、上下合并等)
- D表再通过一定的聚合计算得到E表 (聚合计算 => 计数、求和、平均数、最大、最小值等)
- E表还可以再跟F表进行关联得到新的数据表。
当前模式:
我通过A、B、C三表关联得到的D表是一个物理表(新的大宽表D表),并不是表视图view,因为后期有发现如果是表视图,当数据量大的话查询会非常慢,虽然表视图可以不用关心前面三张表的数据的新增和修改的问题。然后再通过这张大宽表去sum或者count去计算得到的数据再存储到新的聚合物理表供仪表板查询。以此类推可以继续配置下去。
我的问题:
由于我是三表关联后的大宽表,变成需要处理去A、B、C表的增量更新数据,才能够保证D表是能进行增量更新的。但是实际这种自助型的BI系统很难处理三表关联后的大宽表D表的增量更新,而且还很难做增量计算。也因此导致我每次A、B、C表有数据更新,我都要清除D表,再重新将三张表关联的结果再插入D表,而且后面的表也是要跟着删除和插入操作,层级越多,这样的模式也是极具消耗性能的。有考虑过物化视图,但是物化视图又不能嵌套,而且条件字段是固定的,实际仪表板查询的统计结果字段的条件可能是不固定的。请问下大佬们,在这种自助型BI系统,如果我用Doris,有没有比较好的具体解决方案来处理类似的问题??实现多表关联的增量更新以及增量计算??