除以上几个场景的解决方案外,TiDB 也可通过和其他数据服务产品“混搭”形成新的数据服务解决方案,如通过和同样是开源的大数据计算引擎Flink 混搭形成实时数仓解决方案
数据仓库的概念在 20 世纪 90 年代由比尔·恩门提出,是指一个面向主题的、集成的、相对稳定的、反映历史数据变化的集合,用于支持管理决策。当时的数据仓库通过消息队列收集来自数据源的数据,通过每天或每周进行一次计算以供报表使用,也称为离线数仓。
进入 21 世纪,随着计算技术的发展,以及整体算力的提升,决策的主体逐渐从人工控制转变为计算机算法,出现了实时推荐、实时监控分析等需求,对应的决策周期由天级逐步变为秒级,在这些场景下,实时数仓应运而生。
以维表(也称维度表)连接为例,数据在业务数据源中以范式表的形式存储,在分析时需要做大量的连接操作,降低性能。如果在数据清洗和导入过程中就能流式地完成连接,分析时就无须再次连接,从而提升查询性能。
对于实时数仓的四大部分,即实时数据采集端、数仓存储层、实时计算层、实时应用层而言,多技术栈的融合有助于构建一套无边界的大数据基础平台,同时支撑分析挖掘、业务上线和批流处理。在 TiDB 5.0 引入了 MPP 架构后,一些订单交易系统,可能因为促销活动迅速达到业务高峰。往往这种瞬时流量高峰需要商家能够快速进行分析类的查询,从而在限定时间内给出反馈以影响下单者的决策。传统的实时数仓架构很难承载短时间内的流量高峰,随之的分析操作可能会需要大量的时间来完成。如果使用传统的计算引擎,可能无法做到秒级的聚合分析操作。有了 MPP,就可以将能预测的流量高峰转换成扩容的物理成本,做到秒级的响应。在 MPP 加持下,TiDB 能够更好地处理分析类型的海量数据查询。从这里就可以看出,开放生态中每个组件的进化都在潜移默化地优化整个生态。