实时数仓详解

news2024/11/23 9:44:11

前言

本文隶属于专栏《大数据理论体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和参考文献请见大数据理论体系


背景

伴随着社会的发展,用户对数据仓库的要求越来越高。

关于数据仓库请参考我的博客——数据仓库是什么?

越来越多的用户希望数据仓库能够做到:

  • 分析实时数据和最新数据和历史数据
  • 跨数据域的相关性,即使它们传统上不存储在一起(例如,实时客户事件数据与CRM数据一起;网络传感器数据与营销活动管理数据)
  • “大数据”的极端规模,却具有“小数据”的感觉和语义
  • 以上所有功能都在一个集成且安全的平台上

推动这一趋势的因素部分是技术,部分是业务,部分是文化。

  • 在技术方面,检测所有内容并通过消息传递系统实时发送数据比以往任何时候都更便宜、更容易。
  • 在商业方面,公司和政府正在尽可能多地数字化和自动化他们的运营,以便决策和资产管理可以更有效。
  • 在文化方面,人们希望能够立即获得所需的答案,而不必去问别人。

实时数仓的定义

在这里插入图片描述

描述实时数仓(Real-time Data WareHouse,简称 RTDW ) 的最简单方法是它的外观和感觉都像一个普通的数据仓库,但即便保持着庞大的规模,速度依然很快它是一种数据仓库现代化,可让您拥有“大数据”规模的“小数据”语义和性能。

  • 数据更快地到达仓库;想想每秒数百万个事件不断到达的流
  • 数据以最佳方式查询所需的时间更快,到达后立即查询,无需处理、聚合或压缩
  • 查询运行的速度更快,小型选择性查询以 10 秒或 100 毫秒为单位测量;扫描或计算密集型大型查询以非常高的带宽进行处理
  • 在需要时,数据的突变速度很快:如果出于任何原因需要更正或更新数据,则可以就地完成,而无需大量重写

虽然这听起来很简单,甚至对某些人来说可能是微不足道的,但十几年来大数据的发展已经表明并非如此。对于到达速度非常快的大量数据(其中一些可能需要更新)以及大量不同模式的查询,很难保持交互式性能。

下表提供了有关构成 RTDW 的用例特征的更多详细信息。

特征详细描述
摄取中到高吞吐量,通常流式传输;仅针对插入以及插入+更新模式进行了优化
查询针对点查找、分析、突变等进行了优化,低延迟、高并发;流入的数据可以立即以最佳方式进行查询;流式传输的数据可与历史数据一起查询,无需 Lambda 架构
数据模型传统企业数据类型;中小型型号;主要以维数和反三范式为主,偶尔三范式模型

如果用比较规范的语言来描述实时数仓,可以这样来描述:

实时数仓是一种将实时流数据和批量数据进行整合的数据仓库,它可以为企业提供实时的业务洞察和决策支持,是现代数据处理和分析的重要组成部分

实时数仓是一种存储系统,用于存储和分析实时数据。数据在可用时自动捕获,然后立即分析并与已存储的历史数据相关联。最终,用户能够更快地获取数据,更快地查看和分析它。


实时数仓的优势和挑战

在这里插入图片描述

实时数仓具有许多优势,包括:

  • 更快的决策:实时数仓使组织能够整合来自不同来源的数据,从中提取见解,并利用它们更快地做出战略性业务决策。组织可以实时刷新数据仓库中所有业务系统的数据,并将报表设置为根据需要运行。这节省了生成报告和分析所需的时间,从而实现更敏捷的决策。
  • 提高数据民主化:实时数仓促进了数据民主化,使组织中的每个人都能够访问他们需要执行职责并优化其计划所需的当前和历史数据。
  • 个性化的客户体验:实时数仓为高级分析和机器学习奠定了基础,这对于跨组织使用的所有渠道提供个性化的客户体验至关重要。
  • 提高业务敏捷性:实时数仓提高了企业响应变化的速度。它减少了业务流程中的时间滞后,帮助组织更加敏捷并更快地利用机会。实时数仓可帮助公司立即发现机会并调整业务不同方面的战略,从而提高效率并使他们能够实现收入和利润目标。
  • 解锁新的业务用例:实时访问数据可以为各行各业的企业解锁大量用例。它有可能改变企业的运营方式以及他们可以为客户提供的价值。

