【数仓建设系列之五】数仓选型架构概览

news2024/12/23 19:27:36

【数仓建设系列之五】实时数仓选型架构概览

离线数仓(Offline Data Warehouse)和实时数仓(Real-time Data Warehouse)是数仓领域两种常见的数据存储和处理架构,它们在数据处理的方式、目标和时间性上有所不同,本文将重点介绍目前主流实时数仓架构设计。

一、离线和实时数仓区别

1.离线数仓:

  • 离线数仓是一种用于存储和处理大规模历史数据的架构。它的目标主要是支持复杂分析和数据挖掘任务,通常以批处理的方式进行数据处理。离线数仓的主要特点包括以下几点:
1.1 数据积累和历史分析
  • 离线数仓主要用于存储历史数据,这些数据可以是从多个源头采集而来,经过ETL(清洗、转换和加载)后存储在数仓中,这些数据被用于支持复杂的数据分析、业务报表和决策支持,数据延迟基本都是T+1形式。
1.2 周期性批处理
  • 离线数仓中的数据主要是按照批处理的方式,通过一定时间周期(如每日、每周)去加载和处理。
1.3 复杂查询和分析
  • 离线数仓可以连接不同的数据集,也可以跨多个维度执行聚合,排序等操作。通过复杂的查询和分析,可以展示出历史数据的变化趋势和价值数据的提取等。

2.实时数仓:

实时数仓是一种用于存储和处理实时数据流的架构。它的主要目标是支持快速的实时数据分析、监控和反馈。实时数仓的特点包括:

2.1 实时数据流处理
  • 实时数仓通过数据流式处理技术,可以实时地处理来自各种源头的数据流,允许数据在进入系统后立即被处理和分析。这些数据可以是日志数据、业务交易数据和传感数据等。
2.2 低延迟处理
  • 实时数仓更加注重数据处理的低延迟性,在确保数据进入系统后,希望以很快的速度对数据进行分析处理。
2.3 快速查询和分析
  • 通过这种低延迟的方式对数据进行快速处理和分析,使得用户能够及时地探索数据,发现实时趋势和异常。

离线数仓和实时数仓在功能定位和使用场景上有较大区别,选择使用哪种架构取决于业务需求、数据的时效性要求和技术架构的能力等。接下来,主要介绍一下主流实时数仓建设方案。

二、主流实时数仓架构选型

1.Kappa架构:

​ Kappa架构是大数据领域以流处理为主的主流实时数据分析架构之一,主要包含三部分:批处理层、流处理层和服务层,其核心思想是将数据分为冷热数据两类,冷数据走批处理层,热数据层走流处理层,但只使用一个数据处理管道来处理所有数据流。
在这里插入图片描述

  • 冷数据(历史数据)通过DataxSqoopFlinkCDC等离线手段同步至Kafka中;
  • 热数据(增量数据)通过FlumeCanalFlinkCDCDebezium等实时手段同步至Kafka中;
  • 通过计算引擎(Flink ,Spark)处理计算结果;
  • 将计算结果存储至数仓,供数据服务,BI展示等;

优势

  • 适用于大规模、复杂的数据处理任务,具有高扩展性、高容错性和高性能等优点。

  • 优化了Lambda架构,不需要将流批处理逻辑分离;

缺点:

  • 数仓中只存储了处理计算后的结果,数据溯源难度大;

  • 对集群计算资源要求高;

2.基于Kafka构建实时数仓

利用Kafka构建实时数仓也是目前业界比较流行的实时数仓架构之一。主要特点是在Kafka中进行数仓分层设计,所有数据都在Kafka的不同topic之间流转。
在这里插入图片描述

  • 不同数据源的数据通过采集工具采集至Kafka,形成一个ODS层的topic;
  • 通过计算引擎(Flink或者Spark)不断消费底层topic,将计算结果存储至紧邻的上层topic中;
  • 将形成的ADS层数据推送或存储至外部存储,供分析同学使用;
  • (建议)将每层数据结果都实时同步到外部数仓中;

优势:

  • 时效性高,能够快速不分析出数据的变化趋势,满足实时要求;

  • 符合数仓基本建设规范,分层明确,数据结构清晰;

劣势:

  • Kafka自身定位是一个缓冲管道,基于Kafka构建实时数仓不太符合规范;

  • Kafka日志数据都具有一定时效性,数据可能会丢失;

  • 当数据量过大时,数据溯源难度成几何增长;

  • 需要较多的计算资源;

3.基于数据湖构建实时数仓

