前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >数据湖及其架构的一份笔记

数据湖及其架构的一份笔记

作者头像
哒呵呵
发布于 2020-09-01 07:23:37
发布于 2020-09-01 07:23:37
2K0
举报
文章被收录于专栏:鸿的学习笔记鸿的学习笔记
数据湖是什么?

数据湖(Data Lake)是一个存储企业的各种各样原始数据的大型仓库,其中的数据可供存取、处理、分析及传输。数据湖是以其自然格式存储的数据的系统或存储库,通常是对象blob或文件。数据湖通常是企业所有数据的单一存储,包括源系统数据的原始副本,以及用于报告、可视化、分析和机器学习等任务的转换数据。数据湖可以包括来自关系数据库(行和列)的结构化数据,半结构化数据(CSV,日志,XMLJSON),非结构化数据(电子邮件,文档,PDF)和二进制数据(图像,音频,视频)。

注意:数据湖是一个概念,而Hadoop是用于实现这个概念的技术,不能混为一谈。

与数据仓库的区别
  • 在储存方面上,数据湖中数据为非结构化的,所有数据都保持原始形式。存储所有数据,并且仅在分析时再进行转换。数据仓库就是数据通常从事务系统中提取。
  • 在将数据加载到数据仓库之前,会对数据进行清理与转换。在数据抓取中数据湖就是捕获半结构化和非结构化数据。而数据仓库则是捕获结构化数据并将其按模式组织。
  • 数据湖的目的就是数据湖非常适合深入分析的非结构化数据。数据科学家可能会用具有预测建模和统计分析等功能的高级分析工具。而数据仓库就是数据仓库非常适用于月度报告等操作用途,因为它具有高度结构化。
  • 在架构中数据湖通常,在存储数据之后定义架构。使用较少的初始工作并提供更大的灵活性。在数据仓库中存储数据之前定义架构。

总的来说,数据湖更像是数据仓库的原始数据层。而数据仓库从数据湖中抽取数据加工处理后,通过维度或者是范式建模等方式规范化数据湖里的数据。

数据湖的数据特点
  • 数据种类多,有关系数据库(行和列)的结构化数据,半结构化数据(CSV,日志,XML,JSON),非结构化数据(电子邮件,文档,PDF)和二进制数据(图像,音频,视频)。
  • 数据比较原始,可以是实时数据,也可以是非实时数据。
流行的数据湖架构

其实这个是重点,现在很流行的基于分布式文件系统构建的三个数据湖系统:Delta Lake、Hudi、Iceberg。

这三个开源项目本质上解决的痛点是:

  • 都是为数据湖的数据存储层设计的;
  • 都是赋予大数据圈里最流行的 Spark 计算引擎以 ACID 能力的数据存储层;
  • 同时支持批处理和流处理的写入;
  • 都采用了 meta 文件去管理数据,meta 文件的角色类似于数据库的 catalog/wal,起到 schema 管理、事务管理和数据管理的功能;
  • 都采用了 schema 的概念去强制结构化数据,以避免低质量数据;
  • 都不依赖于底层存储系统,可以选择 S3 或者是 HDFS 皆可。

这几点里最核心的概念应该支持流处理的写入。以往由于批处理和流处理的不同数据处理的特点,导致了批处理和流处理会选择不同的存储引擎去存储数据。而 HDFS 囿于本身架构设计的原因对小文件的问题一直都没解决。Delta Lake、Hudi、Iceberg 都在往这个方向迈出了一大步。

Delta Lake、Hudi、Iceberg 的比较

关于 Delta Lake、Hudi、Iceberg 的,网上的文章比较多,感兴趣的可以参考文末的链接。在这里简单地评论一下这三者。

诞生初衷
  • Hudi 为了 incremental 的 upserts;
  • Iceberg 定位于高性能的分析与可靠的数据管理;
  • Delta Lake 定位于流批一体的数据处理。
一句话评价
  • Delta Lake 发展势头最好;
  • Iceberg 的设计最为优秀;
  • Hudi 的性能最好。
