最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
打印 上一主题 下一主题
开启左侧

[Flink] Flink 方案设计

[复制链接]
跳转到指定楼层
楼主
发表于 2021-12-23 15:15:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
1:基于 Flink 的实时数据仓库是如何做的?
我们要从 Flink 的优势开始入手,介绍基于 Flink 的实时数仓建设的关键技术选型和整体设计。
传统的离线数据仓库将业务数据集中进行存储后,以固定的计算逻辑定时进行ETL和其他建模后产出报表等应用。离线数据仓库主要是构建 T+1 的离线数据,通过定时任务每天拉取增量数据,然后创建各个业务相关的主题维度数据,对外提供 T+1 的数据查询接口。计算和数据的实时性均较差,业务人员无法根据自己的即时性需要获取几分钟之前的实时数据。数据本身的价值随着时间的流逝会逐步减弱,因此数据发生后必须尽快地达到用户的手中,实时数仓的构建需求也应运而生。
总之就是一句话:时效性的要求。
Flink 在实时数仓和实时 ETL 中有天然的优势:
状态管理,实时数仓里面会进行很多的聚合计算,这些都需要对状态进行访问和管理,Flink 支持强大的状态管理;
丰富的 API,Flink 提供了极为丰富的多层次 API,包括 Stream API、Table API 及 Flink SQL;
生态完善,实时数仓的用途广泛,Flink 支持多种存储(HDFS、ES 等);
批流一体,Flink 已经在将流计算和批计算的 API 进行统一。
我们在进行实时数仓的设计时,一般也是分为 ODS 源数据接入层、DWD 明细层、DWS 汇总层、ADM 应用层。
这其中比较关键的技术点:实时数仓的明细层的汇总一般是基于 Flink 等接入 Kafka 消息进行关联的,维度表的数据一般会放在 HDFS、HBase 中作为明细层的补充。另外,在实时数据仓库中要选择不同的 OLAP 库来满足即席查询。
此外,可以将自己的实时数据的架构图完整画出来,这样会给人很深刻的印象,你可以参考下面两张架构设计图。
网易严选的实时数据仓库设计图
美团的实时数仓分层架构模型图
2:基于 Flink 的实时计算平台是如何做的?
实时计算平台的搭建是随着越来越多的业务场景需要实时计算而产生的。由于离线计算天然时效性不强,一般都是隔天级别的滞后,业务数据随着实践的推移,本身的价值就会逐渐减少。
由于 Flink 在架构、容错、反压上表现出来的优势和特性,使得 Flink 在实时计算平台的搭建上占有一席之地。
一般的实时计算平台的构成大都是由以下几部分构成。
  • 实时数据收集层
在实际业务中,大量的实时计算都是基于消息系统进行的数据收集和投递,这都离不开强大的消息中间件。目前业界使用最广的是 Kafka,另外一些重要的业务数据还会用到其他消息系统比如 RocketMQ 等。Kafka 因为高吞吐、低延迟的特性,特别适合大数量量、高 QPS 下的业务场景,而 RocketMQ 则在事务消息、一致性上有独特的优势。
  • 实时计算层
Flink 在计算层同时支持流式及批量分析应用,这就是我们所说的批流一体,Flink 承担了数据的实时采集、实时计算和下游发送的角色。随着 Blink 的开源和一些其他实时产品的开源,支持可视化、SQL 化的开发模式已经越来越普及。
  • 数据存储层
这里是我们的实时数据存储层,存储层除了传统 MySQL 等存储引擎以外,还会根据场景数据的不同存储在 Redis、HBase、OLAP 中。而这一层我个人认为最重要的技术选型则是 OLAP。OLAP 的技术选型直接制约着数据存储层和数据服务层的能力。关于 OLAP 的技术选型,可以参考这里。
  • 数据服务层
数据服务层会提供统一的对外查询、多维度的实时汇总,加上完善的租户和权限设计,能够支持多部门、多业务的数据需求。另外,基于数据服务层还会有数据的展示、大屏、指标可视化等。
我们在回答这个面试问题时,可以结合自己的实际项目回答,例如,在实时数据收集层中的技术选型是什么、支持了多大的数据量以及取得的业务成果;并且可以把自己的架构图完整地画出来。你也可以参考下面的架构图来画出自己的整体架构图。
美团的实时计算平台图
微博的实时计算平台图
3:有没有做过基于 Flink SQL 的计算平台?你有什么思路?
基于 Flink SQL 的实时计算平台是很多大公司提高开发效率、降低开发成本、降低维护成本作出的选择。一般的 SQL 开发平台都会有以下几个模块:
  • SQL 开发和提交模块
  • 完善的权限管理体系
  • UDF 管理模块
  • 资源调度模块
  • 日志和监控模块
这其中,SQL 的开发和提交是核心,成熟的 SQL 开发平台应该是和公司常用的组件栈打通,基于 Flink 原生的 SQL 模块支持更为丰富的 Source 和 Sink。并且支持丰富的作业配置,如作业 Checkpoint、重启策略等。
权限管理模块中,我们的 SQL 应该在作业级别进行多租户的权限管控,对于原表和目标表更应该精确到开发者级别。
UDF 模块应该支持用户自定义基于业务的复杂 UDF,并且可以快捷方便地更新版本。
资源和调度模块可以支持算子级别的并行度和内存设置,并且应该支持作业在不同集群间进行切换。
日志和监控模块中是我们进行作业调优、异常监控非常重要的模块,我们应该有专门的服务进行日志收集和查询,异常监控方面可以做到指定到人且不同渠道(邮件、电话、钉钉等)的报警。

楼主热帖
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 赞 踩

168大数据 - 论坛版权1.本主题所有言论和图片纯属网友个人见解,与本站立场无关
2.本站所有主题由网友自行投稿发布。若为首发或独家,该帖子作者与168大数据享有帖子相关版权。
3.其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和168大数据的同意,并添加本文出处。
4.本站所收集的部分公开资料来源于网络,转载目的在于传递价值及用于交流学习,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
5.任何通过此网页连接而得到的资讯、产品及服务,本站概不负责,亦不负任何法律责任。
6.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源,若标注有误或遗漏而侵犯到任何版权问题,请尽快告知,本站将及时删除。
7.168大数据管理员和版主有权不事先通知发贴者而删除本文。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-4-27 03:02

Powered by BI168大数据社区

© 2012-2014 168大数据

快速回复 返回顶部 返回列表