当前位置: 首页 > news >正文

现代数据架构-湖仓一体

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

上世纪,最早出现了关系型数据库,也就是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等。

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

相关文章:

现代数据架构-湖仓一体

当前的数据架构已经从数据库、数据仓库,发展到了数据湖、湖仓一体架构,本篇文章从头梳理了一下数据行业发展的脉络。 上世纪,最早出现了关系型数据库,也就是DBMS,有商业的Oracle、 IBM的DB2、Sybase、Informix、 微软…...

最新AI写作系统ChatGPT源码/支持GPT4.0+GPT联网提问/支持ai绘画Midjourney+Prompt应用+MJ以图生图+思维导图生成

一、智能创作系统 SparkAi创作系统是基于国外很火的ChatGPT进行开发的Ai智能问答系统。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧&…...

Python机器学习实战-特征重要性分析方法(5):递归特征消除(附源码和实现效果)

实现功能 递归地删除特征并查看它如何影响模型性能。删除时会导致更大下降的特征更重要。 实现代码 from sklearn.ensemble import RandomForestClassifier from sklearn.feature_selection import RFE import pandas as pd from sklearn.datasets import load_breast_cance…...

如何快速走出网站沙盒期(关于优化百度SEO提升排名)

网站沙盒期是指新建立的网站在百度搜索引擎中无法获得好的排名,甚至被完全忽略的现象。这个现象往往发生在新建立的网站上,因为百度需要时间来评估网站的质量和内容。蘑菇号www.mooogu.cn 为了快速走出网站沙盒期,需要优化百度SEO。以下是5个…...

ATA-8000系列射频功率放大器——应用场景介绍

ATA-8000系列是一款射频功率放大器。其P1dB输出功率500W,饱和输出功率最大1000W。增益数控可调,一键保存设置,提供了方便简洁的操作选择,可与主流的信号发生器配套使用,实现射频信号的放大。 图:ATA-8000系…...

2009-2018年各省涉农贷款数据(wind)

2009-2018年各省涉农贷款数据(wind) 1、时间::209-2018年 2、范围:31省 3、来源:wind 4、指标:涉农贷款 指标解释 :在涉农贷款的分类上,按照城乡地域将涉农贷款分为农村贷款和城…...

window.print()打印及出现的问题

<template><transition name"el-zoom-in-center"><div class"JNPF-preview-main"><div class"JNPF-common-page-header"><el-page-header back"goBack" :content"打印通知书" /><div clas…...

Fedora Linux 39 Beta 预估 10 月底发布正式版

Fedora 39 Beta 镜像于今天发布&#xff0c;用户可以根据自己的使用偏好&#xff0c;下载 KDE Plasma&#xff0c;Xfce 和 Cinnamon 等不同桌面环境版本&#xff0c;正式版预估将于 10 月底发布 Fedora 39 Beta 版本主要更新了 DNF 软件包管理器&#xff0c;并优化了 Anaconda …...

【zookeeper】基于Linux环境安装zookeeper集群

前提&#xff0c;需要有几台linux机器&#xff0c;我们可以准备好诸如finalshell来连接linux并且上传文件&#xff1b; 其次Linux需要安装上ssh&#xff0c;并且在/etc/hosts文件中写好其他几台机器的名字和Ip 127.0.0.1 localhost localhost.localdomain localhost4 localh…...

什么是IoT数字孪生?

数字孪生是资产或系统的实时虚拟模型&#xff0c;它使用来自连接的物联网传感器的数据来创建数字表示。数字孪生允许您从任何地方实时监控设备、资产或流程。数字孪生用于多种目的&#xff0c;例如分析性能、监控问题或在实施之前运行测试。从物联网数字孪生中获得的见解使用户…...

俄罗斯四大平台速卖通、Joom、Ozon 和 UMKA中国卖家如何脱颖而出!

随着全球化的不断推进&#xff0c;越来越多的中国卖家将目光投向了俄罗斯这个广阔的市场。在众多的跨境电商平台中&#xff0c;速卖通、Joom、Ozon 和 UMKA 无疑是最受关注的四个平台。本文将从卖家的角度&#xff0c;详细分析这四大平台的特点和优势&#xff0c;帮助找到最…...

destoon 调用第三方api接口

调用企查查企业工商信息接口为例&#xff1a; 在 \api\extend.func.php 文件下 注意&#xff1a;有注释内容可能接口无法访问 function select_list($k){$query_data array(key>,keyword>$k);$url "https://api.qichacha.com/ECIV4/GetBasicDetailsByName?&q…...

