大数据技术16:数据湖和湖仓一体

news2024/11/22 9:43:48

前言:近几年大数据概念很多,数据库和数据仓库还没搞清楚,就又出了数据湖,现在又开始流行湖仓一体。互联网公司拼命造高大上概念来忽略小白买单的能力还是可以的。


1、数据库

数据库是结构化信息或数据的有序集合,一般以电子形式存储在计算机系统中。通常由数据库管理系统 (DBMS) 来控制。在现实中,数据、DBMS 及关联应用一起被称为数据库系统,通常简称为数据库。为了提高数据处理和查询效率,当今最常见的数据库通常以行和列的形式将数据存储在一系列的表中,支持用户便捷地访问、管理、修改、更新、控制和组织数据。另外,大多数数据库都使用结构化查询语言 (SQL) 来编写和查询数据。

可以把数据库理解为一个虚拟的图书馆,每一本书都代表了一个数据记录,而书架和分类系统则对应数据库和表格和索引,读者可以快速查找和管理所需要的信息。

数据库的应用很常见,基本上每个业务系统都会有自己的数据库。比如你每天总是要打开基金看一眼涨没涨,这后面就有数据库在做支撑。一般来说,除了安全性之类的硬性条件,衡量一个数据库好不好,关键在看它每秒能干多少事。

​ 自 20 世纪 60 年代初诞生至今,数据库已经发生了翻天覆地的变化。最初,人们使用分层数据库(树形模型,仅支持一对多关系)和网络数据库(更加灵活,支持多种关系)这样的导航数据库来存储和操作数据。这些早期系统虽然简单,但缺乏灵活性。20 世纪 80 年代,关系数据库开始兴起;20 世纪 90 年代,面向对象的数据库开始成为主流。最近,随着互联网的快速发展,为了更快速地处理非结构化数据,NoSQL 数据库应运而生。现在,云数据库和自治驾驶数据库在数据收集、存储、管理和利用方面正不断取得新的突破。 ​


2、数据仓库

为解决企业的数据集成与分析问题,数据仓库之父比尔·恩门于1990年提出数据仓库(Data Warehouse)。数据仓库主要功能是将企业经年累月所累积的大量数据,通过数据仓库特有的数据储存架构进行OLAP,最终帮助决策者能快速有效地从大量数据中,分析出有价值的信息,提供决策支持。自从数据仓库出现之后,信息产业就开始从以关系型数据库为基础的运营式系统慢慢向决策支持系统发展。

数据仓库相比数据库,主要有以下两个特点:

  • 数据仓库是面向主题集成的。数据仓库是为了支撑各种业务而建立的,数据来自于分散的操作型数据。因此需要将所需数据从多个异构的数据源中抽取出来,进行加工与集成,按照主题进行重组,最终进入数据仓库。

  • 数据仓库主要用于支撑企业决策分析,所涉及的数据操作主要是数据查询。因此数据仓库通过表结构优化、存储方式优化等方式提高查询速度、降低开销。

图片

数据仓库的核心是有序性,主要为了分析用。在原有数据库的基础上,数据经过OLAP和ETL后,得出能够被业务人员直接进行分析的业务数据包。这很好理解,不同的业务部门使用不同的业务系统,系统之间数据不共通,指标混乱。但实际业务进行分析的时候通常涉及多个业务系统数据,取数、整理数据非常耗费时间。这时候就需要用到数据仓库,先把不同业务系统中的数据预先处理好,以业务数据包的形式存放在数据仓库里,业务需要分析的时候直接就能使用。

通常来说,数据仓库里都是结构化的数据,它的价值也在于帮助企业把运营数据转化成为高价值的可以获取的信息,并且在恰当的时间通过恰当的方式把恰当的信息传递给恰当的人。一般来说,数据仓库基本和BI一起搭配使用,前者把数据处理好,后者进行前端数据分析展示。


3、数据湖

数据湖(data  lake)即一个以大量原始格式保存了公司级别的数据知识库。数据湖的概念最早出现Hadoop World大会上提出的。提出者希望数据湖, 能解决数据集市面临两个。

  • 第一,数据集市只保留了部分属性,只能解决预先定义好的问题;

  • 第二,数据集市中反映细节的原始数据丢失了,限制了通过数据解决问题;

从解决问题的角度出发,希望有一个合适的存储来保存这些明细的、未加工的数据。

2017年,亚马逊云最早推出AWS Lake,提供一套中心化的存储构建一个数据分析、数据科学和机器学习的数据湖解决方案。与此同时,Uber推出了Hudi(Hadoop Updates and Incrementals),最早也是被用于解决Uber内部离线数据的合规问题。

HUDI 最为相对成熟的数据湖技术,和 另外的Iceberg、Delta Lake一起被称为数据湖的三剑客。

有了支撑存储查询的数据库和探索分析的数据仓库,还要数据湖来干嘛?