数据湖是一种存储架构,它使用分布式文件系统(如Hadoop HDFS)或对象存储(如Amazon S3)来存储各种类型和格式的原始数据,无论是结构化、半结构化还是非结构化数据。它支持存储大量的原始数据,无需事先定义数据模型或架构,这使得数据湖成为一个集中存储所有类型数据的地方。利用数据湖构建实时数仓和利用Kafka构建基本逻辑是一致的,只不过是数据存储介质发生了一些区别。
在这里插入图片描述

优势:

  • 灵活性高,可以根据自己需求选定存储介质和计算引擎;
  • 符合数仓基本建设规范,分层明确,数据结构清晰;
  • 真正实现了流批一体计算;
  • 数据湖产品多(iceberg,hudi,paimon,kudu),可以有多种选择方案;

劣势:

  • 在处理大规模数据时需要大量的存储和计算资源;

  • 构建和管理数据湖需要一系列不同的技术和工具,需要具备相应的技术能力和知识;

4.基于Doris构建实时数仓

Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。Apache Doris 能够较好的满足报表分析、即席查询、统一数仓构建、数据湖联邦查询加速等使用场景,用户可以在此之上构建用户行为分析、AB 实验平台、日志检索分析、用户画像分析、订单分析等应用。

在这里插入图片描述

  • 通过离线和实时数据同步工具直接将各种数据同步到实时数仓Doris中;

  • 也可以通过将离线和实时数据先同步到Kafka中,然后通过计算引擎(Flink或Spark)做ETL处理,然后再将数据同步至Doris中;

  • 用户可以通过实时查询直接从Doris中获取到最新结果;

优势:

  • Doris运维部署简单,稳定性好,支持标准SQL语义,使用成本低;

  • Doris支持多种数据模型,很大程度简化了数据处理逻辑;

  • Doris支持多种使用场景,包括即席查询,联邦查询和其他一些复杂分析场景;

  • Doris支持的数据同步及导入方式丰富,可以显著降低数据同步复杂度;

  • Doris社区活跃,新功能迭代速度快,能够快速解决各种使用场景限制;

三、总结

以上就是常见的实时数仓建设方案,每种方案都有自己的优缺点,企业可以根据自己的实际业务场景,选择适合自己的实时数仓建设方案;

方式丰富,可以显著降低数据同步复杂度;

  • Doris社区活跃,新功能迭代速度快,能够快速解决各种使用场景限制;

三、总结

以上就是常见的实时数仓建设方案,每种方案都有自己的优缺点,企业可以根据自己的实际业务场景,选择适合自己的实时数仓建设方案;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1000246.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

web端三维重建算法-colmap++

vismap vismap 是colmap 版本 (1) 支持superpoint superglue (2) 支持netvlad 图像检索 (3)支持特征点尺度定权 (4)支持二维码定位 (5)支持融合gps &#x…

穿破行业增长迷雾,云鲸J4为何能成为“破题之钥”?

文 | 螳螂观察 作者 | 青月 这几年,消费者对于产品的需求一直在变。 像汽车,过去的消费者可能更看重车的安全性、油耗低等,可如今再看消费者对车的需求,车联网服务、自动辅助驾驶等过去被视为“边缘”的能力,正在变…

虚拟机Ubuntu操作系统最基本终端命令(安装包+详细解释+详细演示)

虚拟机及乌班图(Ubuntu操作系统) 提示:大家需要软件的可以直接在此链接中提取 链接:https://pan.baidu.com/s/1_4VHGTlXjIuVhBINeOuBCA 提取码:nd0c 文章目录 虚拟机及乌班图(Ubuntu操作系统)终…

医院不良事件管理系统源码 鱼骨图分析 跌倒事件、压疮事件、坠床事件等系统检测,智能上报

医疗不良事件报告系统源码 医疗不良事件报告系统源码旨在建立全面的、统一的医疗不良事件标准分类系统和患者安全术语,使不良事件上报管理更加标准化和科学化。通过借鉴国内外医疗不良事件报告系统的先进经验,根据医疗不良事件的事件类型、处理事件的不…

Linux高性能服务器编程 学习笔记 第二章 IP协议详解

本章从两方面探讨IP协议: 1.IP头部信息。IP头部出现在每个IP数据报中,用于指定IP通信的源端IP地址、目的端IP地址,指导IP分片和重组,指定部分通信行为。 2.IP数据报的路由和转发。IP数据报的路由和转发发生在除目标机器外的所有主…

【SSH】如何删掉远程服务器中的虚拟环境?如何删掉远程服务器中的用户?如何删掉某个文件夹?

文章目录 一、如何删掉远程服务器中的虚拟环境?二、如何删掉远程服务器中的用户?三、如何删掉某个文件夹? 一、如何删掉远程服务器中的虚拟环境? 在Linux系统下删除conda虚拟环境: # 删除虚拟环境 conda remove -n y…

