经常在社区的用户中有看到这个需求
我记得2023年2月份的上海地区活动的时候,也有小伙伴现场提及了这个需求。
随着物化视图的需求越来越强烈,
咱们的 PM 小哥哥也觉得应该响应大家的需求,来看看大家希望实现到什么的程度,
然后一起来实现“物化视图” 的功能!
欢迎大家参与调研!
参与调研回复 4 个问题即可参与抽奖获得双肩包!奖励经验值&积分 100分。
-
场景描述:您当前业务中的哪些场景需要物化视图功能?单个物化视图的基表(数据源)有几张表?是否有持续数据写入?能够接受物化视图的更新延迟是多少?单个物化视图的数据量有多少?相关表是否存在更新或者删除操作?
-
痛点描述:您的系统是如何支持这些业务的,有遇到哪些痛点?
-
功能描述:物化视图你需要哪些功能?(例如:过滤,关联,聚集,分区等)手动更新能力对于您的业务有价值吗?
-
使用意向:在提供自动更新能力之前,先提供手动更新功能,您会在业务中使用吗?在优化器提供自动改写功能前,需要手动修改 SQL 以访问物化视图,您会在业务中使用吗?
【调研参与奖励】
100 经验值&积分
【抽奖奖励】
抽 1名小伙伴送双肩包,
没有按照要求回复4个问题无法活动抽奖哟!
【后续计划】
调研之后我们会与有强需求场景的小伙伴,随机抽取 3-5个 1v1 深入沟通产品需求,如有迭代计划将在本贴第一时间更新计划。
2 个赞
MrSylar
( Mr.Sylar)
5
场景描述
场景很多,比如现金管理、报表生成
痛点描述
目前 TiDB 的大数据量下多表 join 的性能还不能 100% 满足业务需求,10表+ 的关联比较常见
功能描述
对我们来说,稳定与性能有限,功能点其次。手动更新有意义,但需要看具体操作和使用要求,运维和开发的界限还比较严格
使用意向
“先提供手动更新功能,您会在业务中使用吗”,要依赖使用要求
“动修改 SQL 以访问物化视图,您会在业务中使用吗”,应该可行,但也要看改动的成本有多少,透明肯定是最希望的
当前业务中每月汇总,出账结算数据需要物化视图,单个物化视图基表可能有5-8张,持续有数据写入,更新延迟接受1小时内,单个物化视图数据量2000w,相关表存在更新删除操作
2.
当前是写汇总的计划任务,每小时生成汇总数据。每次汇总需要几分钟,这个时间段是查不到数据的。
3.
过滤 关联,有价值
4.
会使用
seiang
(Seiang)
7
场景描述:
物化视图可以说是目前某一类业务强需求,之前业务明确提过,当前的主要用在获量业务,涉及营销数据、各类游戏分析大盘等;
物化视图的基表5~10张左右,单个表的数据量大概在3000万左右,宽表,基表的数据有实时或定时的写入、更新和删除操作;针对当前TiDB不支持无法视图,业务采取其他的方案替代,按照目前的情况,延迟在10min以内应该是可以接收,具体可能还需要和业务确认
痛点描述:
您的系统是如何支持这些业务的,有遇到哪些痛点?
1、当前业务采用中间表的方式,预先将多表复杂查询的结果存储在中间表中,并且该表数据会更加业务时效性的要求,定时的进行更新;
2、子查询通过CTE表达式复用子查询结果,但是在查询结果大的情况下,内存占用非常大导致OOM等问题
维表、指标表多表关联join以及子查询的性能在数据量大的情况下需要不定期进行优化,一个SQL语句几百行简直是噩梦
功能描述:
物化视图你需要哪些功能?(例如:过滤,关联,聚集,分区等)手动更新能力对于您的业务有价值吗?
1、分析需求覆盖明细数据查询以及固定维度查询两方面;
2、查询过滤涉及表中的很小一部分列
3、一些查询时间很久的关联聚合操作
4、物化视图数据更新最大能提供手动触发更新、定时触发更新和自动触发更新
使用意向:
1、在提供自动更新能力之前,先提供手动更新功能,您会在业务中使用吗?
手动更新功能应该在某些情况下会用的
2、在优化器提供自动改写功能前,需要手动修改 SQL 以访问物化视图,您会在业务中使用吗?
按照目前情况,可能不会用,因为调整代价太大了
1 个赞
如果物化视图可以支持流式数据(类比Starrocks这类分析型数据库) 那就可以简化架构 在特定场景下效率提升巨大 意义非凡很值得开发 当然如Tidb这种分布式强一致性数据库来说 可能会有些许繁琐 但P社从未让人失望过
场景:
某个分公司的某一个自然月月累产品的销售额分类汇总,甚至是个频繁执行的汇总语句
痛点:
数据量太大,表数量超过3个以上,内存,cpu高
功能
能够提供灵活的条件过滤,可以保证线路
使用意向
使用需求强,可以接受写延迟,满足写可以稍微延迟,满足多表关联汇总的实时快速提取需求
随缘天空
(Ti D Ber Ivw R7o Pj)
17
场景描述:
一些smartbi报表展示,数据分析场景
痛点描述:
存在多表join操作,且数据量较大,性能不好
功能描述:
多表关联,数据分析
使用意向:
会考虑,但是也要看具体的情况
yytest
18
1 场景描述 需要的物化视图场景:单个物化视图的基表(数据源)通常有3-5张表,涉及订单、用户信息、产品属性等多个维度的数据。
2 遇到的痛点 查询性能瓶颈:复杂查询耗时长,影响用户体验。
3 功能描述 过滤:支持对基表数据进行条件过滤,以生成特定条件下的物化视图。
4 手动更新功能 在提供自动更新能力之前,如果先提供手动更新功能,我们会在业务中积极使用。
场景描述:
通常在需要频繁执行复杂查询并且希望提高性能的情况下,会使用物化视图。例如,报表生成、数据汇总、实时分析等场景。
痛点描述:
在没有物化视图的情况下,复杂查询可能会对数据库性能产生较大影响。
功能描述:
过滤、关联、聚集、分区基本都需要;在某些业务需要的情况下,需要手动控制物化视图的更新时机。
使用意向:
手动更新、手动 SQL 修改初步可能会使用。
1 个赞
小龙虾爱大龙虾
(Minghao Ren)
20
部分客户有问到是否支持物化视图,一般这种都是重度 Oracle 用户,表关联在 10+ 以上吧,相关表存在更新操作,最好能定期自动更新,加增量更新
需求还挺强的,我们系统用tidb作为从库,又肩负着数据仓库,支持物化视图能减少相当大的开发工作。
没头脑123
22
场景描述
月度审计、日报、周报等
痛点描述
审计一般都是多表关联,时间范围跨度比较长,数据量比较大,tidb查询比较慢,cpu影响比较大
功能描述
多表关联、过滤,聚合
使用意向
现在会在hive生成,实时性有点差。
- 场景描述:在业务中,可能需要物化视图的场景包括:
- 复杂查询的优化:当需要频繁执行涉及多表连接、大量数据筛选和排序的复杂查询时,物化视图可以预先计算并存储这些结果,从而提高查询效率。
- 数据汇总:对于需要定期生成的报告或汇总数据,物化视图可以存储这些汇总结果,减少每次生成报告时的计算负担。
- 数据缓存:在高并发的系统中,物化视图可以作为数据的缓存层,减少对基表的直接访问压力。
在这些场景中,单个物化视图的基表可能涉及多张表,具体数量取决于业务逻辑的复杂性。如果业务涉及到实时数据处理,物化视图可能需要较低的更新延迟,例如几秒到几分钟。数据量则取决于业务规模和查询的复杂度,可能从几千到数百万条记录不等。相关表的更新和删除操作会影响物化视图的准确性,因此需要定期或实时更新物化视图以保持数据一致性。
- 痛点描述: 在没有物化视图的情况下,系统可能面临以下痛点:
- 性能瓶颈:频繁执行复杂查询会导致数据库性能下降,尤其是在高并发环境下。
- 资源消耗:每次执行复杂查询都会消耗大量CPU和IO资源,增加系统负载。
- 数据一致性问题:在多用户环境中,频繁的数据更新可能导致数据不一致,影响业务决策。
- 功能描述: 可能需要的物化视图功能包括:
- 过滤功能:允许在创建物化视图时对数据进行过滤,只存储符合特定条件的数据。
- 关联功能:支持多表关联,以便在物化视图中存储关联查询的结果。
- 聚集功能:提供对数据进行聚合操作的能力,如求和、平均、最大值等。
- 分区功能:支持物化视图的分区,以便更有效地管理和查询大规模数据集。
- 手动更新能力:在某些情况下,可能需要手动控制物化视图的更新,以适应特定的业务需求或优化性能。
- 使用意向: 对于那些对数据一致性要求不是特别严格的场景可能是有用的。