共计 1697 个字符,预计需要花费 5 分钟才能阅读完成。
数字化转型的推动使得越来越多企业正面临前所未有的数据规模,随着商业竞争的日趋加剧,无论是内部的用户还是公司外部的决策曾经无奈依赖时效性不佳的离线数据分析,须要更实时的数据分析,甚至是对正在产生的交易数据进行剖析,以撑持更加麻利的商业决策。
成为支流趋势的 HTAP
由 Gartner 提出的 HTAP 数据库(混合事务 / 剖析解决,Hybrid Transactional/Analytical Processing)成为心愿。基于翻新的计算存储框架,HTAP 数据库可能在一份数据上同时撑持 OLTP 和 OLAP 场景,防止在传统架构中,在线与离线数据库之间大量的数据交互。HTAP 数据库基于分布式架构,反对弹性扩容,可按需扩大吞吐或存储,轻松应答高并发、海量数据场景。当下,由 HTAP 数据库提供的疾速剖析能力曾经成为企业的外围竞争力之一。
业务挑战
智慧芽(PatSnap)是一家科技翻新情报 SaaS(软件即服务)服务商,聚焦科技翻新情报和知识产权信息化服务两大板块,为寰球 50 多个国家超 10000 家科技公司、高校、科研与金融机构提供大数据情报服务。在数据源方面,智慧芽已存储了 1.5 亿多个寰球专利数据、1.7 亿多个化学构造数据,以及千万级财务新闻、科技文献、市场报告、投资信息等海量数据。随着业务场景的一直拓展和用户规模的迅速增长,业务经营过程中,智慧芽深度依赖对实时数据的剖析和后果出现,须要进行用户行为剖析,提供实时大盘和特定场景的经营数据,对流量和服务的剖析也不可或缺。智慧芽原先采纳 Segment 与 Redshift 的数据分析架构,仅构建出了 ODS 层,数据写入的规定和 schema 不受管制,且须要针对 ODS 编写简单的 ETL 来依照业务需要进行各类指标的计算来实现下层业务的数据申请。Redshift 中落库数据量大,计算慢(T+ 1 时效),影响对外服务的效率。
TiDB + Flink 实时数仓计划
通过多轮选型和比照测试,智慧芽选用 TiDB + Flink 实时数仓计划拓展数据分析架构体系的能力幅员。TiDB HTAP 是一个可扩大的行存和列存整合的架构,在存储上是能够应用拆散的不同的节点,能够确保 OLTP 和 OLAP 两边相互之间没有烦扰,实时性、一致性、可延展性都能失去很好的保障。Flink 是一个低提早、高吞吐、流批对立的大数据计算引擎,被广泛用于高实时性场景下的实时计算,具备反对 exactly-once 等重要个性。联合了 TiDB HTAP 与 Flink 两者的个性,Flink + TiDB 的计划劣势不言而喻:首先是速度有保障,两者都能够通过程度扩大节点来减少算力;其次,TiDB 深度兼容 MySQL 协定,Flink 提供 Flink SQL 和弱小的连接器来编写和提交工作,学习和配置老本绝对较低。
智慧芽实时数据分析平台架构
替换为基于 Kinesis + Flink + TiDB 构建的实时数仓架构后,不再须要构建 ODS 层。Flink 作为前置计算单元,间接从业务登程构建出 Flink Job ETL,齐全管制了落库规定并自定义 schema,即仅把业务关注的指标进行荡涤并写入 TiDB 来进行后续的剖析查问,写入数据量大幅缩小。
按用户 / 租户、地区、业务动作等关注的指标,联合分钟、小时、天等不同粒度的工夫窗口等,在 TiDB 上构建出 DWD/DWS/ADS 层,间接服务业务上的统计、清单等需要,下层利用可间接应用构建好的数据,且取得了秒级的实时能力。
这套实时数据分析平台架构实现了真正意义的 Real Time Data as a Service,目前利用于慧芽用户行为剖析和追踪、租户行为剖析等实时剖析场景,并为业务经营大盘提供实时数据撑持。
利用价值
在应用了新架构后,入库数据量、入库规定和计算复杂度都大大降落,数据在 Flink Job 中曾经依照业务需要解决实现并写入 TiDB,无需基于 Redshift 的 全量 ODS 层进行 T+1 ETL。基于 TiDB 构建的实时数仓,通过正当的数据分层,架构上取得了极大的精简,开发保护也变得更加简略,在数据查问、更新、写入性能上都取得大幅度晋升。在满足不同的 adhoc 剖析需要时,不再须要期待相似 Redshift 预编译的过程,易于开发且扩容不便。