Nginx 中 location 和 proxy_pass 的斜杠问题

location 的斜杠问题比较好理解,不带斜杠的是模糊匹配。例如: location /doc 可以匹配 /doc/index.html,也可以匹配 /docs/index.html。 location /doc/ 强烈建议使用这种 只能匹配 /doc/index.html,不能匹配 /docs/index…

基于SSM的班主任助理系统的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

Linux 编译安装中的 configure 命令

用了这么久的 Linux 系统,也许你会发现,在编译安装中,有的服务编译安装需要执行 configure 命令,而有的却不需要,这是为什么呢?也是不是像我一样一头雾水呢?其实这取决于服务的构建系统和配置方…

k8skubectl陈述式及声明式资源管理

k8s:kubectl陈述式及声明式资源管理 一、陈述式资源管理方法1.陈述式资源管理概念2.基本信息查看(1)查看版本信息(2)查看资源对象简写(3)查看集群信息(4)配置kubectl自动补全&#x…

搭建个人博客系统

效果图: 博客网址: 行秋http://8.137.35.5:8093/#/Home源码链接: QiuShicheng/Qiu-blog (github.com)https://github.com/QiuShicheng/Qiu-blog 视频参考: B站最通俗易懂手把手SpringBootVue项目实战-前后端分离博客项目-Java…

数据结构基础6:二叉树的实现和堆。

二叉树的概念和应用: 一.树的概念和结构:一.树的概念和结构:1.树的概念:2.树的相关概念:3.树的表示: 二.二叉树的概念和结构:1.概念:2.两种特殊的二叉树:1.完全二叉树&am…

一个CVE漏洞预警知识库

CVE 0x01 免责声明 本仓库所涉及的技术、思路和工具仅供安全技术研究,任何人不得将其用于非授权渗透测试,不得将其用于非法用途和盈利,否则后果自行承担。 无exp/poc,部分包含修复方案 0x02 项目导航 2022.12 CVE-2022-3328&a…

管理类联考——数学——汇总篇——知识点突破——应用题——工程

⛲️ 工程问题为常考题型,命题频率相对较高,题型难度属于中等,核心在于效率的有关计算。 1.工作量s、工作效率v、工作时间t三者的关系: 工作量 工作效率 工作时间( s v t ) 工作量工作效率工作时间&am…

第一章 数据库SQL-Server(及安装管理详细)

❄️作者介绍:奇妙的大歪❄️ 🎀个人名言:但行前路,不负韶华!🎀 🐽个人简介:云计算网络运维专业人员🐽 前言 21 世纪,人类迈入了“信息爆炸时代”&#xff0c…

Java计算机毕业设计基于SpringBoot音乐网项目(附源码讲解)

目录 用户端 第一步:用户注册 第二步:用户登录 第三步:平台首页(可查看平台歌单、歌手详细信息操作等等) 第四步:查看歌单 第五步:歌单详情操作(歌单评价、歌单歌曲下载、歌单…

2021-2023顶会190+篇ViT高分论文总结(通用ViT、高效ViT、训练transformer、卷积transformer等)

今天分享近三年(2021-2023)各大顶会中的视觉Transformer论文,有190篇,涵盖通用ViT、高效ViT、训练transformer、卷积transformer等细分领域。 全部论文原文及开源代码文末直接领取 General Vision Transformer(通用V…

Asp.Net 6.0集成 Log4Net

环境 需要安装NuGet包&#xff0c;明细如下&#xff1a; log4netMicrosoft.Extensions.Logging.Log4Net.AspNetCore 配置文件 文件名称 log4net.config&#xff0c;默认可以放在与启动类Program.cs同级目录下 <?xml version"1.0" encoding"utf-8"…

腾讯云服务器无法使用 xftp 上传文件

现象&#xff1a;xftp 连接腾讯云服务器后不能在可视化界面创建文件&#xff0c;也不能上传文件 解决办法&#xff1a; 一、防火墙开放 21 端口 二、使用 xshell 登陆云服务器&#xff0c;默认登陆为 ubuntu 用户&#xff0c;需要切到 root&#xff0c;只有 root 用户才有 FTP…

kubernetes-operator开发教程(基于kubebuilder脚手架)

1、Operator介绍 Operator是什么&#xff1f; Kubernetes Operator是一个自定义控制器&#xff0c;用于通过自动化操作来管理复杂应用或服务。 实现原理是什么&#xff1f; Kubernetes Operator的实现原理基于自定义控制器&#xff08;Controller&#xff09;和自定义资源定义…