场景描述:
物化视图可以说是目前某一类业务强需求,之前业务明确提过,当前的主要用在获量业务,涉及营销数据、各类游戏分析大盘等;
物化视图的基表5~10张左右,单个表的数据量大概在3000万左右,宽表,基表的数据有实时或定时的写入、更新和删除操作;针对当前TiDB不支持无法视图,业务采取其他的方案替代,按照目前的情况,延迟在10min以内应该是可以接收,具体可能还需要和业务确认
痛点描述:
您的系统是如何支持这些业务的,有遇到哪些痛点?
1、当前业务采用中间表的方式,预先将多表复杂查询的结果存储在中间表中,并且该表数据会更加业务时效性的要求,定时的进行更新;
2、子查询通过CTE表达式复用子查询结果,但是在查询结果大的情况下,内存占用非常大导致OOM等问题
维表、指标表多表关联join以及子查询的性能在数据量大的情况下需要不定期进行优化,一个SQL语句几百行简直是噩梦
功能描述:
物化视图你需要哪些功能?(例如:过滤,关联,聚集,分区等)手动更新能力对于您的业务有价值吗?
1、分析需求覆盖明细数据查询以及固定维度查询两方面;
2、查询过滤涉及表中的很小一部分列
3、一些查询时间很久的关联聚合操作
4、物化视图数据更新最大能提供手动触发更新、定时触发更新和自动触发更新
使用意向:
1、在提供自动更新能力之前,先提供手动更新功能,您会在业务中使用吗?
手动更新功能应该在某些情况下会用的
2、在优化器提供自动改写功能前,需要手动修改 SQL 以访问物化视图,您会在业务中使用吗?
按照目前情况,可能不会用,因为调整代价太大了