【数据湖架构】数据湖101:概述

news2024/9/28 11:16:31

999616e9602195a73058bf4762d79f20.jpeg

数据湖是非结构化和结构化数据池,按原样存储,没有特定的目的,可以建立在多种技术上,如Hadoop,NoSQL,Amazon Simple Storage Service,关系数据库或各种组合根据一份名为“什么是数据湖”的白皮书,为什么它变得流行?

Data Lake允许多点采集和多个数据访问点。Pentaho公司的创始人詹姆斯·迪克森(James Dixon)在2010年创造了“数据湖”(Data Lake)这个术语,并将其与数据集市(Data Mart)

“如果你把数据集市视为瓶装水的存储 - 清洁和打包,并容易消费的结构 - 数据湖是一个更自然状态的大量水体。数据湖的内容从一个源头填补湖泊,湖泊的各种用户可以来检查,潜水或采样。

在数据湖与数据仓库的关键区别上,SAS研究所新兴技术总监Tamara Dull将Data Lake定义为“一个存储仓库,以原生格式存储大量原始数据,包括结构化,半结构化和非结构化数据“。

Dull接着说:“与数据仓库相比,存储数据的成本相对较低。这主要有两个原因:首先,Hadoop是开源软件,所以许可和社区支持是免费的。其次,Hadoop被设计成安装在低成本的商品硬件上“

Hortonworks公司战略副总裁Shaun Connolly在他的博客文章Enterprise Hadoop和“数据湖之旅:

“数据湖的特点是三个关键属性:

  1. 收集一切。Data Lake包含所有数据,包括长时间的原始数据源以及任何已处理的数据。

  2. 潜水在任何地方。数据湖使多个业务部门的用户可以根据自己的条款细化,探索和丰富数据。

  3. 灵活的访问。Data Lake支持跨共享基础架构的多种数据访问模式:批处理,交互式,在线,搜索,内存和其他处理引擎。

数据湖并不是一个快速修复所有问题的方法,Bob Violino是“数据湖首席信息官需要了解的五件事”一书的作者。他说,“你不能买一个现成的数据湖。供应商将Data Lakes作为大数据项目的灵丹妙药进行营销,但这是一个谬论。“他引用Gartner研究总监Nick Heudecker的话说,”就像数据仓库一样,Data Lakes是一个概念,而不是技术。数据湖的核心是数据存储策略。“

数据湖出生于社交媒体巨人

PriceWaterhouseCooper(普华永道)杂志总结了数据湖中数据湖概念的起源和未来数据的承诺:

“Hadoop背后的基本概念是由Google设计的,旨在满足其对灵活,经济高效的数据处理模式的需求,这种模式可以随着数据量的增长比以往任何时候都快。雅虎,Facebook,Netflix以及其他基于管理大量数据的商业模式的公司也采用了类似的方法。成本当然是一个因素,因为Hadoop的部署成本比传统的数据仓库要低10到100倍。采用的另一个驱动因素是推迟劳动密集型模式开发和数据清理的机会,直到组织确定了明确的业务需求。数据湖泊更适合这些公司需要处理的结构较少的数据。“

及时分析数据前进和后退

Data Lake可以在未知需求之前收集数据,然后才能知道这些需求是什么,因此具有巨大的潜力。数据不受数据捕获时存在的思维范围的限制,而是可以自由地回答我们还不知道要问的问题:“数据本身不再受初始模式决策的限制,而且可以更自由地利用数据“硅谷数据科学战略副总裁Edd Dumbill在”数据湖梦“中写道。ThoughtWorks的数据博客作者Martin Fowler在一篇名为“数据湖”的文章中表示:“数据湖应该包含所有的数据,因为你不知道人们今天或者几年之后会发现什么有价值的东西。

BlueGranite博主兼微软云数据解决方案架构师Chris Campbell表示,

“Data Lake保留所有数据。不仅仅是今天使用的数据,还有可能被使用的数据,甚至可能永远不会被使用的数据,因为有一天它可能会被使用。数据也一直保存下来,以便我们能够及时回到任何一点进行分析。“

Tamara Dull补充说,Data Lake缺乏结构,“使开发人员和数据科学家能够轻松地配置和重新配置他们的模型,查询和应用程序”。

支持多个用户

Data Lake方法的另一个特点是可以满足各种用户的需求。整个公司的用户都可以访问数据,以满足他们所能想象的任何需求 - 从集中式模式转变为更加分散式的模式:“来自不同业务部门的用户有可能完善,探索和丰富数据的潜力”把Data Lake工作,Hortonworks和Teradata的白皮书。

