实时数仓和离线数仓的区别是什么?企业如何选择合适的数仓架构?

时数仓和离线数仓都是数据仓库的不同类型,用于存储和管理企业的数据,但它们在数据处理和使用的时间、速度以及用途方面有明显的区别。

在介绍实时数仓之前,我们理应先来了解一下传统的离线数仓。毕竟在企业早期的数据建设规划中,在数据实时性要求不高的前提下,基本一开始都会选择建设离线数仓。

一、离线数仓

  1. 离线数仓是什么?
    离线数仓(Offline Data Warehouse)是一个用于存储和处理批处理数据的系统。它的特点是数据的处理和分析是基于批处理作业进行的,通常以较长的时间周期为单位。传统离线数仓的数据时效性是 T+1,调度频率以天为单位,无法支撑实时场景的数据需求。即使能将调度频率设置成小时,也只能解决部分时效性要求不高的场景,对于实效性要求很高的场景还是无法优雅的支撑。

  2. 离线数仓的特点
    批处理:离线数仓通过批处理作业处理数据,这意味着数据在一定时间周期内收集、存储,然后一次性处理。

高容量:离线数仓通常设计用于存储大量历史数据。

延迟较高:由于数据处理是批处理的,因此离线数仓不适合需要实时或近实时数据的应用。

  1. 离线数仓的适用场景
    需要进行历史数据分析、报告生成的应用,如销售报告、月度财务报表等。

数据量较大且处理时间不是关键问题的应用。

但是随着企业的发展,数据量日益增大,传统数据的方案在时效性上和数据维护上变得越来越困难。这时,实时数仓应运而生。

二、实时数仓

  1. 实时数仓是什么?
    实时数仓(Real-time Data Warehouse)是一个用于存储和处理实时数据的系统。它的主要特点是数据的处理和分析是即时进行的,数据几乎立即进入数仓并可以立即用于分析和决策。

  2. 实时数仓的特点
    低延迟:实时数仓能够在数据产生后迅速将其捕捉和处理,通常以秒或亚秒级的速度。

数据流处理:实时数仓通常使用流式处理技术来处理数据,这允许数据在进入仓库时立即进行转换和计算。

实时分析:数据可以用于实时监控、仪表板、预测和决策支持。

高吞吐量:实时数仓需要处理大量的数据流,因此需要具备高吞吐量的性能。

复杂性:由于需要处理实时数据流,实时数仓的架构和技术通常比较复杂。

  1. 实时数仓的适用场景
    需要实时监控业务指标的应用,如金融交易看板、实时销售报表、在线广告投放分析等。

需要立即采取行动以应对实时事件的应用,如异常监测大屏、欺诈实时检测等。

三、由数仓需求变化带来的数据仓库架构的演变
从1990年 Inmon 提出数据仓库概念到今天,数仓架构经历了最初的传统数仓架构、离线大数据架构、Lambda 架构、Kappa 架构以及由Flink 的火热带出的流批一体架构,数据架构技术不断演进,本质是在往流批一体的方向发展,让用户能以最自然、最小的成本完成实时计算。

  1. 传统数仓架构

这是比较传统的一种方式,结构或半结构化数据通过离线ETL定期加载到离线数仓,之后通过计算引擎取得结果,供前端使用。这里的离线数仓+计算引擎,通常是使用大型商业数据库来承担,例如Oracle、DB2、Teradata等。

  1. 离线大数据架构
    随着数据规模的不断增大,传统数仓方式难以承载海量数据。随着大数据技术的普及,采用大数据技术来承载存储与计算任务。数据源通过离线的方式导入到离线数仓中。下游应用根据业务需求选择直接读取 DM 或加一层数据服务,比如 MySQL 或 Redis。

数据仓库从模型层面分为三层:

ODS,操作数据层,保存原始数据;

DWD,数据仓库明细层,根据主题定义好事实与维度表,保存最细粒度的事实数据;

DM,数据集市/轻度汇总层,在 DWD 层的基础之上根据不同的业务需求做轻度汇总。

