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

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


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系列:数据仓库、数据湖、湖仓一体,究竟有什么区别?

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

24、Qt使用QCustomPlot

一、下载文件 进入官网,选择“Download”、QCustomPlot.tar.gz Qt Plotting Widget QCustomPlot - Download 二、创建项目 创建一个"Qt Widget Application"项目,基类选择“QMainWindow”,把刚才下载的压缩包里的“qcustomplot.…

给零基础朋友的编程课08 - 代码

给零基础朋友的编程课08 - 旋转、圆弧、初识模块化编程。_哔哩哔哩_bilibili Code: / // 彩色案例 艺术仿制品3 // /// 色表 // // 奶白 215,214,160 // 金黄 187,176,112 // 赭石 96,56,20 // 橙色 218,114,53// 项目设定 size(1000,1000); background(215,214,160); stroke…

vue3-13

token可以是后端api的访问依据,一般绝大多数时候,前端要访问后端的api,后端都要求前端请求需要携带一个有效的token,这个token用于用户的身份校验,通过了校验,后端才会向前端返回数据,进行相应的操作,如果没…

c++ / day01

1. 整理思维导图 2. 定义自己的命名空间myspace&#xff0c;并在myspace中定义一个字符串&#xff0c;实现求字符串大小的函数。 代码 #include <iostream>using namespace std;namespace myns {unsigned long long strlen(string s){return s.length();}}int main() {…

算法导论复习(七) 动态规划

动态规划一般用来求解最优化问题 设计一个动态规划算法一般有以下四步&#xff1a; 描述一个最优解的结构特征。递归地定义最优解的值。计算最优解的值&#xff0c;通常采用自底向上的方法。利用计算出的信息构造出一个最优解。 钢条切割问题 体现了动态规划的一个重要性质&a…

获取b站合集视频时长最新可用代码(2023.12.28)小白也能用

在网上搜索获取b站分集视频时长的代码&#xff0c;发现大部分都过时了 原链接&#xff1a;已过时代码链接 我对原代码做出了部分修改&#xff0c;以下代码于2023.12.28测试&#xff08;Edge浏览器&#xff09; javascript: (function() {var hour 0;var minute 0;var secon…

Leetcode—1572.矩阵对角线元素的和【简单】

2023每日刷题&#xff08;七十三&#xff09; Leetcode—1572.矩阵对角线元素的和 实现代码 class Solution { public:int diagonalSum(vector<vector<int>>& mat) {int n mat.size();if(n 1) {return mat[0][0];}int sum 0;int i 0, j n - 1;while(i &…

低信噪比环境下的语音端点检测

端点检测技术 是 语音信号处理 的关键技术之一为提高低信噪比环境下端点检测的准确率和稳健性&#xff0c;提出了一种非平稳噪声抑制和调制域谱减结合功率 归一化 倒谱距离的端点检测算法 1 端点检测 1-1 定义 定义&#xff1a;在 存在背景噪声 的情况下检测出 语音的起始点和…

Android中_Service生命周期和AMS流程的创建

Service生命周期可以结合Android生命周期分析。 Service生命周期可以从两种启动Service的模式开始讲起&#xff0c;分别是context.startService()和context.bindService()。 Service的生命周期与启动和绑定状态相关。当调用startService()方法启动服务时&#xff0c;会执行onS…

“踩坑”经验分享:Swift语言落地实践

作者 | 路涛、艳红 导读 Swift 是一种适用于iOS/macOS应用开发、服务器端的编程语言。自2014年苹果发布 Swift 语言以来&#xff0c;Swift5 实现了 ABI 稳定性、Module 稳定性和Library Evolution&#xff0c;与Objective-C&#xff08;下文简称“OC”&#xff09;相比&#xf…

QLabelQPushButton和QLineEdit