就像你不舍得丢掉塑料袋想着“万一以后有用呢?”,老板也不舍得放过任何数据,万一这里面就有能够让营业额一飞冲天的利器呢?所以,企业就造了一个湖,把生产经营中产生的所有数据都能够全部放进去,方便后面要用的时候直接从这里面拿。数据湖的核心是开放性,里面是无序的数据。想要用好数据湖,一个是存储的架构要足够强大,另一个是数据处理足够牛逼。

图片

  • 存储架构强大指得是存得下、放得久。业务数据是实时变化的,要做到跟随业务系统数据实时变化的技术就复杂了,比如数据写入数据湖的时候要保证ACID,要高效支持upsert /delete历史数据,要能容忍数据频繁导入文件系统上产生的大量的小文件(显然HDFS就不行了)。Delta、iceberg和hudi等开源数据湖就是一些特定技术解决方案,但很多企业连hadoop生态还没搞通搞透呢,又搞出这么多技术,而且还没有统一标准,很让人头大。

  • 数据处理足够牛逼是指数据放进去的时候,存放在里面的时候,以及用的时候拿出来的时候都要足够顺滑。如果放进去的时候就没有进行合理地约束,那时间久了就和垃圾堆没区别,更别说用了。关于数据湖的使用,其实更多是在互联网行业,比如机器学习、探索式分析之类的。

数据湖和数据仓库的区别:

图片


4、湖仓一体

我们谈论数据湖仓一体时,我们指的是当前数据存储库平台的组合使用。数据仓库可以定义为一个现代数据平台,该平台由数据湖和数据仓库组成。更具体地说,数据湖仓储利用数据池中非结构化数据的灵活存储以及数据仓库中的管理功能和工具,然后从战略角度将它们作为一个更大的系统一起实施。这两个独特的工具的集成为用户带来了两全其美的结果。

数据仓库 + 数据湖 = 数据湖仓一体

数据仓库和数据湖的结合就是湖仓一体,湖仓一体可以理解为把数据湖这个大杂间分了很多的区,每个区是一个应用站点,有的站点做BI,有的站点做大数据处理。

图片

湖仓一体的架构,最终想要实现的,就是通过把数据湖作为中央存储库,围绕数据湖建立各种提供服务的站点,比如数据仓库,供业务分析和接入BI使用;再比如供机器学习用的站点;供大数据处理的站点等等,最终实现随心所欲地使用数据湖中的数据。


参考链接:

什么是数据湖仓一体?| Oracle 中国

数据库、数据仓库、数据湖、湖仓一体分别是什么? - 知乎

白话讲IT系列:数据仓库、数据湖、湖仓一体,究竟有什么区别?

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

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

相关文章

分享一款超强大的抖音数据采集工具

你好,我是坚持分享干货的 EarlGrey,翻译出版过《Python编程无师自通》、《Python并行计算手册》等技术书籍。 如果我的分享对你有帮助,请关注我,一起向上进击。 创作不易,希望大家给一点鼓励,把公众号设置为…

轮廓检测与处理

轮廓检测 先将图像转换成二值 gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 灰度图 ret, thresh cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY) # 变为二值,大于127置为255,小于100置为0.使用cv2.findContours(thresh, cv2.RETR_TREE, cv2.…

【Unity入门】热更新框架之xLua

目录 一、xLua概述1.1xLua简介1.2xLua安装 二、Lua文件加载2.1执行字符串2.2加载Lua文件2.3自定义loader 三、xLua文件配置3.1打标签3.2静态列表3.3动态列表 四、Lua与C#交互4.1 C#访问Lua4.1.1 获取一个全局基本数据类型4.1.2 访问一个全局的table4.1.3 访问一个全局的functio…

【Unity美术】Unity工程师对3D模型需要达到的了解【一】

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…

机器学习之K-means聚类

概念 K-means是一种常用的机器学习算法,用于聚类分析。聚类是一种无监督学习方法,它试图将数据集中的样本划分为具有相似特征的组(簇)。K-means算法的目标是将数据集划分为K个簇,其中每个样本属于与其最近的簇中心。 以下是K-means算法的基本步骤: 选择簇的数量(K值)…

算法分析与设计基础

一、绪论 1.算法的概念及特征 1.1 定义: 算法是指求解某个问题或是某类问题的一系列无歧义的指令,也就是说,对于符合一定规范的输入,能够在有限时间内获得所要求的输出。 1.2 特征: 输入:算法中的各种运…

Prometheus通过consul实现自动服务发现

环境,软件准备 本次演示环境,我是在虚拟机上安装 Linux 系统来执行操作,以下是安装的软件及版本: System: CentOS Linux release 7.6Docker: 24.0.5Prometheus: v2.37.6Consul: 1.6.1 注意:这里为了方便启动 Prometheus、Consul服…