当然,也可以使用传传统数据库集群或MPP架构数据库来完成。例如Hadoop+Hive/Spark、Oracle RAC、GreenPlum等。

  1. Lambda架构
    随着业务的发展,随着业务的发展,人们对数据实时性提出了更高的要求。此时,出现了Lambda架构,其将对实时性要求高的部分拆分出来,增加条实时计算链路。从源头开始做流式改造,将数据发送到消息队列中,实时计算引擎消费队列数据,完成实时数据的增量计算。与此同时,批量处理部分依然存在,实时与批量并行运行。最终由统一的数据服务层合并结果给于前端。一般是以批量处理结果为准,实时结果主要为快速响应。

  2. Kappa架构
    而Lambda架构,一个比较严重的问题就是需要维护两套逻辑。一部分在批量引擎实现,一部分在流式引擎实现,维护成本很高。此外,对资源消耗也较大。随后诞生的Kappa架构,正是为了解决上述问题。其在数据需要重新处理或数据变更时,可通过历史数据重新处理来完成。方式是通过上游重放完成(从数据源拉取数据重新计算)。

可Kappa架构最大的问题是流式重新处理历史的吞吐能力会低于批处理,但这个可以通过增加计算资源来弥补。

  1. 混合架构
    上述架构各有其适应场景,有时需要综合使用上述架构组合满足实际需求。当然这也必将带来架构的复杂度。用户应根据自身需求,有所取舍。在一般大多数场景下,是可以使用单一架构解决问题。现在很多产品在流批一体、海量、实时性方面也有非常好的表现,可以考虑这种“全能手”解决问题。

综上所述,数仓建设是企业数据管理和决策支持的关键环节,在实践中,企业需要根据自身业务需求和数据规模,选择合适的数仓建设方案和技术方案,以提高企业数据资产的价值和利用效率。

FineDataLink——小到数据库对接、API对接、行列转换、参数设置,大到任务调度、运维监控、实时数据同步、数据服务API分享,另外它可以满足数据实时同步的场景,应有尽有,功能很强大。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker Desktop for Windows 系统设置说明文档

1. 文档概述 本文档旨在详细说明 Docker Desktop for Windows 应用程序中“设置 (Settings)”界面下的所有可配置选项及其子选项。对于每个配置项,我们将提供其功能描述、推荐配置(如适用)以及相关注意事项,帮助用户更好地理解和…

精准监测,健康无忧--XC3576H工控主板赋能亚健康检测仪

在快节奏的现代生活中,亚健康问题逐渐成为困扰人们健康的隐形杀手。疲劳、失眠、免疫力下降等问题频发,却往往因难以察觉而延误调理。智能亚健康检测仪通过高科技手段,帮助用户实时了解身体状况,提前预警潜在健康风险。 其核心功能…

SBT开源构建工具

SBT 的多元定义与核心解释 SBT(Simple Build Tool)是专为 Scala 和 Java 项目设计的开源构建工具,基于 Scala 语言开发,提供依赖管理、编译、测试、打包等全流程支持。其核心特点包括: 核心功能与特性: …

npm run build后将打包文件夹生成zip压缩包

安装依赖 npm install archiver --save-dev准备compress.js文件 const fs require(fs); const archiver require(archiver);const sourceDir ./dist; //替换为你的文件夹路径 const outputZip ./dist.zip;console.log(开始压缩); const output fs.createWriteStream(ou…

力扣 215 .数组中的第K个最大元素

文章目录 题目介绍题解 题目介绍 题解 法一:基于快速排序的选择方法 以中间元素pivot为基准进行排序后,右指针 r 的位置就是最终全部排序好后pivot的位置,然后去左边或右边递归寻找第k个位置(答案)的元素。 代码如下…

CentOS 7.0重置root密码

文章目录 版本:CentOS 7.0内核版本:CentOS Linux, with Linux 3.10.0-123.el7.x86_64 服务器重启后,等待进入上述页面,按⬆⬇键,中断正常启动。在此页面按E,进入编辑模式 继续按⬇,找到linux16…

Linux之高效文本编辑利器 —— vim

目录 一、vim的基本概念 二、Vim 的三种基本模式 1. 命令模式(Command Mode) 2. 插入模式(Insert Mode) 3. 底行模式(Last Line Mode) 模式切换方法 IDE例子: 三、vim的基本操作 进入vim…

【STM32】HAL库 之 CAN 开发指南

基于stm32 f407vet6芯片 使用hal库开发 can 简单讲解一下can的基础使用 CubeMX配置 这里打开CAN1 并且设置好波特率和NVIC相关的配置 波特率使用波特率计算器软件 使用采样率最高的这段 填入 得到波特率1M bit/s 然后编写代码 环形缓冲区 #include "driver_buffer.h&qu…