QLabel 设置文件格式字体颜色背景 源码 设置图片 源码 设置gif 设置文本 源码 富文本 (Rich Text): 格式化选项&#xff1a;富文本支持各种格式化选项&#xff0c;如字体样式&#xff08;粗体、斜体&#xff09;、字体大小、颜色、超链接、图片插入、列表、表格等。文件格式&a…

pybullet安装时出现fatal error C1083: 无法打开包括文件: “string.h”: No such file or directory

pybullet安装时出现fatal error C1083: 无法打开包括文件: “string.h”: No such file or directory 报错原文&#xff1a; -----CloneTreeCreator.cppD:\Program_Professional\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.38.33130\include\cstring(11): fat…

机器环境无法访问GitHub情况下linux安装OpenCV执行cmake无法下载ADE文件v0.1.1f.zip

☞ ░ 前往老猿Python博客 ░ https://blog.csdn.net/LaoYuanPython 一、引言 在CSDN的博文《构建VisualStudio2019OpenCV4.3的C windows编译环境》中&#xff0c;老猿介绍了opencv版本的下载方法的方法&#xff0c;该方法下载OpenCV的代码不要上GitHub&#xff0c;国内可以直…

记edusrc一处信息泄露登录统一平台

目录 前言 测试思路 本文由掌控安全学院 - sbhglqy 投稿 前言 我们都知道像大学之类的各种平台的登录账号基本上是学号&#xff0c;初始登录密码基本上是学生身份证的后6位再拼接上一些带有学校缩写的英文字母。所以我们在找漏洞的时候可以换一种思路&#xff0c;先通过去找…

辅助工具

本章将会通过以下几个角度&#xff0c;简要介绍几款渗透测试的辅助工具。 ● 工具的功能&#xff1b; ● 如果这款工具没有被Kali Linux 收录&#xff0c;本文也会介绍其安装过程&#xff1b; ● 应用案例。 稍后介绍的部分工具确实没有被 Kali Linux 收录。要使用这些软件…

ApiPost插件⭐️与IDEA的搭配使用,通过引入插件直接在项目里一键开测

小伙伴们大家好&#xff0c;用接口测试工具有一段时间了&#xff0c;最近发现该工具有提供插件直接可以在项目里测试接口&#xff0c;并且页面布局不输应用 目录 一、ApiPost插件介绍 二、安装插件 一、ApiPost插件介绍 Apipost 是一个用于测试和调试 API 接口的 IDEA 插件…

Ubuntu fcitx Install

ubuntu经常出现键盘失灵的问题 查询资料得知应该是Ibus框架的问题 于是需要安装fcitx框架和搜狗拼音 sudo apt update sudo apt install fcitx 设置fcitx开机自启动&#xff08;建议&#xff09; sudo cp /usr/share/applications/fcitx.desktop /etc/xdg/autostart/ 然后…

Github项目推荐:KaTeX

项目地址 GitHub - KaTeX/KaTeX: Fast math typesetting for the web. 项目描述 这是一个渲染公式的JavaScript库。有时候可能网页中需要写一些公式&#xff0c;但html本身并没有提供相应的标签。这个时候这个库就能派上用场了。 项目截图

常见HTTP 500错误发生原因及解决办法剖析

​  对于网站运营者来说&#xff0c;提到500内部服务器错误并不陌生。互联网行业对它的称呼有好几种&#xff0c;如“500内部服务器错误”、“HTTP 500 - 内部服务器错误”、“临时错误 (500)”、“内部服务器错误”。尽管叫法不同&#xff0c;但根本问题是相同的。 目前&…

mac下jd-gui提示没有找到合适的jdk版本

mac下jd-gui提示jdk有问题 背景解决看一下是不是真有问题了方法一&#xff1a;修改启动脚本方法二&#xff1a;设置launchd环境变量 扩展动态切jdk脚本(.bash_profile) 背景 配置了动态jdk后&#xff0c;再次使用JD-GUI提示没有找到合适的jdk版本。 解决 看一下是不是真有问题…