电容器50ZLH56MEFC6.3X11

电容器 常用电子元器件类型 50ZLH56MEFC6.3X11 文章目录 电容器前言一、电容器二、50ZLH56MEFC6.3X11总结前言 电容器在电子电路中有许多重要的应用,如滤波、耦合、储能、定时等。不同类型的电容器具有不同的性能特点,例如电容量、工作电压、频率响应等。在选择和使用电容…

const变量真的不能修改吗?

文章目录 1 在Linux系统下1.1 系统参数1.2 通过指针修改(编译器有警告) 2 在Windows下2.1 系统参数2.2 直接修改2.3 指针间接修改2.4 指针间间接修改 3 总结: 1 在Linux系统下 1.1 系统参数 内核:Linux version 3.2.0-24-generi…

Glary Utilities Pro - 电脑系统优化全面指南:详尽使用教程

软件简介: Glary Utilities Pro 是一款全面的电脑优化工具,它旨在帮助用户提升计算机的性能和稳定性。这款软件提供了多种功能,包括系统清理、优化、修复以及保护。通过一键扫描,它可以识别并清除无用文件、临时数据、注册表错误等…

关于“Python”的核心知识点整理大全50

目录 python_repos.py 17.1.6 概述最受欢迎的仓库 python_repos.py 17.1.7 监视 API 的速率限制 注意 17.2 使用 Pygal 可视化仓库 python_repos.py 17.2.1 改进 Pygal 图表 python_repos.py 往期快速传送门👆(在文章最后)&#xf…

SAP问题 OPEN SQL 取不到值

关键:数据库中有数据,但是open sql取不到数据 背景: 标准程序在测试环境正常执行,在生产环境报错。 解决过程: 第一步:分析执行结果不一致可能的原因: 1.测试数据问题,可能性小&…

openGauss学习笔记-178 openGauss 数据库运维-逻辑复制-逻辑解码-使用SQL函数接口进行逻辑解码

文章目录 openGauss学习笔记-178 openGauss 数据库运维-逻辑复制-逻辑解码-使用SQL函数接口进行逻辑解码178.1 前提条件178.2 操作步骤 openGauss学习笔记-178 openGauss 数据库运维-逻辑复制-逻辑解码-使用SQL函数接口进行逻辑解码 openGauss可以通过调用SQL函数,…

传奇私服教程,新手小白速速下载!

传奇私服教程,新手小白速速下载! 第二十课-封玩家账号登陆-封玩家机器码登陆.zip 第十九课-快速搭建FTP服务器教程配套工具.zip 第十八课-绿盟GOM1108引擎登陆器配置防劫持列表教... 第十七课-最新访问网站自动弹出加群教程.zip 修复沙城捐献不了或者捐献…

Mybatis行为配置之Ⅳ—日志

专栏精选 引入Mybatis Mybatis的快速入门 Mybatis的增删改查扩展功能说明 mapper映射的参数和结果 Mybatis复杂类型的结果映射 Mybatis基于注解的结果映射 Mybatis枚举类型处理和类型处理器 再谈动态SQL Mybatis配置入门 Mybatis行为配置之Ⅰ—缓存 Mybatis行为配置…

Python FastApi连接oracle进行查询

这边技术选型是cx_oracle进行连接查询,cx_oracle的使用首先要有官方的客户端才能连接到数据库,python并不自带客户端。我用是Python3.9 安装客户端 可以到官网在选择最新版进行下载。 Instant Client for Microsoft Windows (x64) 64-bit 或者直接从我…

uniapp多级动态表单规则

最近有个新的业务、主要涉及多层级的动态表单提交,其中又涉及很多类型,踩了很多坑之后,终于研发完毕。 传来的数据格式处理 传来的数据格式涉及比较多的内容,以下举例一个,涉及到规则的填写 规则写法有两种&#xff…

【Maven】下载及配置

文章目录 1. 下载2. 解压3. 配置环境变量4. 验证 Maven 是一个跨平台的项目管理工具。作为 Apache 组织的一个颇为成功的开源项目,其主要服务于基于 Java 平台的项目创建,依赖管理和项目信息管理,是一个自动化构建工具,本文将介绍…

Activemq存储KahaDb详解

引言 ActiveMQ在不提供持久化的情况下,数据保存在内存中,一旦应用崩溃或者重启之后,数据都将会丢失,这显然在大部分情况下是我们所不希望的。对此ActiveMQ提供了两种持久化方式以供选择。 kahaDB kahaDB是一个基于文件&#xf…

为什么ChatGPT采用SSE协议而不是Websocket?

在探索ChatGPT的使用过程中,我们发现GPT采用了流式数据返回的方式。理论上,这种情况可以通过全双工通信协议实现持久化连接,或者依赖于基于EventStream的事件流。然而,ChatGPT选择了后者,也就是本文即将深入探讨的SSE&…