js中的类型转换

原文地址 JavaScript 中有两种类型转换&#xff1a;隐式类型转换&#xff08;强制类型转换&#xff09;和显式类型转换。类型转换是将一个数据类型的值转换为另一个数据类型的值的过程。 隐式类型转换&#xff08;强制类型转换&#xff09;&#xff1a; 隐式类型转换是 Java…...

Oracle物化视图(Materialized View)

与Oracle普通视图仅存储查询定义不同&#xff0c;物化视图&#xff08;Materialized View&#xff09;会将查询结果"物化"并保存下来&#xff0c;这意味着物化视图会消耗存储空间&#xff0c;物化的数据需要一定的刷新策略才能和基表同步&#xff0c;在使用和管理上比…...

Spring 学习(九)整合 Mybatis

1. 整合 Mybatis 步骤 导入相关 jar 包 <dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><dependency>…...

Android AMS——概述(一)

一、AMS简介 Android AMS(Activity Manager Service)是 Android 操作系统中的一个核心组件,它是 Android 应用程序的管理器,负责管理应用的生命周期、任务栈、进程和活动之间的切换等。AMS在 Android 系统中起着至关重要的作用,确保应用程序能够正确运行并与用户进行交互。…...

DDoS攻击和CC攻击

DDoS是&#xff08;Distributed Denial of Service&#xff0c;分布式拒绝服务&#xff09;攻击和CC&#xff08;Challenge Collapsar&#xff0c;挑战黑洞) 攻击是两种常见且具有破坏性的攻击类型&#xff0c;它们可以对网络基础设施和在线业务造成重大损害。为了抵御这些攻击…...

Lnmp架构之mysql数据库实战2

4、mysql组复制集群 一主多从的请求通常是读的请求高于写 &#xff0c;但是如果写的请求很高&#xff0c;要求每个节点都可以进行读写&#xff0c;这时分布式必须通过&#xff08;多组模式&#xff09;集群的方式进行横向扩容。 组复制对节点的数据一致性要求非常高&#xff…...

【软件工程_设计模式Designer Method】三类?23种常用设计模式?-简介-作业一

设计模式&#xff1f;what&#xff1f; what is Design pattern&#xff1f;&#xff1f;&#xff1f; 是一套反复被使用的、经过分类编目的、家喻户晓的、代码设计经验的总结。 它是 软件工程的一块基石。 “ 设计模式是软件工程中一种通用的&#xff0c;可复用的一种解决方案…...

信号相关的函数

#include <sys/types.h> #include <signal.h> int kill(pid_t pid, int sig); -功能&#xff1a;给任何进程pid&#xff0c;发送任何信号sig 参数&#xff1a; pid: >0:将信号发送给指定的进程 0&#xff1a;将信号发送给当前的进程组 -1&#xff1a;将信号发送…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧

上周三&#xff0c;HubSpot宣布已构建与ChatGPT的深度集成&#xff0c;这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋&#xff0c;但同时也存在一些关于数据安全的担忧。 许多网络声音声称&#xff0c;这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...

抽象类和接口(全)

一、抽象类 1.概念&#xff1a;如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象&#xff0c;这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法&#xff0c;包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中&#xff0c;⼀个类如果被 abs…...

第八部分:阶段项目 6:构建 React 前端应用

现在&#xff0c;是时候将你学到的 React 基础知识付诸实践&#xff0c;构建一个简单的前端应用来模拟与后端 API 的交互了。在这个阶段&#xff0c;你可以先使用模拟数据&#xff0c;或者如果你的后端 API&#xff08;阶段项目 5&#xff09;已经搭建好&#xff0c;可以直接连…...

webpack面试题

面试题&#xff1a;webpack介绍和简单使用 一、webpack&#xff08;模块化打包工具&#xff09;1. webpack是把项目当作一个整体&#xff0c;通过给定的一个主文件&#xff0c;webpack将从这个主文件开始找到你项目当中的所有依赖文件&#xff0c;使用loaders来处理它们&#x…...

内窥镜检查中基于提示的息肉分割|文献速递-深度学习医疗AI最新文献

Title 题目 Prompt-based polyp segmentation during endoscopy 内窥镜检查中基于提示的息肉分割 01 文献速递介绍 以下是对这段英文内容的中文翻译&#xff1a; ### 胃肠道癌症的发病率呈上升趋势&#xff0c;且有年轻化倾向&#xff08;Bray等人&#xff0c;2018&#x…...