Chris Campbell根据数据与数据的关系将数据用户划分为三类:那些只希望在电子表格上进行日常报告的人,那些进行更多分析但希望回到源头以获取最初未包括的数据的人,想用数据来回答全新的问题。他说:“Data Lake方法同样支持所有这些用户。”

成本有效的存储

坎贝尔还说,数据湖泊相对便宜,易于存储,因为存储成本最小,预格式化是没有必要的。“商品,现成的服务器与廉价的存储相结合,使数据湖的容量达到TB和PB,相当经济。”根据Hortonworks和Teradata的白皮书,Data Lake概念“提供了一种符合成本效益和技术上可行的方式来满足Big数据挑战“。

当心“沼泽”

Martin Fowler警告说,“数据湖有一个共同的批评 - 它只是一个质量差异很大的数据的倾倒地点,更好地命名为”数据沼泽“,批评是有效的和不相关的。”他接着说:

“这些原始数据的复杂性意味着有一些东西可以将数据转换成更易于管理的结构(以及减少相当大的数据量)。数据湖不应该被直接访问得太多。因为数据是生的,所以你需要很多技能才能做出任何意义。在数据湖中工作的人相对较少,因为他们发现对湖泊数据普遍有用的观点,他们可以创建一些数据集市,每个数据集市都有一个单一的有限背景的特定模型。

对数据上下文的不同理解

最终用户可能不知道如何使用数据,或者当数据没有策划或结构化时他们正在看什么,这使得它不太有用:“数据湖的根本问题是它对信息用户做出了某些假设”数据湖里的Nick Heudecker说:不要把它们和数据仓库混为一谈,警告Gartner。

Tamara Dull指出,尽管最初希望为公司范围内的每个人提供数据访问,但是像以前的举措一样,全面参与的期望可能会令人失望:

“很长一段时间以来,这个号召力一直是'BI and Analytics for everyone!'我们已经建立了数据仓库并邀请所有人前来,但是他们来了吗?平均而言,有20-25%的人拥有。对于Data Lake来说,这是否一样的呐喊?我们会建设数据湖,并邀请大家来?不,如果你聪明。相信我,数据湖,在这个成熟的阶段,最适合数据科学家。“

数据湖比数据仓库更好吗?

Tamara Dull指出,Data Lake不是“数据仓库2.0”,也不是数据仓库的替代品:“因此,要回答这个问题,数据仓库不仅仅是数据仓库的重新审视吗?我的意思是否定的。无聊的同事,SAS最佳实践思想领袖Anne Buff列举了关于智能数据集体在线辩论的主要差异:

数据仓库与数据湖

仓库中的数据是

  • 结构化的,已处理的

  • 仓库的处理是:模式在写

  • 仓库中的存储是:大数据量昂贵

  • 仓库中的敏捷性是:敏捷性较低,固定配置

  • 仓库的安全是:成熟

  • 仓库的用户是:商业专业人士

湖泊中的数据是

  • 结构化/半结构化/非结构化/原始的

  • 处理湖是:图解在读

  • 在湖中储存是:低成本设计

  • 在湖中敏捷:高度敏捷,根据需要进行配置和重新配置

  • 湖中的安全是:成熟

  • 数据科学家et.al.

克里斯坎贝尔看到这两个关键的区别:

数据仓库:

  • 它代表了由主题领域组织的业务的抽象图片。

  • 这是高度转变和结构。

  • 在定义使用数据之前,数据不会被加载到数据仓库中。

  • 它通常遵循既定的方法

数据湖:

  • 所有数据都从源系统加载。没有数据被拒绝。

  • 数据以未转换或几乎未转换的状态存储在叶级。

  • 数据被转换,模式被应用来满足分析的需要。

  • 它支持所有用户。

  • 它很容易适应变化,并提供更快的见解。

尽管每个人都有其支持者和批评者,但似乎两者都有余地,“数据湖不是数据仓库”。他们都是为了不同的目的而优化的,目标是用每个人的设计来做。“Tamara Dull说。换句话说,使用最好的工具来完成这项工作。这不是一个新的教训。我们以前学过这个。现在我们来做吧。“

本文 :https://architect.pub/data-lake-101-overview
讨论:知识星球【首席架构师圈】或者加微信小号【ca_cto】或者加QQ群【792862318】
公众号
 
【jiagoushipro】
【架构师酒馆】
精彩图文详解架构方法论,架构实践,技术原理,技术趋势。
我们在等你,赶快扫描关注吧。
872307264ec7d4065ee1a2a4380b93fe.jpeg
微信小号
 
【ca_cea】
50000人社区,讨论:企业架构,云计算,大数据,数据科学,物联网,人工智能,安全,全栈开发,DevOps,数字化.
 

