现代数据架构-湖仓一体

news2024/11/23 3:27:00

当前的数据架构已经从数据库、数据仓库,发展到了数据湖、湖仓一体架构,本篇文章从头梳理了一下数据行业发展的脉络。

上世纪,最早出现了关系型数据库,也就是DBMS,有商业的Oracle、 IBM的DB2、Sybase、Informix、 微软的SQL Server等等,这些都是OLTP类型,transactional processing, 特点是保障ACID事务,低延时,CRUD操作,作用于少量数据(非大量/全量数据)。

随着关系型数据库里的数据增长,数据分析的需求越来越多,数据仓库 data warehouse随即诞生,DW是面向集成的数据,通过ETL、ELT加载不同数据源的数据入仓,面向分析OLAP, 针对大量或者全量数据做分析,存储历史数据,支持time travel,时间旅行,可回溯到数据的早前版本,代表的有teradata,snowflake, greenplum , clickhouse,数据仓库多为MPP架构,share nothing,云时代的数据仓库如 AWS Redshift、GCP Bigquery 、 Snowflake,几乎都支持存算分离。

数据仓库中的数据通常需要经过数仓建模形成 ODS DWD DWS ADS DM等不同数据层,每层都需要进行相应的清洗加工整合等数据开发,数据工程师大量工作就聚焦在数据仓库中的数据开发方向。

随着数据量的增长,商业的数据库,数据仓库也无法应对海量数据的存储和计算,Google发表了三篇论文,业内称之为三驾马车  GFS, BigTable, Map/Reduce , 基于理论慢慢形成了Hadoop ecosystem, hdfs,hbase,hive, spark,flink...越来越多的组件构成了Hadoop生态。

Apache Hadoop开源, 但安装运维成本高,各组件间版本兼容复杂,商业发行版,Cloudera/Hortonworks 有CDH, HDP 发行版,曾经有免费的社区版,目前两家公司合并,社区版停止更新和支持,如想使用整合好的Hadoop版本,则需要付费按年订购。

再后来,随着数据的增长,非结构化数据的比重越来越大,数据湖概念被提出。

AWS对数据湖的定义:数据湖是一个集中式存储库,允许您以任意规模存储所有结构化和非结构化数据。您可以按原样存储数据(无需先对数据进行结构化处理),并运行不同类型的分析 – 从控制面板和可视化到大数据处理、实时分析和机器学习,以指导做出更好的决策。

WIKIPEDIA:数据湖是一类存储数据自然/原始格式的系统或存储,通常是对象块或者文件。数据湖通常是企业中全量数据的单一存储。全量数据包括原始系统所产生的原始数据拷贝以及为了各类任务而产生的转换数据,各类任务包括报表、可视化、高级分析和机器学习。数据湖中包括来自于关系型数据库中的结构化数据(行和列)、半结构化数据(如CSV、日志、XML、JSON)、非结构化数据(如email、文档、PDF等)和二进制数据(如图像、音频、视频)。

数据仓库和数据湖各有擅长的点,也互相有借鉴和融合,目前数仓产品大多对数据湖里的数据可以实现联邦查询,数据湖的分析引擎,通过连接器也可以查询数据仓库里的数据。

数据湖治理起来比较难,需要有完善的管理工具、管理流程和制度保障,一旦缺乏治理,容易形成数据沼泽,数据沼泽是一种退化的、缺乏管理的数据湖,数据沼泽对于用户来说要么是不可访问的要么就是无法提供足够的价值。

主流的开源数据湖平台有Delta Lake、Iceberg和Hudi,主要提供对数据湖中数据的Table定义,实现upsert/delete 、ACID 、管理 Schema Evolution等等。 

数据湖有两种处理并发的两种机制。

COW(copy on write)  写时复制,读性能好,写性能差,针对多读少写场景

MOR(merge on read) 读时合并 ,写性能好,读性能略差,针对高频更新场景 

Databricks的白皮书:「Lakehouse: A New Generation of Open Platforms that Unify Data Warehousing and Advanced Analytics」中最早提出了湖仓一体这个概念。Lakehouse 是一种全新的开放式架构,结合了数据湖和数据仓库的最佳元素。Lakehouses 由一个新的系统设计实现:在开放格式的低成本云存储之上直接实现与数据仓库中类似的数据结构和数据管理功能。从下图可以看到,实际目前的发展阶段如中间的架构图所示,湖仓并存,各自负责一部分自己优势的工作负载。但是从第三个架构图可以看出Databricks的雄心,它希望用低廉的存储和上面的治理层,统一实现数据湖和数据仓库的所有功能需求,简而言之,不再需要Teradata、Redshift、Snowflake这些云上云下数仓产品,任重道远。

图片

下面我们看看经常提到的术语,数据平台和数据中台。

数据平台:提供的是数据加工处理的能力,从计算和存储等技术角度看