实时数仓也带来了挑战:

  • 其中最大的一个是ETL(提取,转换,加载)的性能,该过程将数据从源系统复制到仓库。ETL 工具通常以批处理模式运行,这非常耗时,并且需要仓库停机,使数据不可用。
  • 此外,实时数仓面对一些复杂的实时计算场景也表现乏力,比如多流关联等。

关于 ETL 请参考我的博客——什么是 ETL ?什么是 ELT ?


实时数仓的架构

实时数仓通常具有四个组件:数据收集层数据存储层实时计算层实时应用层。这些组件协同工作,以便在事件发生后立即或短时间内支持事件数据的处理和分析。所有数据处理阶段(数据摄取、丰富、分析、基于 AI/ML 的分析)都是连续的,具有最小延迟,并且能够实现实时报告和即席分析。

一个比较典型的实时数仓架构如下所示:

在这里插入图片描述

  • 数据收集层:第三方服务和协同系统通过 Apache Kafka/Apache Nifi 之类的消息总线传输数据到实时数仓;第三方数据源通过调用实时数仓的 API;物联网系统通过直接连接并推送数据的方法传输数据
  • 数据存储层:使用 Apache Kudu/Apache Druid/Amazon Redshift 来进行实时数据存储
  • 实时计算层:使用 Apache Spark/Amazon Kinesis/Hadoop 来进行实时计算和分析
  • 实时应用层:使用 AI 和机器学习技术对数据进行分析和挖掘,使用 SQL Server/Oracle BI 来支持查询、报告和即席查询;使用 Apache Impala 来支持实时报告和告警。

关于 Hadoop 请参考我的博客——Hadoop是什么?
关于 Apache Kafka 请参考我的博客——Kafka 是什么?
关于 Apache Druid 请参考我的博客——一篇文章了解 Apache Druid
关于 Apache Spark 请参考我的博客——为什么Spark这么牛逼?


实时数仓的应用案例

在这里插入图片描述

实时数仓在各行各业都有广泛的应用。以下是一些实时数仓的应用案例:

  • 实时 OLAP 分析:实时数仓可以支持实时 OLAP 分析,帮助企业快速获取业务洞察,做出更快的决策²。
  • 实时数据看板:实时数仓可以支持实时数据看板,帮助企业实时监控业务运行情况,及时发现问题并采取措施²。
  • 实时业务监控:实时数仓可以支持实时业务监控,帮助企业及时发现业务异常并采取相应措施²。
  • 实时数据接口服务:实时数仓可以支持实时数据接口服务,帮助企业快速获取所需数据,提高业务效率²。

实时数仓的技术实现

实时数仓的技术实现通常包括以下几个方面:

  • 消息总线:负责从各种数据源收集实时数据,并将其传输到数据存储层。
  • 实时存储:负责存储实时数据,支持快速查询和分析。
  • 流处理和分析:负责对实时数据进行计算和分析,支持快速查询和分析。
  • 应用层:负责将实时计算结果展示给用户,支持快速查询和分析。

目前,有许多技术可以用于实现实时数仓。例如,Apache Flink 是一个流行的流处理引擎,可以用于实现实时计算层。TiDB 是一个开源的分布式 HTAP 数据库,可以用于实现数据存储层。此外,还有许多其他技术可以用于实现实时数仓,参考下图,具体取决于您的需求和偏好。

在这里插入图片描述


思考

1. 数仓和实时数仓有什么区别?

在这里插入图片描述

数据仓库(Data Warehouse)和实时数仓(Real-time Data Warehouse)是两种不同的数据管理和分析架构,它们有以下区别:

  1. 数据更新方式:数据仓库通常采用批处理方式,数据更新周期较长,一般为每日或每周更新,而实时数仓则支持实时数据流处理,数据更新周期较短,一般为每小时或每分钟更新。
  2. 数据处理方式:数据仓库通常采用在线分析处理(OLAP)方式,支持复杂的数据查询和分析,而实时数仓则更多地采用在线事务处理(OLTP)方式,用于支持实时的数据查询和分析。
  3. 数据结构:数据仓库通常采用多维数据结构(如星型模型、雪花模型等),而实时数仓则更多地采用关系型数据结构。
  4. 数据存储方式:数据仓库通常采用离线存储方式,数据存储在大型的数据仓库中,而实时数仓则更多地采用内存存储方式,数据存储在内存中,以提高数据查询和分析的速度。
  5. 数据查询方式:数据仓库通常采用多维查询语言(MDX)进行数据访问,而实时数仓则更多地采用结构化查询语言(SQL)进行数据访问。