24206b3da28ed753641857df6f20cbb8.jpeg

视频号【架构师酒馆】
1分钟快速了解架构相关的基本概念,模型,方法,经验。
每天1分钟,架构心中熟。

16088d4793f7425a2cce7805128590bc.jpeg

知识星球【首席架构师圈】向大咖提问,近距离接触,或者获得私密资料分享。 

021ca589a30948b57e591f172b1d570c.jpeg

喜马拉雅【超级架构师】路上或者车上了解最新黑科技资讯,架构心得。【智能时刻,架构君和你聊黑科技】
微博【架构师酒馆】智能时刻
哔哩哔哩【架构师酒馆】

9d93180e70ab6eb2ae4e76595f871034.jpeg

抖音【cea_cio】架构师酒馆

4a173311015ca74c4cc94619312bb253.jpeg

小红书【cea_csa_cto】架构师酒馆 

e6c9c70d1fbc613b893d78fea9cdac36.jpeg

网站CIO(首席信息官)https://cio.ceo
网站CIO,CTO和CDOhttps://cioctocdo.com
网站架构师实战分享https://architect.pub   
网站程序员云开发分享https://pgmr.cloud
官网行天智能科技咨询公司https://xingtian.ai
网站开发者闲谈https://blog.developer.chat
网站首席隐私官内参https://cpo.work
网站首席安全官内参https://cso.pub    
网站CIO内参https://cio.cool
网站CDO内参https://cdo.fyi
网站CXO内参https://cxo.pub
网站首席架构师社区https://jiagoushi.pro

谢谢大家关注,转发,点赞和点在看。

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

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

相关文章

ffmpeg+x265精简压缩图片

可以看到700M的图片可以压缩到只有9M,并且模型推理精度只会下降0.07.有很多种压缩方式,经过大量实验qb36是最好的,默认使用这个。 input_images:原始图片。 mkv_files\qb36:中转文件,也就是说原始图片要先…

STL标准库与泛型编程(侯捷)笔记3

STL标准库与泛型编程(侯捷) 本文是学习笔记,仅供个人学习使用。如有侵权,请联系删除。 参考链接 Youbute: 侯捷-STL标准库与泛型编程 B站: 侯捷 - STL Github:STL源码剖析中源码 https://github.com/SilverMaple/STLSourceCo…

qt鼠标常用事件

和上一个案例相同,也是做了提升,换了相同父类,但是方式有所不同 先在widget.ui中加入label标签,此时其父类为QLabel,然后想实现鼠标在QLabel上的捕获。所以我们需要把QLabel提升为自己的框架,然后自定义框架后,我们就可以自己捕获信息了。然…

遗传算法总结(迭代版本2:附带MATLAB例题代码)