数据中台:是一套可持续“让企业的数据用起来”的机制,一种战略选择和组织形式,是依据企业特有的业务模式和组织架构,通过有形的产品和实施方法论支撑,构建一套持续不断把数据变成资产并服务于业务的机制。

数据中台从技术角度当然包括数据平台的构建,但数据中台的外延还包括企业内部组织和流程上的支撑,目的是数据资产化,资产服务化,数据的生产和应用形成闭环,数据价值得到变现。

接下来我们来看看AWS对现代数据架构的定义:智能湖仓架构,不是简单地将数据湖和数据仓库糅合在一起,而是将数据湖、数据仓库和专用数据存储集成,从而支持统一的监管和轻松的数据移动。借助 AWS 上的现代数据架构,客户可以快速构建可扩展的数据湖,使用丰富且专业的专用数据服务,通过统一的数据访问、安全性和治理确保合规,在不降低性能的前提下以低成本扩展系统,并轻松跨越组织边界共享数据,从而快速、敏捷、大规模地作出决策。

图片

随着这些数据湖和专用存储中的数据量持续增长,由于数据具有重力,移动所有这些数据将变得越来越困难。而确保可以方便地将数据移动到需要的任何位置,具备恰当的控制,以支持分析和获取洞察也同样重要。这种数据的移动方向可能是“由内向外”、“由外向内”、“沿周界”或者“跨界共享”。

图片

除了AWS对现代数据架构的定义,通用的现代数据架构是这样定义的。

现代数据架构是一种基于云计算、大数据和人工智能技术的数据管理和分析架构,旨在帮助企业更好地处理和分析大数据,并从中获得更多商业价值。现代数据架构通常由以下组件组成:

数据采集层:数据采集层用于从各种数据源中收集数据,并将其传输到数据存储层。数据采集层可以使用多种数据采集工具和技术,包括ETL、ELT、流数据处理等。

数据存储层:数据存储层用于存储和管理各种类型和格式的数据,包括结构化、半结构化和非结构化数据。数据存储层可以使用多种存储服务和技术,包括数据湖、数据仓库、NoSQL数据库等。

数据处理层:数据处理层用于处理和分析存储在数据存储层中的数据,以提取有价值的信息和洞察力。数据处理层可以使用多种处理和分析工具和技术,包括ApacheSpark、Hadoop、SQL Server等。

数据可视化和报表层:数据可视化和报告层用于呈现处理和分析后的数据,以便用户可以更好地理解和使用数据。数据可视化和报告层可以使用多种可视化工具和技术,包括Tableau、Power BI、Excel等。

机器学习和人工智能层:机器学习和人工智能层用于应用机器学习和人工智能技术,以提高数据处理和分析的效率和准确性。机器学习和人工智能层可以使用多种机器学习框架和技术,包括TensorFlow、PyTorch、Scikit-learn等。

现代数据架构可以帮助企业更好地管理和分析大数据,并从中获得更多商业价值。企业可以根据自身业务需求和数据特点,选择适当的组件和技术,构建适合自己的现代数据架构。

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

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

相关文章

关于坐标的旋转变换和坐标系的旋转变换

不管是坐标的旋转变换还是坐标系下的旋转变换,只和旋转的顺时针和逆时针有关。然坐标系间的顺时针和逆时针是根据当前坐标系在目标坐标系下的相对位置确定。 一。逆时针旋转belta角度的公式 二。顺时针旋转belta角度的公式 三。坐标的旋转变换 1.坐标的旋转变换相…

一文了解企业如何实现文件自动化实时同步

在当今的数字化时代,数据是企业的核心资产,也是企业竞争力的重要体现。数据的传输、共享、协作、备份等都需要依赖文件同步技术,实现数据在不同平台和设备之间的一致性和可用性。文件同步是指将一个或多个文件夹中的内容复制或更新到另一个或…

网络安全攻防:软件逆向之反汇编

网络安全是当今社会中一个非常重要的问题,而软件逆向工程是网络安全攻防中常用的一种技术手段。在软件逆向工程中,反汇编是一种基础而重要的技术。通过反汇编,我们可以将二进制程序转换为汇编语言,从而更好地理解程序的执行流程和…

在伦敦银投资中,技术是万能的?

一般进行伦敦银投资的投资者都会学习很多技术分析的方法,技术分析是一种还很适合普通投资者使用的市场分析工具,但是在伦敦银投资中,技术分析的作用不是万能的,其实技术分析还是有很多各种各样的缺点,如果投资者迷信技…

前缀和实例5(连续数组)