总之,数据仓库和实时数仓是两种不同的数据管理和分析架构,它们在数据更新方式、数据处理方式、数据结构、数据存储方式和数据查询方式等方面存在一些区别。我们需要根据具体的业务需求和场景来选择适合的数据管理和分析架构。


2. 实时数仓需要批处理层吗?

实时数仓不一定必须有批处理层,但是在某些情况下,批处理层可以为实时数仓带来一些优势。

在实时数仓中,实时处理层通常用于处理实时数据流,而批处理层用于处理历史数据。批处理层可以对历史数据进行离线处理,以产生更准确的数据结果。例如,如果需要对历史数据进行聚合操作,则可以使用批处理层对历史数据进行离线聚合,并将结果存储在批量数据存储系统中。这样,实时数仓就可以同时支持实时数据和历史数据的查询和分析。

此外,批处理层还可以用于数据重放和故障恢复。如果实时数据处理层出现故障,可以使用批处理层重新处理历史数据,并将结果重新注入到实时数据处理层中,以保证数据的完整性和正确性。

总之,在某些情况下,批处理层可以为实时数仓带来一些优势,但它并不是必需的。实时数仓的设计应该根据具体的业务需求和场景来确定是否需要批处理层。


总结

本文讨论了实时数仓(RTDW)的背景、定义、优势和挑战、架构、应用案例以及技术实现。

实时数仓是一种现代化的数据仓库,具有大数据规模的小数据语义和性能。它可以处理实时数据、最新数据和历史数据,并且能够跨数据域进行相关性分析。实时数仓具有更快的数据到达和查询速度,可以在集成且安全的平台上完成所有功能。

实时数仓的优势包括更快的决策、数据民主化、个性化的客户体验、提高业务敏捷性和解锁新的业务用例。然而,实时数仓也面临着ETL性能复杂实时计算场景等挑战。

典型的实时数仓架构包括数据收集层、数据存储层、实时计算层和实时应用层。数据收集层负责接收和传输数据,数据存储层用于实时数据存储,实时计算层用于实时计算和分析,实时应用层用于数据分析和挖掘。

实时数仓可以应用于实时OLAP分析、实时数据看板、实时业务监控和实时数据接口服务等场景。其技术实现通常包括消息总线、实时存储、流处理和分析以及应用层。

常用的实时数仓技术包括Apache Kafka、Apache Druid、Apache Spark、Hadoop、TiDB等,具体选择取决于需求和偏好。


参考

(1) What Is Real-Time Data? An Introduction | Splunk. https://www.splunk.com/en_us/data-insider/what-is-real-time-data.html.
(2) Building a Real-Time Data Warehouse - DZone. https://dzone.com/articles/building-a-real-time-data-warehouse-with-tidb-and.
(3) What is a Data Warehouse? | IBM. https://www.ibm.com/topics/data-warehouse.
(4) Data Warehouse: Definition, Uses, and Examples | Coursera. https://www.coursera.org/articles/data-warehouse.
(5) Active and Real-Time Data Warehousing | SpringerLink. https://link.springer.com/referenceworkentry/10.1007/978-0-387-39940-9_8.
(6) An Overview of Real Time Data Warehousing on Cloudera. https://blog.cloudera.com/an-overview-of-real-time-data-warehousing-on-cloudera/.
(7) Real-Time Data Warehouse: Architecture, Tech Stack, Examples - ScienceSoft. https://www.scnsoft.com/analytics/data-warehouse/real-time.
(8) Apache Flink + TiDB: A Scale-Out Real-Time Data Warehouse for … - PingCAP. https://www.pingcap.com/blog/apache-flink-tidb-a-scale-out-real-time-data-warehouse-for-analytics-within-seconds/.
(9) From Traditional Data Warehouse To Real Time Data Warehouse - ResearchGate. https://www.researchgate.net/publication/314248372_From_Traditional_Data_Warehouse_To_Real_Time_Data_Warehouse.
(10) How To Use Real-Time Data? Key Examples And Use Cases - Forbes. https://www.forbes.com/sites/bernardmarr/2022/03/14/how-to-use-real-time-data-key-examples-and-use-cases/.
(11) Database vs. Data Warehouse: Differences, Use Cases, Examples. https://www.couchbase.com/blog/database-vs-data-warehouse/.
(12) Best Practices for Real-time Data Warehousing - Oracle. https://www.oracle.com/technetwork/middleware/data-integrator/overview/best-practices-for-realtime-data-wa-132882.pdf.
(13) Data Warehousing Modeling Techniques and Their Implementation on the … https://www.databricks.com/blog/2022/06/24/data-warehousing-modeling-techniques-and-their-implementation-on-the-databricks-lakehouse-platform.html.
(14) Five benefits of real-time data warehousing | Blog | Fivetran. https://www.fivetran.com/blog/5-benefits-of-real-time-data-warehousing.

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

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