我所关注的特性
  • 关于数据更新:Delta Lake、Hudi、Iceberg 都支持 Upserts、Deletes 和 Incremental 数据,Hudi 选择了使用主键 + 布隆过滤器的方式,而 Delta Lake、Iceberg 因为没有主键,导致数据更新只能采用 join 的方式,性能会有极大的损失,且极度依赖于计算引擎。
  • 关于计算引擎:目前 Delta Lake 支持 Apache Spark、Presto、Athena、Redshift、Snowflake 和 Hive;Hudi 支持 Hive、Presto 和 Impala;Iceberg 支持 Spark 和 Presto。
与其它存储引擎的比较
  • Kudu:相比于 Kudu 自成体系的存储系统需要特定的硬件支持,Delta Lake、Hudi、Iceberg 都依赖于 HDFS 或者 S3 这样的云存储,在价格上会更占优势点;Kudu 更依赖于 Impala,而没有选择兼容其它的计算引擎,Delta Lake、Hudi、Iceberg 则更加积极地拥抱各式各样的计算引擎;另外,从架构设计上来说,Kudu 因为采用了全新的架构,避免了 HDFS 等分布式文件系统的设计缺陷,性能和可靠性相较于 Delta Lake、Hudi、Iceberg 会更好一点。
  • TiSpark + TiFlash:相比于 Delta Lake、Hudi、Iceberg ,这个更有前景。可能唯一的不算缺点的缺点就是计算引擎支持的太少,与 Hadoop 生态圈很难整合进去。
结论

Delta Lake、Hudi、Iceberg 在某种程度上都解决了在分布式文件系统上实现流处理更新的问题,通过使用 meta 文件管理数据和后台进程合并文件的操作,尽可能地解决了像 HDFS 这样的分布式文件系统普遍存在的小文件的问题。至于未来,能否战胜 Kudu 、TiSpark 这样的对手还是要画一个问号的。

参考链接
  1. https://mp.weixin.qq.com/s?__biz=MzIwNDI0ODY1OA==&mid=2655930670&idx=2&sn=a28ad8a40aac097990328e9bd3cae756&scene=21#wechat_redirect
  2. https://databricks.com/session_na20/a-thorough-comparison-of-delta-lake-iceberg-and-hudi
  3. https://developer.aliyun.com/article/744920
  4. https://medium.com/@eric.sun_39815/rescue-to-distributed-file-system-2dd8abd5d80d
  5. https://www.infoq.cn/article/FjeBCoNxD2Sz9WLoykFo
  6. https://iceberg.apache.org/
  7. https://hudi.apache.org/
  8. https://delta.io/
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 鸿的笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
计算引擎之下,存储之上 - 数据湖初探
随着移动互联网,物联网技术的发展,数据的应用逐渐从 BI 报表可视化往机器学习、预测分析等方向发展,即 BI 到 AI 的转变。
kk大数据
2020/12/29
1.7K0
计算引擎之下,存储之上 - 数据湖初探
实时方案之数据湖探究调研笔记
数据湖是目前比较热的一个概念,许多企业都在构建或者计划构建自己的数据湖。但是在计划构建数据湖之前,搞清楚什么是数据湖,明确一个数据湖项目的基本组成,进而设计数据湖的基本架构,对于数据湖的构建至关重要。关于什么是数据湖?有不同的定义。
王知无-import_bigdata
2021/03/26
8680
实时方案之数据湖探究调研笔记
最新大厂数据湖面试题,知识点总结(上万字建议收藏)
本文目录: 一、什么是数据湖 二、数据湖的发展 三、数据湖有哪些优势 四、数据湖应该具备哪些能力 五、数据湖的实现遇到了哪些问题 六、数据湖与数据仓库的区别 七、为什么要做数据湖?区别在于? 八、数据湖挑战 九、湖仓一体 十、目前有哪些开源数据湖组件 十一、三大数据湖组件对比
五分钟学大数据
2022/04/07
1.3K0
最新大厂数据湖面试题,知识点总结(上万字建议收藏)
BDCC- 数据湖体系
数据湖是一种存储系统,底层包括不同的文件格式及湖表格式,可存储大量非结构化和半结构化的原始数据。
小小工匠
2023/04/30
6470
BDCC- 数据湖体系
数据湖框架之技术选型-Hudi、Delta Lake、Iceberg和Paimon
数据湖是一个集中式的存储库,允许你以任意规模存储多个来源、所有结构化和非结构化数据,可以按照原样存储数据,无需对数据进行结构化处理,并运行不同类型的分析对数据进行加工,例如:大数据处理、实时分析、机器学习,以指导做出更好地决策。
qihang
2024/03/16
8.8K1
数据湖YYDS! Flink+IceBerg实时数据湖实践
互联网技术发展的当下,数据是各大公司最宝贵的资源之一已经是不争的事实。收据的收集、存储和分析已经成为科技公司最重要的技术组成部分。大数据领域经过近十年的高速发展,无论是实时计算还是离线计算、无论是数据仓库还是数据中台,都已经深入各大公司的各个业务。
王知无-import_bigdata
2021/10/13
4.5K0
数据仓库与数据湖与湖仓一体:概述及比较
随着越来越多的公司依靠数据来推动关键业务决策、改进产品供应并更好地服务客户,公司捕获的数据量比以往任何时候都多。Domo 的这项研究估计,2017 年每天会生成 2.5 百亿字节的数据,到 2025 年,这一数字将增加到 463 艾字节。但如果公司不能快速利用这些数据,那么这些数据又有什么用呢?针对数据分析需求的最佳数据存储这一话题长期以来一直存在争议。
大数据杂货铺
2024/04/15
5.6K0
数据仓库与数据湖与湖仓一体:概述及比较
什么是数据湖?
数据存储是人类千百年来都在应用并且探索的主题。在原始社会,人类用树枝和石头来记录数据。后来,人类制造了铁器,用铁器在石头上刻画一些象形文字来记录数据,而此时,语言还没有形成,人们记录的东西只有自己才可以看懂。从使用树枝和石块记录数据和用铁器在石头上刻画一些形象文字,到通过竹简和纸张,再到通过计算机保存在软盘,硬盘等设备上。随着技术的发展,信息数据的量越来越大和复杂度越来越高。特别是在近几十年,数据已经呈几何指数增长,早在2012年,就已经宣称大数据时代到来。随着物联网的普及,越来越多的数据将被生产出来。
木野归郎
2023/02/25
1.1K0
什么是数据湖?
OPPO数仓与数据湖融合架构升级的实践与思考
作者 | 蔡芳芳 过去几年,数据仓库和数据湖方案在快速演进和弥补自身缺陷的同时,二者之间的边界也逐渐淡化。云原生的新一代数据架构不再遵循数据湖或数据仓库的单一经典架构,而是在一定程度上结合二者的优势重新构建。在云厂商和开源技术方案的共同推动之下,2021 年我们将会看到更多“湖仓一体”的实际落地案例。InfoQ 希望通过选题的方式对数据湖和数仓融合架构在不同企业的落地情况、实践过程、改进优化方案等内容进行呈现。本文,InfoQ 采访了 OPPO 云数架构部部长鲍永成,请他与我们分享 OPPO 引入数据湖和数
深度学习与Python
2023/04/01
1.2K0
OPPO数仓与数据湖融合架构升级的实践与思考
网易数据湖探索与实践-范欣欣
导读:今天主要和大家交流的是网易在数据湖Iceberg的一些思考与实践。从网易在数据仓库建设中遇到的痛点出发,介绍对数据湖Iceberg的探索以及实践之路。
Spark学习技巧
2021/03/05
1.1K0
网易数据湖探索与实践-范欣欣
干货|流批一体Hudi近实时数仓实践
传统意义上的数据集市主要处理T+1的数据。随着互联网的发展,当前越来越多的业务场景对于数据时效性提出了更高的要求,以便及时快速地进行数据分析和业务决策,比如依托实时数据情况开展实时推荐、实时风控、实时营销等。特别是各种新技术的出现、发展和日趋成熟,实时数据分析和处理也成为可能。实时的大规模数据处理成为企业数字化转型过程中需要破解的难题,也是企业当前面临的一个普遍需求。
大数据老哥
2021/08/25
6.5K0
干货|流批一体Hudi近实时数仓实践
架构师指南:开放式表格格式和对象存储
比较 Apache Iceberg、Delta Lake 和 Apache Hudi,学习如何为您的数据湖仓选择合适的开放表格式。
云云众生s
2025/01/03
1820
架构师指南:开放式表格格式和对象存储
李呈祥:bilibili在湖仓一体查询加速上的实践与探索
导读:本文主要介绍哔哩哔哩在数据湖与数据仓库一体架构下,探索查询加速以及索引增强的一些实践。主要内容包括:
DataFunTalk
2022/06/15
1.4K0
李呈祥:bilibili在湖仓一体查询加速上的实践与探索
数据湖与湖仓一体架构实践
数据湖是保存大量原始格式数据的中心位置。与以文件或文件夹形式存储数据的分层数据仓库相比,数据湖采用扁平化架构和对象存储方式来存储数据。‍对象存储具有元数据标签和唯一标识符,便于跨区域定位和检索数据,提高性能。通过利用廉价的对象存储和开放格式,数据湖使许多应用程序能够利用数据。
大数据学习与分享
2022/12/12
2.7K0
数据湖与湖仓一体架构实践
数据湖Delta Lake、Hudi 与 Iceberg介绍 | 青训营笔记
数据湖是一类存储数据自然/原始格式的系统或存储,通常是对象块或者文件。数据湖通常是企业中全量数据的单一存储。 全量数据包括原始系统所产生的原始数据拷贝以及为了各类任务而产生的转换数据,各类任务包括报表、可视化、高级分析和机器学习。
鳄鱼儿
2024/05/21
1.9K0
数据湖Delta Lake、Hudi 与 Iceberg介绍 | 青训营笔记
对话Apache Hudi VP,洞悉数据湖的过去现在和未来
Apache Hudi是一个开源数据湖管理平台,用于简化增量数据处理和数据管道开发,该平台可以有效地管理业务需求,例如数据生命周期,并提高数据质量。Hudi的一些常见用例是记录级的插入、更新和删除、简化文件管理和近乎实时的数据访问以及简化的CDC数据管道开发。
ApacheHudi
2021/07/05
8040
对话Apache Hudi VP,洞悉数据湖的过去现在和未来
ApacheHudi与其他类似系统的比较
Apache Hudi填补了在DFS上处理数据的巨大空白,并可以和一些大数据技术很好地共存。然而,将Hudi与一些相关系统进行对比,来了解Hudi如何适应当前的大数据生态系统,并知晓这些系统在设计中做的不同权衡仍将非常有用。
ApacheHudi
2021/04/13
8740
通用数据湖仓一体架构正当时
这篇博文中提出的建议并不新鲜。事实上许多组织已经投入了数年时间和昂贵的数据工程团队的工作,以慢慢构建这种架构的某个版本。我知道这一点,因为我以前在Uber和LinkedIn做过这样的工程师。我还与数百个组织合作,在开源社区中构建它并朝着类似的目标迈进。
ApacheHudi
2024/01/17
3540
通用数据湖仓一体架构正当时
基于 Flink+Iceberg 构建企业级实时数据湖
Apache Flink 是大数据领域非常流行的流批统一的计算引擎,数据湖是顺应云时代发展潮流的新型技术架构。那么当 Apache Flink 遇见数据湖时,会碰撞出什么样的火花呢?本次分享主要包括以下核心内容:
Spark学习技巧
2021/03/05
2.4K0
基于 Flink+Iceberg 构建企业级实时数据湖
数据湖VS数据仓库?湖仓一体了解一下
导读:随着近几年数据湖概念的兴起,业界对于数据仓库和数据湖的对比甚至争论就一直不断。有人说数据湖是下一代大数据平台,各大云厂商也在纷纷的提出自己的数据湖解决方案,一些云数仓产品也增加了和数据湖联动的特性。
Spark学习技巧
2021/03/11
3.2K0
数据湖VS数据仓库?湖仓一体了解一下
推荐阅读
相关推荐
计算引擎之下,存储之上 - 数据湖初探
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档