行业挑战
随着计算技术的发展以及整体算力的提升,决策的主体逐渐从人工控制转变为计算机算法,出现了实时数仓的需求。传统方案在实时性领域的痛点:
- 分散的中间数据集合、复杂的数据处理管道等使得“新鲜数据” 不再“新鲜”,实时性价值丧失,单一视图构建困难重重;
- 复杂数据处理技术栈,多处多地加工、数据割裂,丧失灵活性和扩展性。
Lambda 架构作为可以同时承担批量、实时数据处理的架构,已成为业内广受认可的实时大数据处理方案。
但是,Lambda 架构现如今面临着如下两个架构痛点:
- 技术栈复杂。离线数据加工、实时流式计算产生的数据视图存储在两套异构的数据库中,整个架构需要使用包括 Hive、MySQL / HBase、Kafka、Flink、Tair / Redis 等多种数据存储计算组件;
- 数据汇聚查询方式复杂。在服务层响应用户的查询请求时,需要合并离线视图和实时视图的结果数据集到最终的数据集,应用端需要同时支持两套数据访问接口。
解决方案
TiDB 实时数仓解决方案
- 批量视图数据加载,可利用 TiSpark 支持直接访问存储引擎 TiKV 的优势,实现海量离线数据从大数据平台到 TiDB 的快速导入;
- 实时数据通过 Kafka 传递,以 Flink 作为计算引擎,构建出 Flink Job ETL,实现实时视图在 TiDB 的快速落地;
- 在用户服务层,借助列存 TiFlash 强大的分析能力,通过标准 SQL 访问方式,可实时查询、计算出批量视图和实时视图的综合结果。
方案优势
- 优化 Lambda 技术架构。充分发挥 TiDB 的 HTAP 能力,整合批量视图和实时视图,降低系统整体复杂度;
- 统一用户数据服务访问接口。实时视图数据即时与批量视图数据合并落地,统一数据服务方式。