相关文章

ChatGPT中 top_p 和 temperature 的作用机制

1. temperature 的作用机制 GPT 中的 temperature 参数调整模型输出的随机性。随机性大可以理解为多次询问的回答多样性、回答更有创意、回答更有可能没有事实依据。随机性小可以理解为多次询问更有可能遇到重复的回答、回答更接近事实(更接近训练数据)…

pycharm快捷键

目录 1、代码编辑快捷键 2、搜索/替换快捷键 3、代码运行快捷键 4、代码调试快捷键 5、应用搜索快捷键 6、代码重构快捷键 7、动态模块快捷键 8、导航快捷键 9、通用快捷键 🎁更多干货 完整版文档下载方式: 1、代码编辑快捷键 CTRL ALT SP…

Vue-Element-Admin项目学习笔记(9)表单组件封装,父子组件双向通信

前情回顾: vue-element-admin项目学习笔记(1)安装、配置、启动项目 vue-element-admin项目学习笔记(2)main.js 文件分析 vue-element-admin项目学习笔记(3)路由分析一:静态路由 vue-element-adm…

TOWARDS A UNIFIED VIEW OF PARAMETER-EFFICIENT TRANSFER LEARNING

本文也是属于LLM系列的文章,针对《TOWARDS A UNIFIED VIEW OF PARAMETER-EFFICIENT TRANSFER LEARNING》的翻译。 关于参数有效迁移学习的统一观点 摘要1 引言2 前言2.1 Transformer结构综述2.2 之前的参数高效调优方法综述 3 弥合差距-统一的视角3.1 仔细观察Pref…

火山引擎A/B测试推出智能流量调优实验,助力汽车行业破局营销困境

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 2023年是汽车行业挑战加剧的一年,在这样一个变革时期,多家车企都在进行创新技术和战略调整,实现灵活的科学决策,在发…

03 Web全栈 浏览器内置对象/事件/ajax

浏览器是一个JS的运行时环境,它基于JS解析器的同时,增加了许多环境相关的内容,用一张图表示各个运行环境和JS解析器的关系如下: 我们把常见的,能够用JS这门语言控制的内容称为一个JS的运行环境,常见的运行环…

PDF怎么在线编辑?PDF编辑软件推荐!​

PDF怎么在线编辑?PDF是一种常见的文档格式,用于存储和共享各种类型的文档,如电子书、报告、表格、合同和演示文稿等。然而,PDF文档通常是只读的,无法直接进行编辑。在过去,要编辑PDF文档通常需要购买专业的…

JVM 常量池、即时编译与解析器、逃逸分析

一、常量池 1.1、常量池使用 的数据结构 常量池底层使用HashTable key 是字符串和长度生成的hashValue,然后再hash生成index, 改index就是key;Value是一个HashTableEntry; 1、key hashValue hash string(name, len) i…

高级DBA手把手教你解决clickhouse数据库宕机生产事故实战全网唯一

高级DBA手把手教你解决clickhouse数据库宕机生产事故实战演练 一、事故描述 生产环境clickhouse宕机,重启之后,反复重启,重启几秒钟又死了。甲方客户叫天,大老板火冒三丈,天下大乱。老板电话打过来,要求半…

