基于 Flink x TiDB,智慧芽打造实时分析新方案

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 智慧芽数据仓库架构师曲明星在 FFA 2021 的演讲。

摘要:本文整理自智慧芽数据仓库架构师曲明星在 Flink Forward Asia 2021 实时数仓专场的分享。本篇内容主要分为三个部分:

  1. 产品架构
  2. 技术架构
  3. 未来计划

点击查看直播回放 & 演讲PPT

一、产品架构

img

上图是智慧芽APP 的产品架构图,包括后台管理系统、AI、内容引擎、帮助中心,为客户提供知识产权信息化服务和科技创新情报系统。

二、技术架构

2.1 原实时分析方案

img

上图是原来的实时分析方案。流程大致是客户检索一个条件,通过分析 API 把客户检索的相关条件发送到不同的搜索引擎。这种方案会产生 4 个问题:

  • 对检索性能产生影响;
  • 复杂分析需要开发插件支持;
  • 跨多个搜索引擎分析复杂度高;
  • 不同维度的数据无法存储。

在建立实时数仓前,收集了业务要求实时数仓特点:

  • 秒级响应;
  • 准实时数据更新;
  • 能支持一定量的并发能力;
  • 与搜索引擎数据保持一致;
  • 支持复杂分析的能力;
  • 支持统一使用方式及主流特性;
  • 支持与搜索引擎交互;
  • 支持存储容量横向扩展的能力。

img

上图是数据平台概览。从下往上看:

  • 最下层是数据底座,包括数据存储和数据计算,其中数据计算层由 Spark、Kafka、Flink 组成;
  • 中间层是数据平台,包括数据开发、数据分类、数据管理和数据服务;
  • 上层是数据应用,主要有数据业务、外部分析服务和内部分析业务构成。

2.2 新实时分析方案

img

新的技术选型主要基于 TiDB,主要包括数据存储、数仓服务两个部分。数仓服务分为安全检查、驱动表管理、缓存管理、集群负载检查以及执行器等部分。

选择 TiDB 是因为它是云原生并且社区活跃、满足 TP 及 AP 业务场景、丰富的生态工具及多平台以及其使用简单,兼容 MySQL 以及大数据能力。

选择 Flink 也是因为它是一个开源的大数据计算引擎,并且有活跃的云原生社区,能够满足对数据的及时性要求,一致性方面有 exactly-once 语义,同时具备低延迟高吞吐量。

img

在线业务数据写入流程:把源头的数据变更放到消息队列中去,通过索引程序将数据分发到不同的搜索引擎,同时搜索引擎也会给索引程序发送消息。

离线分析技术体系:整个离线分析技术体系比较依赖于 oss。将每日的增量数据离线放到 oss 里,对全量的数据进行一些比较复杂的分析。

离线业务数据写入流程:数据变更会触发持久流化至 oss,oss 同时会和历史流进行合并在 oss 放一份全量数据。

2.3 原用户行为分析方案

原用户行为分析方案是非常复杂的方案,这个方案在前端有 JS 和 Java 的 API,JS 会将用户的埋点数据放置到 Segment 中去,同时有 Gainsight 和 AMPLITUDE 两个合成化引擎。

img

2.4 新用户行为分析方案

img

新的用户行为分析方案相对比较简洁。首先收集用户的行为数据,通过 Kinesis 以流的方式接到到 Flink,再进行一些实时指标的计算,并将计算结果存放于不同的表中,给我们提供了可视化的开发。

2.5 Flink + Iceberge 探索

在 Flink + Iceberge 的探索中,将几百 G 左右的表以流的方式放到 Kafka 中,再推送到 oss 中。目前,市面上缺乏成熟的解决方案,所以没有把这个方式应用到生产环境上。

img

三、未来计划

  • 云原生数据库架构迁移;
  • 提供更完善的指标和取数系统;
  • 建设数据生产的全链路监控和预警;
  • 供支撑公司数据消费和服务能力;
  • 在线实时分析数仓及其数据处理管道的继续演进;
  • 打造云原生数据技术体系和新一代大数据平台;
  • 提供数据网关入口,提供统一的数据出口、提高数据应用效率。
Patsnap 是一家科技创新情报 SaaS 服务商。通过机器学习、计算机视觉、自然语言处理(NLP)等人工智能技术为全球领先的科技公司、高校和科研机构、金融机构等提供大数据情报服务。