《Scientific Reports撤稿门技术节分析》——从图像篡改检测到学术伦理重建的技术透视

2023年以来,《Scientific Reports》等开放获取期刊频繁曝出大规模撤稿事件,涉及数据造假、图像重复、AI生成内容篡改等技术性学术不端行为。本文以技术视角切入,系统分析撤稿事件背后的技术动因、检测手段漏洞、学术出版体系的技术短板及应对…

Client请求Grpc服务报错

现象:err: rpc error: code Unimplemented desc 背景:调用链路A->B->C,A是一个Http协议的接口,B也是一个Http协议的接口, 但C是一个Grpc协议的接口。 解决思路:查看C服务对应的proto,比…

机器学习课程设计报告 —— 基于口红数据集的情感分析

目录 一、课程设计目的 二、数据预处理及分析 2.1 数据预处理 2.2 数据分析 三、特征选择 3.1 特征选择的重要性 3.2 如何进行特征选择 3.3 特征选择的依据 3.4 数据集的划分 四、模型训练与模型评估 4.1 所有算法模型不调参 4.2 K-近邻分类模型 4.3 GaussianNB模…

Flutter 实现6个验收码输入框

开箱即用,初始化时就唤起键盘,并选中第一个 import package:flutter/material.dart;import dart:async; // 引入 Timer 类class VerificationCode extends StatefulWidget {final String phoneNumber;const VerificationCode({super.key, required this.…

如何查看服务器有几张GPU

要查看服务器上有多少张 GPU,你可以使用以下几种方法: 1.1 使用 nvidia-smi工具(针对 NVIDIA GPU): 如果你的服务器上安装了 NVIDIA GPU 驱动程序,那么可以使用 nvidia-smi 命令查看详细的 GPU 信息。 n…

3099. 哈沙德数

​题目来源: LeetCode题目:3099. 哈沙德数 - 力扣(LeetCode) 解题思路: 按要求求和判断即可。 解题代码: #python3 class Solution:def sumOfTheDigitsOfHarshadNumber(self, x: int) -> int:sumDigi…

数字化回归本质:第一性原理驱动的制造业转型与AI+云PLM系统实践

2014年,埃隆马斯克在南加州大学商学院的毕业演讲上,留下了一场5分钟的精彩分享,他将自己对工作和人生的思考总结为五个要点,其中一点说到了他的决策方式: “也许你听我说过,要从物理学的角度思考问题&…

仿DeepSeek AI问答系统完整版(带RAG本地知识库+联网搜索+深度思考) +springboot+vue3

今天教大家如何设计一个企业级的 deepseek问答 一样的系统 , 基于目前主流的技术:前端vue3,后端springboot。同时还带来的项目的部署教程。 系统的核心功能 1. 支持本地上传文档知识库,RAG技术。 支持的文档有txt,doc&#xff0c…

27、请求处理-【源码分析】-怎么改变默认的_method

27、请求处理-【源码分析】-怎么改变默认的_method 要改变 Spring Boot 中默认的 _method 参数,可以通过以下步骤实现: #### 原理分析 Spring Boot 中默认的 HiddenHttpMethodFilter 用于将表单中的 _method 参数值映射为实际的 HTTP 方法(如…

欧拉角转为旋转矩阵

外旋是固定坐标系,内旋是动态坐标系。外旋和内旋具有等价性。 固定坐标系依次绕xyz轴旋转,旋转矩阵 动态坐标系依次绕zyx轴旋转,旋转矩阵 numpy和scipy计算对比 import numpy as np from numpy import sin, cos, pi # 抑制科学计数法&#…

【AI学习笔记】Coze平台实现生成小红书热门多图笔记

背景前摇&原视频教程: 最近总是在小红书上刷到多图组成的养生小妙招、效率提升小tips、退休奶奶疗愈语录等等这样的图文笔记,而且人物图像一眼就是AI画的。 当时我以为这个排版和文字是人工的,就让AI保持角色一致性画了下图,…

如何选择自动化编程平台

从事自动化行业的工作者都知道,做PLC编程需要PLC编程软件,做HMI可视化需要HMI编程软件,做SCADA需要SCADA编程软件,做DCS需要DCS软件,做仿真调试需要仿真软件。这些软件有国外的、国内的,有传统自动化厂商开…