题目: 给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度。 示例 1: 输入: nums [0,1] 输出: 2 说明: [0, 1] 是具有相同数量 0 和 1 的最长连续子数组。 示例 2: 输入: nums [0,1,0] 输出: 2 说明: [0…

Exception in thread “main“ java.sql.SQLException: No suitable driver

详细报错信息如下: Exception in thread "main" java.sql.SQLException: No suitable driver at java.sql.DriverManager.getDriver(DriverManager.java:315) at org.apache.spark.sql.execution.datasources.jdbc.JDBCOptions.$anonfun$driverC…

js遍历对象属性的方法

在 JavaScript 中,有许多方法可以遍历对象的属性,但在性能上并没有显著的差异。对于大多数用例,使用 for-in 循环或 Object.keys() 方法是最常见的。 然而,如果你正在寻找微优化,并希望遍历大量对象,可以考…

数字孪生需要自建3D模型?搞懂Blender建模要点,看这篇文章就够了!

1. Blender的基础介绍 关于城市大师的建模软件,一般推荐使用Blender。一是因为Blender是开源免费的,不会有经济负担,二是因为我们软件有针对Blender的插件,对其进行了一定程度上的补充。 【温馨提示】如果使用的是3Dmax或者maya…

Zabbix“专家坐诊”第205期问答汇总

问题一 Q:Zabbix6.0安装出错,未找到zabbix-server的配置文件。 A:Find / -name zabbix-server.conf,试一下 Q:找到了。 Q:配置好了,虚拟化平台监控还是不行。 A:因为虚拟化监控用的…

PL/SQL+cpolar公网访问内网Oracle数据库

文章目录 前言1. 数据库搭建2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射 3. 公网远程访问4. 配置固定TCP端口地址4.1 保留一个固定的公网TCP端口地址4.2 配置固定公网TCP端口地址4.3 测试使用固定TCP端口地址远程Oracle 前言 Oracle,是甲骨文公司的一款关系…

python生成Markdown文件

我们使用的库是markdown_strings pip install markdown_strings程序如下: from markdown_strings import header, table, code_blockwith open("mark_down.md", w, encoding"utf8") as file:file.write(header("一级目录", 1) &qu…

python抓取网页视频

1. 喜马拉雅音频 1-1 喜马拉雅 import requests import json import time import random import hashliburl https://www.ximalaya.com/revision/play/v1/audio?id46103875&ptype1headers { user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.3…

法线贴图的原理和作用

在上一篇文章中详细介绍了位移贴图的相关知识,在本章中我们继续讲述法线贴图的相关概念,文章后面继续用GLTF 编辑器 来演示下法线贴图的模型渲染效果。 1、什么是法线贴图 法线贴图(Normal Map)是一种纹理映射技术,用…

DAY04_瑞吉外卖——文件上传下载菜品新增菜品分页查询菜品修改

目录 1. 文件上传下载1.1 上传介绍1.1.1 概述1.1.2 前端介绍1.1.3 服务端介绍 1.2 下载介绍1.3 上传代码实现1.3.1 前端代码1.3.2 服务端实现1.3.3 测试 1.4 下载代码实现1.4.1 前端代码1.4.2 服务端代码1.4.3 测试 2. 菜品新增2.1 需求分析2.2 数据模型2.3 准备工作2.4 前端页…

golang工程——底层原理【defer、panic、recover、interface】

defer 延时性 不管defer函数后的执行路径如何,最终都将被执行。在Go语言中,defer一般被用于资源的释放及异常panic的处理。保证函数在任意路径执行结束后都能够关闭资源。defer是一种优雅的关闭资源的方式,能减少大量冗余的代码并避免由于忘…

Python 标准库之pathlib,路径操作

背景 pathlib 标准库是在 Python3.4 引入,到现在最近版 3.11 已更新了好几个版本,主要是用于路径操作,相比之前的路径操作方法 os.path 有一些优势,有兴趣的同学可以学习下 **官方文档:**https://docs.python.org/zh-…

应用架构的演进:亚马逊的微服务实践

当你在亚马逊上购物时,或许不会想到,你看到的这个购物网站,其背后技术架构经历了什么样的变迁与升级。 还记得上世纪 90 年代,那个只卖书的网上书店吗?那时的亚马逊,不过是一个架构简单的网站,所有的功能都堆积在一个庞大的软件堡垒里。随着更多业务的增加、更新和迭代,这个软…

RS232,485,422的定义及区别

计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式。 由于串行通讯方式具有使用线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用。串口按电气标准及协议来划分,包括RS232、RS422、R…

JavaScript位运算的妙用

位运算的妙用: 奇偶数, 色值换算,换值, 编码等 位运算的基础知识: 操作数是32位整数自动转化为整数在二进制下进行运算 一.按位与& 判断奇偶数: 奇数: num & 1 1偶数: num & 1 0 基本知识: 用法:操作数1 & 操作数2规则:有 0 则为…

WhaleStudio 分钟级构建 AI 模型,强大 Ops 能力简化模型调度与部署

什么是机器学习(ML)? 它有什么作用 机器学习(ML)是人工智能(AI)的一个子集,通过算法发现数据中的通用模式,并根据持续不断的训练来优化调整最终结果。ML模型从过去的经验中学习,并根据已有的经验进行预测。例如,现在的电商已不再…