本文隶属于专栏《大数据理论体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!
本专栏目录结构和参考文献请见大数据理论体系
伴随着社会的发展,用户对数据仓库的要求越来越高。
关于数据仓库请参考我的博客——数据仓库是什么?
越来越多的用户希望数据仓库能够做到:
推动这一趋势的因素部分是技术,部分是业务,部分是文化。
描述实时数仓(Real-time Data WareHouse,简称 RTDW
) 的最简单方法是它的外观和感觉都像一个普通的数据仓库,但即便保持着庞大的规模,速度依然很快。它是一种数据仓库现代化,可让您拥有“大数据”规模的“小数据”语义和性能。
虽然这听起来很简单,甚至对某些人来说可能是微不足道的,但十几年来大数据的发展已经表明并非如此。对于到达速度非常快的大量数据(其中一些可能需要更新)以及大量不同模式的查询,很难保持交互式性能。
下表提供了有关构成 RTDW 的用例特征的更多详细信息。
特征 | 详细描述 |
---|---|
摄取 | 中到高吞吐量,通常流式传输;仅针对插入以及插入+更新模式进行了优化 |
查询 | 针对点查找、分析、突变等进行了优化,低延迟、高并发;流入的数据可以立即以最佳方式进行查询;流式传输的数据可与历史数据一起查询,无需 Lambda 架构 |
数据模型 | 传统企业数据类型;中小型型号;主要以维数和反三范式为主,偶尔三范式模型 |
如果用比较规范的语言来描述实时数仓,可以这样来描述:
实时数仓是一种将实时流数据和批量数据进行整合的数据仓库,它可以为企业提供实时的业务洞察和决策支持,是现代数据处理和分析的重要组成部分。
实时数仓是一种存储系统,用于存储和分析实时数据。数据在可用时自动捕获,然后立即分析并与已存储的历史数据相关联。最终,用户能够更快地获取数据,更快地查看和分析它。
实时数仓具有许多优势,包括:
实时数仓也带来了挑战:
关于 ETL 请参考我的博客——什么是 ETL ?什么是 ELT ?
实时数仓通常具有四个组件:数据收集层
、数据存储层
、实时计算层
和实时应用层
。这些组件协同工作,以便在事件发生后立即或短时间内支持事件数据的处理和分析。所有数据处理阶段(数据摄取、丰富、分析、基于 AI/ML 的分析)都是连续的,具有最小延迟,并且能够实现实时报告和即席分析。
一个比较典型的实时数仓架构如下所示:
关于 Hadoop 请参考我的博客——Hadoop是什么?
关于 Apache Kafka 请参考我的博客——Kafka 是什么?
关于 Apache Druid 请参考我的博客——一篇文章了解 Apache Druid
关于 Apache Spark 请参考我的博客——为什么Spark这么牛逼?
实时数仓在各行各业都有广泛的应用。以下是一些实时数仓的应用案例:
实时数仓的技术实现通常包括以下几个方面:
目前,有许多技术可以用于实现实时数仓。例如,Apache Flink 是一个流行的流处理引擎,可以用于实现实时计算层。TiDB 是一个开源的分布式 HTAP 数据库,可以用于实现数据存储层。此外,还有许多其他技术可以用于实现实时数仓,参考下图,具体取决于您的需求和偏好。
数据仓库(Data Warehouse)和实时数仓(Real-time Data Warehouse)是两种不同的数据管理和分析架构,它们有以下区别:
总之,数据仓库和实时数仓是两种不同的数据管理和分析架构,它们在数据更新方式、数据处理方式、数据结构、数据存储方式和数据查询方式等方面存在一些区别。我们需要根据具体的业务需求和场景来选择适合的数据管理和分析架构。
实时数仓不一定必须有批处理层,但是在某些情况下,批处理层可以为实时数仓带来一些优势。
在实时数仓中,实时处理层通常用于处理实时数据流,而批处理层用于处理历史数据。批处理层可以对历史数据进行离线处理,以产生更准确的数据结果。例如,如果需要对历史数据进行聚合操作,则可以使用批处理层对历史数据进行离线聚合,并将结果存储在批量数据存储系统中。这样,实时数仓就可以同时支持实时数据和历史数据的查询和分析。
此外,批处理层还可以用于数据重放和故障恢复。如果实时数据处理层出现故障,可以使用批处理层重新处理历史数据,并将结果重新注入到实时数据处理层中,以保证数据的完整性和正确性。
总之,在某些情况下,批处理层可以为实时数仓带来一些优势,但它并不是必需的。实时数仓的设计应该根据具体的业务需求和场景来确定是否需要批处理层。
本文讨论了实时数仓(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.