Doris实战——结合Flink构建极速易用的实时数仓_flink doris

原文大佬的这篇Doris+Flink构建实时数仓的实战文章整体写的很深入,这里直接摘抄下来用作学习和知识沉淀。

本篇文章介绍如何基于Doris和Flink快速构建一个极速易用的实时数仓,包括数据同步、数据集成、数仓分层、数据更新、性能提升等方面的具体应用方案。

一、实时数仓的需求与挑战

先介绍一下传统的数据架构如何设计的、又存在哪些痛点问题。下图为传统的数据架构,如果从数据流的角度分析传统的数据处理架构,会发现从源端采集到的业务数据和日志数据,主要分为实时和离线两条链路:

  • 在实时数据部分,通过Binlog方式,将业务数据库中的数据变更(CDC,Change Data Capture)采集到实时数仓。同时,通过Flume -Kafka-Sink对日志数据进行实时采集,当不同来源的数据都采集到实时存储系统后,便可以基于实时存储系统来构建实时数仓。在实时数仓的内部,仍然会遵守传统数仓分层理论,将数据分为 ODS 层、DWD 层、DWS 层、 ADS 层以实现最大程度的模型复用。
  • 在离线数据部分,通过DataX定时同步的方式,批量同步业务库RDS中的数据。当不同来源的数据进入到离线数仓后,便可以在离线数仓内部,依赖Spark SQL 或Hive SQL 对数据进⾏定时处理,分离出不同层级(ODS 、DWD 、ADS 等)的数据,并将这些数据存在⼀个存储介质上,⼀般会采用如 HDFS 的分布式文件系统或者 S3 对象存储上。通过这样的⽅式,离线数仓便构建起来了。与此同时,为了保障数据的一致性,通常需要开启数据清洗任务,使用离线数据对实时数据进行清洗和定期覆盖,保障数据最终的一致性

从技术架构的角度对传统数据技术栈进行分析,会发现为了迎合不同场景的需求,往往会采用多种技术栈,例如对于 OLAP 场景的多维分析,一般使⽤ Doris 或 Kylin、 Druid。除此之外,为应对半结构化数据的分析需求,例如日志分析与检索场景,通常会使⽤ ES 进行分析;面对高并发点查询的 Data Serving 场景会使⽤ HBase等。其中涉及到的数据组件有数十种,高昂的使用成本和组件间兼容、维护及扩展带来的繁重压力成为企业必须要面临的问题。

从上述介绍即可知道,传统的数据架构存在几个核心的痛点问题:

  • 传统数据架构组件繁多,维护复杂,运维难度非常高。
  • 计算、存储和研发成本都较高,与行业降本提效的趋势背道而驰。
  • 同时维护两套数据仓库(实时数仓和离线数仓)和两套计算(实时数据量和实时计算任务),数据时效性和一致性无法保证。

在此背景下,需要构建⼀个“极速、易用、统一、实时”的数据架构来解决这些痛点:

  • 极速:更快的查询速度,最大化提升业务分析人员的效率;
  • 易用:对于用户侧的使用和运维侧的管控,都提供了极简的使用体验;
  • 统一:异构数据与分析场景的统一,半结构化和结构化数据可以统一存储,多分析场景可以统一技术栈
  • 实时:端到端的高时效性保证,发挥实时数据的价值

**二、**构建极速易用的实时数仓架构

采取Doris和Flink 来构建极速易用的实时数仓,具体架构如下图所示。多种数据源的数据经过flink cdc 集成或flink job加工件处理后,入库到Doris或者Hive等湖仓中,最终基于Doris提供统一的查询服务。

在数据同步上,通过Flink CDC将RDS的数据实时同步到Doris。通过Routine Load将kafka等消息系统的数据实时同步到Doris,在数仓分层上,ODS层通常选择明细模型构建,DWD层可以通过SQL调度任务,对ODS数据抽取并获取,DWS和ADS层则可以通过物化视图和Rollup进行构建。在数据湖上, Doris ⽀持为 Hive、Iceberg 、Hudi 以及Delta Lake(todo)提供联邦分析和湖仓加速的能⼒。在数据应用上,Apache Doris 既可以承载批量数据加工处理的需求,也可以承载高吞吐的 Ad-hoc(数据探索) 和高并发点查询等多种应⽤场景。

三、解决方案

3.1 如何实现数据的增量与全量同步

3.1.1 增量及全量数据同步

在全量数据和增量的同步上&#x

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值