实用好文:知乎实时数仓架构实践及演进

本文介绍了知乎实时数仓从1.0到2.0的演进过程,包括实时ETL的挑战与解决方案,Lambda架构的实践,以及未来的发展趋势。在1.0版本,主要使用Spark Streaming进行实时处理,面临数据正确性和稳定性问题。2.0版本引入Flink Streaming,建立了数据分层和指标计算实时化,解决了数据消费、存储和查询的效率问题,提高了实时报表的稳定性。未来展望包括Streaming SQL平台化、元信息管理系统化和结果验收自动化。
摘要由CSDN通过智能技术生成

“数据智能” (Data Intelligence) 有一个必须且基础的环节,就是数据仓库的建设。同时,数据仓库也是公司数据发展到一定规模后必然会提供的一种基础服务。

 

从智能商业的角度来讲,数据的结果代表了用户的反馈,获取结果的及时性就显得尤为重要,快速的获取数据反馈能够帮助公司更快的做出决策,更好的进行产品迭代,实时数仓在这一过程中起到了不可替代的作用。

互联网科技发展蓬勃兴起,人工智能时代来临,抓住下一个风口。为帮助那些往想互联网方向转行想学习,却因为时间不够,资源不足而放弃的人。我自己整理的一份最新的大数据进阶资料和高级开发教程,大数据学习群: 740041381就可以找到组织学习  欢迎进阶中和进想深入大数据的小伙伴加入

本文主要讲述知乎的实时数仓实践以及架构的演进,这包括以下几个方面:

 

  • 实时数仓 1.0 版本,主题: ETL 逻辑实时化,技术方案:Spark Streaming。

  • 实时数仓 2.0 版本,主题:数据分层,指标计算实时化,技术方案:Flink Streaming。

  • 实时数仓未来展望:Streaming SQL 平台化,元信息管理系统化,结果验收自动化。

 

一、实时数仓 1.0 版本

 

1.0 版本的实时数仓主要是对流量数据做实时 ETL,并不计算实时指标,也未建立起实时数仓体系,实时场景比较单一,对实时数据流的处理主要是为了提升数据平台的服务能力。

 

实时数据的处理向上依赖数据的收集,向下关系到数据的查询和可视化,下图是实时数仓 1.0 版本的整体数据架构图:

 

 

  • 第一部分是数据采集,由三端 SDK 采集数据并通过 Log Collector Server 发送到 Kafka。

  • 第二部分是数据 ETL,主要完成对原始数据的清洗和加工并分实时和离线导入 Druid。

  • 第三部分是数据可视化,由 Druid 负责计算指标并通过 Web Server 配合前端完成数据可视化。

 

其中第一、三部分的相关内容请分别参考:

 

 

此处我们详细介绍第二部分。由于实时数据流的稳定性不如离线数据流,当实时流出现问题后需要离线数据重刷历史数据,因此实时处理部分我们采用了 Lambda 架构。

 

Lambda 架构有高容错、低延时和可扩展的特点,为了实现这一设计,我们将 ETL 工作分为两部分:Streaming ETL 和 Batch ETL。

 

1、Streaming ETL

 

这一部分我会介绍实时计算框架的选择、数据正确性的保证、以及 Streaming 中一些通用的 ETL 逻辑,最后还会介绍 Spark Streaming 在实时 ETL 中的稳定性实践。

 

计算框架选择

 

在 2016 年年初,业界用的比较多的实时计算框架有 Storm 和 Spark Streaming。Storm 是纯流式框架,Spark Streaming 用 Micro Batch 模拟流式计算,前者比后者更实时,后者比前者吞吐量大且生态系统更完善,考虑到知乎的日志量以及初期对实时性的要求,我们选择了 Spark Streaming 作为实时数据的处理框架。

 

数据正确性保证

互联网科技发展蓬勃兴起,人工智能时代来临,抓住下一个风口。为帮助那些往想互联网方向转行想学习,却因为时间不够,资源不足而放弃的人。我自己整理的一份最新的大数据进阶资料和高级开发教程,大数据学习群: 740041381就可以找到组织学习  欢迎进阶中和进想深入大数据的小伙伴加入

Spark Streaming 的端到端 Exactly-once 需要下游支持幂等、上游支持流量重放,这里我们在 Spark Streaming 这一层做到了 At-least-once,正常情况下数据不重不少,但在程序重启时可能会重发部分数据,为了实现全局的 Exactly-onceÿ

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值