数据仓库、实时数仓、湖仓一体的区别?

时间:2023-06-01
作者: ruby

1、数据仓库是什么?

数据仓库是一个集中的、用于管理和分析企业数据的系统。它提供了一个高性能的、可扩展的、面向主题的存储,用于支持企业中各种业务部门对数据进行查询、分析、报告和挖掘。

与在线交易处理系统(OLTP)不同,数据仓库可以提供离线分析服务。它通常设计用于支持复杂的查询和报告,包括大量的数据计算,并且通常从多种不同的数据源进行提取和集成。这意味着数据仓库通常包括多个不同的数据表,这些数据表根据某种方式组织在一起,以支持企业内部各种各样的数据需要。

数据仓库通常通过组件化设计以支持不同的组件和接口。其中包括ETL(抽取,转换和加载),数据存储层,元数据管理和数据挖掘工具。ETL组件用于从不同数据库,文件系统和云资源中提取数据,规范化数据并加载到数据存储中。

数据存储是用于存储数据的核心组件。元数据管理组件是用于管理和跟踪数据仓库中数据和表元数据的工具。数据挖掘工具用于分析和理解这些数据,以提取更深层次的商业应用洞察。

2、实时数仓是什么?

数仓,即存放数据的仓库,包括全量数据、历史数据。类型上又分为实时数仓、离线数仓,所谓实时数仓是指数据的实时性更高、延迟性低,一般是统计一天以内的数据,支持毫秒级的统计。

实时数仓主要是为了解决传统数仓数据时效性低的问题,实时数仓通常会用在实时的OLAP分析、实时的数据看板、业务指标实时监控等场景。总之就是一句话:实时数仓是在离线数仓的基础上进一步满足时效性的要求。

在建设工具上实时数仓一般采用Flink,而离线数仓则统计历史数据,在建设工具上一般采用Hive。对于实时性要求比较高的场景,如实时的交易分析、实时数据看板(比如双十一的成交额看板)、实时业务监控、实时数据接口服务等,我们就需要实时数仓了。

在数仓的开发实现中包含四个模块,即物理存储、数据抽象、runtime作业执行、编程接口。那么离线数仓和实时数仓有什么区别呢?在物理存储模块,离线数仓一般使用HDFS存储,实时数仓使用Kafka消息队列进行存储,在数据抽象模块,离线数仓使用HIve表,实时数仓使用streamtable。在作业执行模块,离线数仓使用mapreudce,而实时数仓使用FlinkStreaming。在编程模块,离线数仓使用HiveSQL进行开发,实时数仓使用FlinkSQL进行开发。这就是实时数仓和离线数仓在开发实现上的区别了。

3、湖仓一体是什么?

仓一体是一种新型的开放式架构,打通了数据仓库和数据湖,将数据仓库的高性能及管理能力与数据湖的灵活性融合了起来,底层支持多种数据类型并存,能实现数据间的相互共享,上层可以通过统一封装的接口进行访问,可同时支持实时查询和分析,为企业进行数据治理带来了更多的便利性。

湖仓一体的特性

(1)事务支持:在企业中,数据往往要为业务系统提供并发的读取和写入。对事务的ACID支持,可确保数据并发访问的一致性、正确性,尤其是在SQL的访问模式下。

(2)数据的模型化和数据治理:湖仓一体可以支持各类数据模型的实现和转变,支持DW模式架构,例如星型模型、雪花模型等。该系统应当保证数据完整性,并且具有健全的治理和审计机制。

(3)BI支持:湖仓一体支持直接在源数据上使用BI工具,这样可以加快分析效率,降低数据延时。另外相比于在数据湖和数据仓库中分别操作两个副本的方式,更具成本优势。

存算分离:存算分离的架构,也使得系统能够扩展到更大规模的并发能力和数据容量。(一些新型的数据仓库已经采用了这种架构)

(4)开放性:采用开放、标准化的存储格式(例如Parquet等),提供丰富的API支持,因此,各种工具和引擎(包括机器学习和Python/R库)可以高效地对数据进行直接访问。

支持多种数据类型(结构化、半结构化、非结构化):湖仓一体可为许多应用程序提供数据的入库、转换、分析和访问。数据类型包括图像、视频、音频、半结构化数据和文本等。

(5)支持各种工作负载:支持包括数据科学、机器学习、SQL查询、分析等多种负载类型。这些工作负载可能需要多种工具来支持,但它们都由同一个数据库来支撑。

(6)端到端流:实时报表已经成为企业中的常态化需求,实现了对流的支持后,不再像以往一样,为实时数据服务构建专用的系统

4、数据仓库,实时数仓、湖仓一体应用场景的区别?

数据仓库是一种基于主题、集成、反映历史变化、支持决策的数据存储。其典型应用场景包括:

场景一:商业智能分析:数据仓库可以提供高效的查询和分析性能,方便企业做出决策。例如,企业可以利用数据仓库来分析销售情况、客户行为、市场趋势等。

场景二:数据挖掘:数据仓库中的数据可以提供支持机器学习和数据挖掘算法的数据源。例如,在电子商务领域,可以利用数据仓库分析用户购买习惯,推荐适合的商品,提高用户购物满意度。

实时数仓有一些典型的应用场景:

场景一:电商场景,比如实时Top排名、热词展现,在百度热搜、微博热词中可以看到;实时告警监控,

场景二:物联网场景,特别是现在火热的新能源汽车,电池不稳定,对电池使用提供预警等;

场景三:实时推荐场景,如现在火热的电商直播推荐。或者在一些购物平台点击某些商品后,微信朋友圈可能会出现实时推荐广告等;

场景四:金融场景,金融反欺诈,近两年国家在大力推行网络防诈骗,银行反欺诈实时预警是实时数仓的一个重要应用场景。

湖仓一体应用场景:

场景一:服务于数据中台的实时数仓。由于数据中台要求其数据库在分析处理过程中,需强调事务一致性,并保持低延迟与提升实时处理能力,这些都是湖仓一体的典型技术特性。

场景二:支撑微服务的数据融合底座。可有效解决扩展困难以及维护困难的问题。

场景三:全量数据实时访问平台。在数字化转型过程中,对客实时查询,历史数据服务平台,或IoT物联网系统中,会产生实时处理海量数据的需求,湖仓一体的弹性扩展能力能够很好满足这一需求。

场景四:进行非结构化数据处理,数字化转型中通过AI机器学习及比对分析,非结构化数据将包含更多元化的业务属性,为各类业务系统提供信息输入。湖仓一体能够有效提升非结构化数据的处理能力。

总体来说数据仓库、实时数仓、湖仓一体在数据类型,应用场景上有比较大的区别,主要根据应用场景来选择数据存储的底座。