这里记录过去一周,大数据相关值得分享的东西,每周发布。
今天尝试写第 7 期,记录过去一周一点所见所闻。
本期主题:实时数仓
技术一瞥
做实时数仓经历了什么过程。
数据仓库是公司数据发展到一定规模之后必然会提供的一种基础服务。
1、什么是数据仓库呢?
面向主题、集成的、相对稳定的、反应历史变化的数据集合,用于支持决策。
随着需求越累越多,离线的数仓已经不能完全满足需求了,实时数仓可以满足实时化&自动化的决策需求。数据湖支持大量&复杂数据类型(文本、图像、视频、音频)
2、数据仓库的发展
数据仓库分为两个环节:数据仓库的构建和数据仓库的应用。
早期的数据仓库构建主要是把企业的业务数据库如ERP/CRM/SCM 等数据按照决策分析要求建模汇总到数据仓库引擎中,应用以报表为主。(中长期策略性决策)
两个推动因素:
随着互联网发展,移动时代的到来,数据源变得越来越丰富,出现了非结构化的数据,比如网站的log,LOT设备数据,APP埋点数据等,这些数据的量级都比较大,对于 ETL 过程以及存储都提出了更高的要求。
互联网在线的特征也将业务推向了实时化。比如欺诈检测和用户审核。
数据仓库架构
4、离线大数据架构
数据源通过离线的方式导入到离线数仓中。ODS/DWD/DM分层设计。典型的数据存储是 HDFS/Hive, ETL 一般是 HIve SQL
5、Lambda 架构
为了计算一些实时的指标,在就原来离线数仓的基础上添加了一个实时计算的链路,并对数据源做流失改造(也就是把数据发到消息队列,我们用的是 kafka)。
缺点是:新增的实时流处理和批处理需要维护两套代码,开发测试上线难度大。当然也要维护两套系统。资源开销大
6、Kappa 架构
只有实时计算。最大的问题是流式重新处理历史的吞吐能力会低于批处理,但这个可以增加计算资源来弥补。
kappa 架构重新处理的过程:第一,选择一个具有重放功能。能够保存历史数据并次支持多消费者的消息队列,根据需求设置历史保存的时长。比如 kafka。当某个或某些指标性有重新处理的需求时,按照新的逻辑写一个作业,然后从上游消息队列最开始消费,把结果写到下游的新的表中。当作业赶上进度后,应用切换数据源,读取新的结果表。最后停止老的作业,删除老的结果表。
真实的场景一般是这两种架构的混搭。
7、实时数仓案例
来自菜鸟的分享,仓配实时数据仓,设计全局设计、数据模型、数据保障等几个方面。
原文链接:https://mp.weixin.qq.com/s/1-VjFE8uNlU_QDhoeVSE1w
视频链接:https://www.bilibili.com/video/av63039981
图片
文章
菜鸟供应链业务链路长、节点多、实体多,使得技术团队在建设供应链实时数仓的过程中,面临着诸多挑战,如:如何实现实时变Key统计?如何实现实时超时统计?如何进行有效地资源优化?如何提升多实时流关联效率?如何提升实时作业的开发效率? 而 Blink 能否解决这些问题?本文将带领大家一起来深入了解。
2、OPPO数据中台之基石:基于Flink SQL构建实时数仓
分享嘉宾张俊,目前担任 OPPO 大数据平台研发负责人,也是 Apache Flink contributor。本文主要内容如下:
- OPPO 实时数仓的演进思路;
- 基于 Flink SQL 的扩展工作;
- 构建实时数仓的应用案例;
- 未来工作的思考和展望。
本文整理了常见实时数据组件的性能特点和适用场景,介绍了美团如何通过 Flink 引擎构建实时数据仓库,从而提供高效、稳健的实时数据服务。此前我们美团技术博客发布过一篇文章《流计算框架 Flink 与 Storm 的性能对比》,对 Flink 和 Storm 俩个引擎的计算性能进行了比较。本文主要阐述使用 Flink 在实际数据生产上的经验。
资源
Flink Forward Asia 2019 大会,分享的 PPT
订阅
本专栏也会定期同步到公众号和知识星球,欢迎订阅。直接扫码或者微信搜索大数据学习指南
(完)