点击查看直播回放 & 演讲PPT


img

2022第四届 实时计算FLINK挑战赛

49万奖金等你来拿!

延续 “鼓励师计划”,赢取丰厚礼品!

点击进入赛事官网报名参赛

更多 Flink 相关技术问题,可扫码加入社区钉钉交流群
第一时间获取最新技术文章和社区动态,请关注公众号~

O1CN01tmtpiy1iazJYZdixL_!!6000000004430-2-tps-899-548.png"

活动推荐

阿里云基于 Apache Flink 构建的企业级产品-实时计算Flink版现开启活动:
99 元试用 实时计算Flink版(包年包月、10CU)即有机会获得 Flink 独家定制卫衣;另包 3 个月及以上还有 85 折优惠!
了解活动详情:https://www.aliyun.com/product/bigdata/sc

image.png

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
1月前
|
SQL 消息中间件 分布式计算
大数据-124 - Flink State 01篇 状态原理和原理剖析:状态类型 执行分析
大数据-124 - Flink State 01篇 状态原理和原理剖析:状态类型 执行分析
66 5
|
3月前
|
消息中间件 监控 数据挖掘
基于RabbitMQ与Apache Flink构建实时分析系统
【8月更文第28天】本文将介绍如何利用RabbitMQ作为数据源,结合Apache Flink进行实时数据分析。我们将构建一个简单的实时分析系统,该系统能够接收来自不同来源的数据,对数据进行实时处理,并将结果输出到另一个队列或存储系统中。
217 2
|
1月前
|
SQL 分布式计算 大数据
大数据-108 Flink 快速应用案例 重回Hello WordCount!方案1批数据 方案2流数据(一)
大数据-108 Flink 快速应用案例 重回Hello WordCount!方案1批数据 方案2流数据(一)
46 0
|
1月前
|
大数据 流计算
大数据-108 Flink 快速应用案例 重回Hello WordCount!方案1批数据 方案2流数据(二)
大数据-108 Flink 快速应用案例 重回Hello WordCount!方案1批数据 方案2流数据(二)
45 0
|
1月前
|
消息中间件 druid Kafka
从Apache Flink到Kafka再到Druid的实时数据传输,用于分析/决策
从Apache Flink到Kafka再到Druid的实时数据传输,用于分析/决策
72 0
|
4月前
|
SQL 关系型数据库 MySQL
如何在Dataphin中构建Flink+Paimon流式湖仓方案
当前大数据处理工业界非常重要的一个大趋势是一体化,尤其是湖仓一体架构。与过去分散的数据仓库和数据湖不同,湖仓一体架构通过将数据存储和处理融为一体,不仅提升了数据访问速度和处理效率,还简化了数据管理流程,降低了资源成本。企业可以更轻松地实现数据治理和分析,从而快速决策。paimon是国内开源的,也是最年轻的成员。 本文主要演示如何在 Dataphin 产品中构建 Flink+Paimon 的流式湖仓方案。
7764 10
如何在Dataphin中构建Flink+Paimon流式湖仓方案
|
3月前
|
消息中间件 数据挖掘 Kafka
揭秘数据洪流中的救世主:Confluent与Flink的实时分析奇迹!
【8月更文挑战第9天】在现代数据处理中,实时数据分析至关重要。Confluent Platform与Apache Flink的组合提供了一套高效的数据流处理方案。Confluent Platform基于Apache Kafka构建,负责数据的收集、传输及管理;而Flink则擅长实时处理这些数据流,进行复杂分析。首先需配置Confluent Platform,包括设置Zookeeper、Kafka brokers及相关服务。
69 1
|
3月前
|
SQL 设计模式 数据处理
Flink SQL 在快手实践问题之状态兼容的终极方案特点内容如何解决
Flink SQL 在快手实践问题之状态兼容的终极方案特点内容如何解决
24 0
|
3月前
|
消息中间件 Kafka Apache
流计算引擎数据问题之Apache Flink 的完整性推理方案设计如何解决
流计算引擎数据问题之Apache Flink 的完整性推理方案设计如何解决
61 0
|
4月前
|
Java 关系型数据库 MySQL
实时计算 Flink版操作报错合集之同步tidb到hudi报错,一般是什么原因
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。

相关产品

  • 实时计算 Flink版