目录 基本概念: 具体例子 1.我们先对图像进行抽象化: 2.我们将得到的六串数字进行扁平化处理: 3.解释即后续操作​编辑 基本步骤: 总结 例题1: 例题2: 基本概念: 染色体(Ch…

uniapp 文字超出多少字,显示收起全文按钮效果demo(整理)

收起展开 <template><view class"font30 color000 mL30 mR30"><text :class"showFullText ? : clamp-text">{{ text }}</text><view v-if"showToggleBtn && text.length > 42" click"toggleShowFu…

基于JAVA的服装店库存管理系统 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 角色管理模块2.3 服装档案模块2.4 服装入库模块2.5 服装出库模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 角色表3.2.2 服装档案表3.2.3 服装入库表3.2.4 服装出库表 四、系统展示五、核心代码5.…

小白入门基础 - tomcat

一&#xff1a;前言 Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器&#xff0c;属于轻量级应用服务器&#xff0c;在中小型系统和并发访问用户不是很多的场合下被普遍使用&#xff0c;是开发和调试JSP 程序的首选。对于一个初学者来说&#xff0c;可以这样认为&#x…

解决“SQLServer 添加数据库,报Error 5118“错误

当将把一个SQLServer的数据库文件*.MDF和日志文件*.LDF&#xff0c;从电脑A拷贝到电脑B&#xff0c;然后在电脑B上&#xff0c;使用Microsoft SQL Server Management Studio添加该*.MDF文件&#xff0c;有时报"Error 5118"错误&#xff0c;如图(1)所示&#xff1a; 图…

【C程序设计】C指针

学习 C 语言的指针既简单又有趣。通过指针&#xff0c;可以简化一些 C 编程任务的执行&#xff0c;还有一些任务&#xff0c;如动态内存分配&#xff0c;没有指针是无法执行的。所以&#xff0c;想要成为一名优秀的 C 程序员&#xff0c;学习指针是很有必要的。 正如您所知道的…

Hadoop精选18道面试题(附回答思路)

1.简述Hadoop1和Hadoop2的架构异同 HDFS HA(High Availablity)一旦Active节点出现故障&#xff0c;就可以立即切换到Standby节点&#xff0c;避免了单点故障问题。加入了对zookeeper支持实现比较可靠的高可用。YARN将MapReduce1.0中的资源管理调度功能分离出来形成了YARN&…

Mac/Window 如何下载安装 Pycharm 2023

文章目录 1. 下载 Pycharm2. jiebra 工具下载3. jiebra 工具安装3.1 Window 端3.2 Mac 端 1. 下载 Pycharm Pycharm 下载官网&#xff0c;可以下载的是最新版的 Pycharm&#xff0c;但不保证可以jihuo&#xff1b; 如果需要保证可用的&#xff0c;建议直接下载资源&#xff…

@Transactional 注解的12种失效场景

请直接看原文: 原文链接:啪&#xff01;啪&#xff01;Transactional 注解的12种失效场景&#xff0c;这坑我踩个遍-腾讯云开发者社区-腾讯云 (tencent.com) ------------------------------------------------------------------------------------------------------------…

C++完成Query执行sql语句的接口封装和测试

1、在LXMysql.h 创建Query执行函数 //封装 执行sql语句 if sqllen 0 strlen获取字符长度bool Query(const char*sql,unsigned long sqllen0); 2、在LXMysql.cpp编写函数 bool LXMysql::Query(const char* sql, unsigned long sqllen){if (!mysql)//如果mysql没有初始化好{c…

功能强大且易于使用的视频转换软件—Avdshare Video Converter for Mac/win

在当今的数字时代&#xff0c;我们的生活离不开各种形式的媒体娱乐&#xff0c;而视频内容无疑是其中最为受欢迎的一种。然而&#xff0c;我们常常会遇到一些问题&#xff0c;比如我们在电脑上下载的视频无法在手机上播放&#xff0c;或是我们想将视频转换为其他格式以适应不同…

.NetCore部署微服务(一)

目录 前言 什么是微服务 微服务的优势 微服务的原则 创建项目 在Docker中运行服务 客户端调用 简单的集群服务 前言 写这篇文章旨在用最简单的代码阐述一下微服务 什么是微服务 微服务描述了从单独可部署的服务构建分布式应用程序的体系结构流程&#xff0c;同时这些…

【Linux】之搭建 PostgreSQL 环境

前言 在 Linux 系统下安装 PostgreSQL&#xff0c;可以选择快捷方便的 Docker 安装&#xff0c;但正常的服务器都是直接原生安装的&#xff0c;所以&#xff0c;这里我将讲解如何正常安装 PostgreSQL 以及安装之后的一些配置。如果想了解 Docker 安装的话&#xff0c;可以查看我…

二叉树的经典算法(算法村第八关青铜挑战)

二叉树里的双指针 所谓的双指针就是定义了两个变量&#xff0c;在二叉树中有需要至少定义两个变量才能解决问题。这两个指针可能针对一棵树&#xff0c;也可能针对两棵树&#xff0c;姑且也称之为“双指针”。这些问题一般与对称、反转和合并等类型题相关。 判断两棵树是否相…

004-Zynq实现SD卡存储灰度图片(彩色图片存储正点已开源)

文章目录 前言一、为什么参考ov7725照相机实验存储不了灰度&#xff1f;二、SD卡实现步骤1.配置Zynq核中的SD卡接口2.PS端勾选xilffs3.PS端代码4.读卡器读取SD卡结果呈现 总结 前言 最近在弄SD卡存储灰度图片&#xff0c;参考了正点原子的OV7725照相机实验&#xff0c;但发现最…

网安入门09-Sql注入(绕过方法梳理)

ByPass SQL注入ByPass是指攻击者通过各种手段绕过应用程序中已经实施的SQL注入防御措施&#xff0c;例如输入恶意数据、修改请求头等方式&#xff0c;绕过过滤、转义、限制等操作&#xff0c;从而成功地执行恶意SQL语句。攻击者使用SQL注入ByPass技术可以让应用程序的防御措施…

为什么Java中“1000==1000”为false,而”100==100“为true?

大家好&#xff0c;我是可乐。 在日常编程中&#xff0c;我们经常遇到一些看似简单却隐藏着复杂逻辑的问题。 比如&#xff0c;你是否想过为什么在 Java 中表达式10001000会返回 false&#xff0c;而 100100 却返回 true 呢&#xff1f; Integer a 100; Integer b 100; Sy…