| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 数据湖概念以及数据湖产生的背景和价值 -> 正文阅读 |
|
[大数据]数据湖概念以及数据湖产生的背景和价值 |
一、数据湖的概念数据湖是一个集中式存储库,允许以任意规模存储所有结构化和非结构化数据。您可以按原样存储数据(无需先对数据进行结构化处理),并运行不同类型的分析 – 从控制面板和可视化到大数据处理、实时分析和机器学习,以指导做出更好的决策。 是构建在低成本分布式存储之上,提供更好事物和性能支持的统一数据存储系统。典型分层如下图所示:
可以看出,由于采用了HDFS或公有云存储,所以数据湖在保存数据上,具有低成本大容量的优点,并且能够保存多种多样的数据,比如结构化、半结构化和非结构化数据;另外,由于表抽象层的存在,保证了ACID事务支持,同时提供了良好的扩展能力,可以面向不同的计算需求对接不同的计算引擎。 二、数据湖产生的背景1.互联网早期在互联网早期,各个公司的数据量不大,而且比较单一,因此整个数据架构比较简单,主要是基于关系型数据库搭建。 关系型数据库提供了数据的收集、存储和分析,数据质量比较高,但是能够支撑的数据量有限。 2.互联网爆发随着互联网的爆发,数据量爆发式增长,原有的数据架构开始暴露出问题:单个关系型数据库无法支撑庞大的数据量。 于是公司会按照业务线等方式,把数据进行拆分,不同的数据库保存不同的数据,比如分别保存订单数据、用户数据等。虽然这种方式在一定程度上解决了问题,但它同时引入了另外一个问题:数据孤岛。如果业务想跨数据库进行数据分析,会非常困难,这严重影响了数据的可用价值。 在这个背景下,数据仓库(Data Warehouse)开始崛起。数据仓库可以集成多个数据库的数据,进行统一的处理分析,从而解决数据孤岛问题。而且相比关系型数据库,数据仓库的查询性能更高,响应更快。通过这种集中的数据分析(Single Source of Truth),也可以更方便地对数据进行审计、治理等。 但同时数据仓库也存在各种各样的问题,其中很关键一点是成本相对较高,特别是保存数据量很大的话,会给公司带来比较大的成本压力。而且采用商业版数据仓库的话,由于技术闭源,且依赖特定的企业级服务器,会让公司和商业数仓背后的公司产生强绑定的风险,这些都是大公司所忌惮的。 ?3.Hadoop出现这一切问题在Hadoop问世后都发生了重大转变,Hadoop脱胎于Google的“三驾马车”,借助Google的先进理念,再通过开源的方式提供给广大用户,可以说Hadoop由此成为了大数据分析的分水岭。企业从此有了一个很有吸引力的选型,从闭源昂贵的商业数仓,转向开源免费的Hadoop,而且Hadoop可以保存多种多样的数据,包括文本、图片、音视频等,这些都是数据仓库做不到的。 (1) Hadoop的核心特点:
Hadoop的一大优势是低成本,很多时候更高的性能、更丰富的功能,远没有更低的成本对企业有吸引力。而且在低成本的优势之上,Hadoop提供了良好的容错性、扩展性,为不断涌现的数据提供了有力的存储和计算支撑。 (2) Hadoop的局限性Hadoop的火热也引来了不少非议,数据库领域的人站出来职责Hadoop在“开历史的倒车”。以数据库领域的多年经验,有几条准则是很重要的:
除此之外,Hadoop还有一些数据库领域很关键的特性缺失了:
4.Hadoop + Data WarehouseHadoop虽然存在这样那样的缺点,但是事实证明,它依然非常受欢迎,因为它确实解决了其他技术无法解决的问题。 那么如何解决Hadoop本身的缺陷呢,很简单,用户选择把Hadoop和数据仓库结合起来使用: ? Hadoop以其大容量低成本的特性,保存最原始的数据,这部分数据比较全面,但是质量可能不是非常高。对于关键的数据,通过ETL处理后,导入到数据仓库中,提供更好的查询性能,提供更好的数据质量,支撑企业内部的BI和报表需求。 看起来很美好,但是可以看出又回到了早期存在的问题,数据孤岛问题。往往同一份数据在Hadoop和数据仓库中都有一份,除了造成数据冗余、成本浪费,还造成了数据产出口径不一致问题,应该以哪个系统的数据为准有时候说不清楚;另外,这种数据架构带来了运维上的困难,比如Schema的变更很容易导致ETL链路的各种问题,这些都严重影响了从数据到价值的转换效率。 三、数据湖的引入及价值用户需要有这样一种系统,它既具备Hadoop的低成本大容量的优势,又具备数据仓库的ACID事务等能力。如果有一套技术方案能够支撑如上需求的话,那么就可以很大程度上解决Hadoop+Data Warehouse搭配使用带来的各种问题。 ? 可以简单的认为,数据湖就是这样一种融合了Hadoop和数仓优势的技术。正如它的定义,它是构建在低成本分布式存储之上,提供更好的事物和性能支持的统一数据存储系统。 那是不是说就不需要数据仓库了呢,从短期来看是做不到的,对于性能要求比较高的查询等需求,依然需要数据仓库来解决。但是按照二八原则,如果80%的数据处理需求通过数据湖一套技术架构就能解决的话,就已经能够给业务带来很大的价值了;无论是在效率上还是成本上,都会带来很大的优势。至于长期,目前业界存在争议,有人偏向于长期共存,有人偏向于数据湖架构逐步统一市场,目前暂无定论(感兴趣的同学可以看一下来自a16z、Snowflake、Fishtown Analytics(dbt背后商业公司)等人的The Great Debate)。? 1.数据湖与数据仓库对比数据仓库是一个优化的数据库,用于分析来自事务系统和业务线应用程序的关系数据。事先定义数据结构和 Schema 以优化快速 SQL 查询,其中结果通常用于操作报告和分析。数据经过了清理、丰富和转换,因此可以充当用户可信任的“单一信息源”。 数据湖有所不同,因为它存储来自业务线应用程序的关系数据,以及来自移动应用程序、IoT 设备和社交媒体的非关系数据。捕获数据时,未定义数据结构或 Schema。这意味着您可以存储所有数据,而不需要精心设计也无需知道将来您可能需要哪些问题的答案。您可以对数据使用不同类型的分析(如 SQL 查询、大数据分析、全文搜索、实时分析和机器学习)来获得结果。
这是AWS给出的对比 传统的数据仓库工作方式是集中式的:业务人员给需求到数据团队,数据团队根据要求加工、开发成维度表,供业务团队通过BI报表工具查询或者业务分析系统展示。 数据湖是开放、自助式的:开放数据给所有人使用,数据团队更多是提供工具、环境供各业务团队使用,业务团队进行开发、分析。 和数据仓库不同的是,以前数据仓库都是先设计schema,然后灌入数据。数据湖的schema是随用随生成,随着分析场景不同而不同。 数据湖对于数据分析师来说对数据的操控性更强,但是要求也更高,不光懂业务,懂sql,懂数据,还要懂大数据处理技术,每个人都在处理自己需要的数据,会造成很多冗余数据存储和计算资源浪费,无法形成共性的可复用的数据层,这方面数仓是有益的补充。数据湖并不是为了颠覆数据仓库,是为了满足数仓无法满足的数据需求,二者是互补的。 2.基于Hive构建的传统数仓的局限性
参考文章: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 8:02:13- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |