天天看点

云上流批一体架构设计与实践 —— 大数据团队实践分享

作者:数据筑梦空间

当今数据仓库的建设有这样几个发展趋势:

  • 云化:数据仓库从云下搬到云上。
  • 实时化:T+1 的数据延迟发展成为 T+0 的数有延迟。
  • 数据分析统一化:多维度的报表分析与数据探索的自助分析一体化。

本文从大数据团队的实践经验出发,介绍一种基于开源技术搭建的通用云上流批一体架构,使数据仓库同时满足:云化、实时化、数据分析统一化。由于本架构使用的是开源技术,并且对对象存储进行了抽象,可以在运用到不同的云厂商。

云上流批一体架构设计与实践 —— 大数据团队实践分享

背景:蓬勃发展的大数据技术

随着大数据技术的蓬勃发展,几大云厂商陆续提供了可靠的云上对象存储服务;各种大数据组件的层出不穷。

云服务厂商的对象存储服务

  • 阿里云:OSS(Object Storage Service)
  • 腾讯云:COS(Cloud Object Storage)
  • 华为云:OSS(Object Storage Service)
  • 亚马逊:S3 (Simple Storage Service)

大数据组件

大数据组件有很多,这里主要介绍与本文有关的 3 类组件:大数据计算引擎、大数据查询引擎、大数据作业调度引擎。

1.大数据计算引擎

Flink 和 Spark 分别是实时流数据处理和离线批数据处理的事实标准。

  • Flink:实时流数据处理。
  • Spark:离线批数据处理。

2.大数据查询引擎

常见的大数据查询引擎有很多,提供类数据库的服务,支持数据查询。这里列举最为常用的查询引擎。

Kylin:预计算多维数据库,支持 Hive 外表查询。。

StarRocks:具有预计算能力的向量化多表查询引擎,支持 Hive 外表查询。

ClickHouse:强悍的向量化单表查询引擎,不支持 Hive 外表查询。

Presto / Trino:基于内存并行计算的查询引擎,支持 Hive 外表查询。

3.大数据作业调度引擎

DolphinScheduler:基于 Java 的高可用作业调度系统。

Airflow:基于 Python 的单点作业调度系统。

数据分析需求:我要又要还要的数据分析需求

多维下钻需求:支持多维度下钻 BI 报表分析。

自助分析需求:支持数据探索的无规则 Ad Hoc 数据查询。

实时性需求:数据端到端的产出时间分为:分钟级、小时级、天级 3 种。

明细数据查询需求:所有明细上报日志都要能够被查询到,用于大数据链路的故障诊断。

技术选型

根据上述数据分析需求,在计算引擎和调度引擎上比较容易地选择了 Flink、Spark、DolphinScheduler。对于数据查询引擎的计算选型,进行了了一番调研,最终选择了 Kylin + StarRocks 的组合。

云上流批一体架构设计与实践 —— 大数据团队实践分享
云上流批一体架构设计与实践 —— 大数据团队实践分享

在 StarRocks 和 Click House的对比中,选择了 StarRocks。另一方面,我们对比了 StarRocks 与 Trino 查询 Hive 外表的性能。相比 Trino,StarRocks 的外表查询性能高出 30% 左右。

基于数据需求的架构设计

结合为了满足鱼和熊掌兼得的数据分析需求,我们提出了如下图的云上流批一体架构。

云上流批一体架构设计与实践 —— 大数据团队实践分享

该架构主要优点

  1. 符合大数据发展潮流:基于云上对象存储建设数据仓库,支持流批一体。
  2. 满足数据分析需求:支持上文提到的不同场景下的数据分析需求。
  3. 成本控制:将明细数据存储在对象存储(而不是 StarRocks 的本地存储),通过 StarRocks 外表能力查询明细数据,节省了存储成本,也节省了潜在的运维成本。
  4. 具备通用性:使用开源计算,可以部署到不同的云厂商环境中。

线上运行情况

本架构已经上线并且在生产环境中平稳运行 3 周时间,支持每秒钟 80 条数据记录,

总结

本文从不同场景的数据分析需求出发,介绍了一种通用的云上流批一体架构。该架构 符合大数据发展潮流、具备跨云通用性、兼顾成本控制。

相关文章导读

指标体系相关

  • 搭建指标体系的实施过程 -- 大数据团队实践分享(https://www.toutiao.com/article/7194229231637840445/)
  • 如何搭建指标体系?OSM+ARGO+金字塔原理 (https://www.toutiao.com/article/7193851943209452070/)
  • 基于开源可视化数据探索平台 Superset 的指标体系建设(https://www.toutiao.com/article/7157336903145357824/)

开源技术相关

  • 手把手教你源码安装 Dolphin Scheduler 作业调度系统(https://www.toutiao.com/article/7143945605298192935/)
  • DolphinScheduler:从 Shell 工作流说到代码解析任务间的依赖关系(https://www.toutiao.com/article/7145296029645193765/)
  • 手把手教你源码安装 Data Ease 开源数据可视化分析工具(https://www.toutiao.com/article/7144529676512281129/)

数据治理相关

  • 数据管理成熟度模型 Data Management Maturity Model(https://www.toutiao.com/article/7133058428549464606/)
  • 数据质量成熟度评分卡-数据管理成熟度模型系列(https://www.toutiao.com/article/7133831970345370127/)

继续阅读