webrtc源码阅读之examples/peerconnection

阅读webrtc源码,从examples中的peerconnection开始。版本m98。 一、 基本流程 server端只是做了一个http server,来转发client端的消息。也就是起到了信令服务器的作用,本篇文章不在研究,感兴趣的可以学习一下用cpp搭建http serv…

Mysql架构篇--Mysql(M-M) 主从同步

文章目录 前言一、M-M 介绍:二、M-M 搭建:1.Master1:1.1 my.cnf 参数配置:1.2 创建主从同步用户:1.3 开启复制: 2.Master2:2.1 my.cnf 参数配置:2.2 创建主从同步用户:2.…

飞桨携手登临解读软硬一体技术优势,共推AI产业应用落地

众所周知,AI应用落地面临着场景碎片化、开发成本高、算力成本高等诸多难题,这对AI框架与AI芯片都提出了非常高的要求,即既要满足端、边、云多场景的部署需求,还需要支持自动化压缩与高性能推理引擎深度联动。因此充分发挥软硬一体…

通过一个简单的例子理解 Python 中的多线程

关于进程和线程的概念可以看这篇文章: https://blog.csdn.net/ThinkWon/article/details/102021274 什么时候需要多线程编程?简单来说就是一个程序里面有比较耗时间的操作,你希望先让它单独跑着,直接开始进行下一步的操作(Python默…

centos中部署调用matlab程序

环境: Java8 MATLAB2018b centos7 在本机环境上运行成功后的代码打包部署到服务器上运行会报错,需要在服务器上安装MATLAB的运行环境。 首先下载跟本机MATLAB环境一样的mcr文件。 打开网址 http://cn.mathworks.com/products/compiler/mcr/ 下载对…

Python调用百度地图API实现路径规划提取真实距离、时间

1.注册百度地图开放平台账号 网址:百度地图开放平台 | 百度地图API SDK | 地图开发 2.打开控制台,创建应用、获取AK 如下图所示 桥重点、敲重点、瞧重点 在使用python调用API端口时,我们需要申请的为服务端应用类别,别申请错了…

JS实现简单拼图游戏

JS实现简单拼图游戏 点击“打乱”按钮开始游戏&#xff1b;按下鼠标左键拖动一块到另一块上松开鼠标左键互换。游戏资源为一张图片 我这里名称为 2.jpg&#xff0c;将其与下面的网页文件放在同一目录中即可。 网页文件源码如下&#xff1a; <!DOCTYPE html> <html&…

Chapter 1: Introduction - Why Program? | Python for Everybody 讲义_Cn

文章目录 Python for Everybody课程简介适合所有人的 Python (Why Program?)为什么要学习写程序&#xff1f;创造力和动力计算机硬件架构了解编程单词和句子与 Python 对话术语&#xff1a;解释器和编译器Writing a program什么是程序&#xff1f;The building blocks of prog…

移远通信联合中国移动研究院等伙伴发布5G RedCap和车载模组白皮书

6月28日&#xff0c;在“2023年上海世界移动通信大会(MWC)”上&#xff0c;中国移动研究院联合移远通信等产业合作伙伴&#xff0c;共同发布了《5G RedCap轻量化通用模组技术要求白皮书》以及《车载模组技术发展白皮书》。 白皮书的发布为5G RedCap和车载领域技术和产业的进一步…

pdf加水印怎么加?一分钟学会!

在办公场景中&#xff0c;我们经常需要向客户或同事发送PDF格式的文件。这时就会面临一个问题&#xff1a;如何为我们的劳动成果打上个人烙印呢?答案是通过添加水印来满足我们的需求。但是&#xff0c;如何给PDF添加水印呢?难道要手动一个个添加吗?这无疑非常费力&#xff0…

整合来自多个Aurora数据库数据,亚马逊云科技为用户提供数据分析一体化融合解决方案

亚马逊云科技近日在沙利文联合头豹研究院发布的《2023年中国数据管理解决方案市场报告》中再次获评中国数据管理解决方案的领导者位置&#xff0c;并在增长指数和创新指数上获得最高评分。亚马逊云科技凭借其独特的数据服务和数据湖组合、全面的无服务器选项、打破数据传输壁垒…