数据库,数据仓库,数据湖,湖仓一体到底是什么区别

昨天结束的一场面试,面试官问了下我对数据仓库和数据湖的理解,根据之前的理解我说了下数据湖是数据仓库某些时候的缓存,然后面试官反问说我确定这个用词对吗?没理解到位,所以去了解之后再整体输出下我自己的理解。

先说下上面的答案,数据仓库和数据湖可以是互相独立存在的,不存在谁是谁的缓存一说,但是如果涉及到湖仓一体的时候,数仓是结构化的数据访问入口,而底层的数据湖是可以作为数仓的底层的存储支持。

要了解各个概念,我们从对应的背景出发,然后我们自己再给出比较严谨的定义。

数据库顾名思义就是我们存储结构化数据的存储系统,面向事务分析的存储系统,我们常见的库存,金钱的存储都是用数据库来实现的,少了一笔钱,多了10件库存啥的;但是,如果你要让数据库去分析为什么最近一个月的库存少了,订单数少了,那他就显得无能为力了。这个时候就需要我们的数据仓库出手了。

数据仓库是面向分析的存储结构化数据的一个存储系统,本质上还是为分析服务的,把客户对应的日志数据和业务数据先存储起来,然后经过各种加工到ads层,供最终的决策分析使用,支持复杂的大规模的数据分析。

那么数据湖又是什么呢?刚刚我们说到的数仓只能存储大量的结构化数据,但是企业发展的时间越来越长,数据量越来越多的情况下,不只是有结构化的数据,对于半结构化和非结构化的数据又该如何存储呢?这个时候就该我们的数据湖隆重登场了,他就是为存储历史的所有结构化,半结构化以及非结构化数据,历史所有的离线的,实时的,外部的,内部的数据而生的,而且是以成本比较低的对象存储为底座去进行数据存储的,支持近乎无限的扩展;

所以从上述两个概念来说,数据湖存储的数据量级和种类比数据仓库更广泛和多样,这样来说,是不是在企业里面我们可以就是用数据湖,不需要数据仓库都可以了;这个是不太行的,因为数据湖存储的是企业的数据的原始形态,不支持即席的数据查询,如果要查询某些指标数据,必须依赖于数据仓库提供的已经计算好的结构化的数据

但是兄弟们可能又会说了,这个是不是数据仓库的最底层可以依赖于数据湖的存储,数据仓库和数据湖用统一的存储底座,让数据仓库专注于处理批数据,而数据湖更多地处理事实的数据,而且数据仓库和数据湖之间的数据可以来回流动,如下所示:

这个就是最简单的湖仓一体的模型,其实湖仓一体说白了就是一种新型的数据架构,它结合了数据湖(Data Lake)和数据仓库(Data Warehouse)的优势。传统上,数据湖和数据仓库是分离的系统,数据湖用于存储结构化、半结构化和非结构化数据以及一些实时的数据,数据仓库主要用于存储和分析高度结构化的数据

相关推荐
7***998716 小时前
GaussDB数据库中SQL诊断解析之配置SQL限流
数据库·sql·gaussdb
Wang's Blog17 小时前
MongoDB小课堂: 文档操作核心技术指南:主键机制、CRUD操作与最佳实践
数据库·mongodb
g***267917 小时前
最新SQL Server 2022保姆级安装教程【附安装包】
数据库·性能优化
青云交18 小时前
Java 大视界 -- Java 大数据在智能物流无人配送车路径规划与协同调度中的应用
java·spark·路径规划·大数据分析·智能物流·无人配送车·协同调度
风123456789~19 小时前
【OceanBase专栏】OB背景知识
数据库·笔记·oceanbase
4***721319 小时前
【玩转全栈】----Django模板语法、请求与响应
数据库·python·django
c***421019 小时前
Django视图与URLs路由详解
数据库·django·sqlite
数据库学啊19 小时前
团队小希望运维简单,时序数据库选型有什么推荐?
运维·数据库·时序数据库
2***656320 小时前
数据库操作与数据管理——Rust 与 SQLite 的集成
数据库·rust·sqlite