摘要:本文整理自WisdomBuds数据仓库架构师屈明星在FlinkForwardAsia2021实时的分享数据仓库会话。本文内容主要分为三部分:产品架构技术架构未来计划01产品架构上图为智慧芽APP产品架构图,包括后台管理系统、AI、内容引擎、帮助中心,为客户提供拥有知识产权信息服务和技术创新情报系统。02技术架构2.1原始实时分析方案上图为原始实时分析方案。流程大致是客户检索一个条件,客户检索到的相关条件通过分析API发送给不同的搜索引擎。这种方案会带来四个问题:影响检索性能;复杂分析需要开发插件支持;跨多个搜索引擎的分析非常复杂;不能存储不同维度的数据。在建立实时数仓之前,采集业务需求实时数仓的特点:秒级响应;准实时数据更新;可以支持一定的并发量;与搜索引擎数据一致;支持复杂的分析能力;支持统一使用和主流特性;支持与搜索引擎的交互;支持横向扩展存储容量的能力。上图是数据平台的概览。从下到上:最底层是数据库,包括数据存储和数据计算,其中数据计算层由Spark、Kafka、Flink组成;中间层是数据平台,包括数据开发、数据分类、数据管理和数据服务;上层是数据应用,主要由数据业务、外部分析服务和内部分析业务组成。2.2新的实时分析方案新的技术选型主要基于TiDB,主要包括数据存储和数据仓库服务两部分。数据仓库服务分为安全检查、驱动表管理、缓存管理、集群负载检查、执行器。我们选择TiDB是因为它是云原生的,有活跃的社区,满足TP和AP业务场景,有丰富的生态工具和多平台,并且简单易用,兼容MySQL和大数据能力。之所以选择Flink,也是因为它是一个开源的大数据计算引擎,拥有活跃的云原生社区,可以满足数据的时效性要求,具有一致性的exactly-once语义,低延迟和高吞吐量。线上业务数据写入流程:将源数据变化放入消息队列,通过索引程序将数据分发到不同的搜索引擎,搜索引擎也会向索引程序发送消息。离线分析技术体系:整个离线分析技术体系对oss的依赖比较大。将每日增量数据离线放到oss中,对全量数据进行一些复杂的分析。离线业务数据写入流程:数据变化会触发持久化流到oss,oss会同时与历史流合并,将全量数据存入oss。2.3原始用户行为分析方案原始用户行为分析方案是一个非常复杂的方案。这个解决方案在前端有JS和JavaAPI。JS会将用户的嵌入数据放入Segment中。同时有Gainsight和AMPLITUDE引擎两种复合。2.4新用户行为分析方案新用户行为分析方案比较简单。首先收集用户行为数据,通过Kinesis流式传输到Flink,然后计算一些实时指标,并将计算结果存储在不同的表中,为我们提供可视化开发。2.5Flink+Iceberge探索Flink+Iceberge探索中,数百G的表被流式传输到Kafka,然后推送到oss。目前市场上缺乏成熟的解决方案,因此该方法还没有应用到生产环境中。03未来计划迁移云原生数据库架构;提供更完善的指标和准入体系;构建数据生产全链路监控预警;支撑公司的数据消费和服务能力;数据仓库的在线实时分析及其数据处理管道不断发展;打造云原生数据技术体系和新一代大数据平台;提供数据网关入口,提供统一的数据出口,提高数据应用效率。
