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

湖仓一体(Lakehouse)是什么?

前言

本文隶属于专栏《大数据理论体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和参考文献请见大数据理论体系


WHAT

湖仓一体(Lakehouse)是一种新的大数据存储架构,结合了数据仓库和数据湖的最佳功能。

关于数据仓库请参考我的这篇博客——数据仓库是什么?

关于数据湖请参考我的这篇博客——什么是数据湖?为什么需要数据湖?

湖仓一体为你的所有数据(结构化、半结构化和非结构化)提供单一的存储库,同时可以实现机器学习、商业智能(BI)和实时计算等功能。

关于 BI 请参考我的这篇博客——什么是商业智能(BI)?


优缺点

湖仓一体的优点

湖仓一体架构将数据仓库的数据结构和管理功能数据湖的低成本存储和灵活性相结合。

这种实现的好处是巨大的,包括:

  • 减少数据冗余:湖仓一体通过提供单一通用的数据存储平台来满足所有业务数据需求来减少数据重复。由于数据仓库和数据湖的优势,大多数公司选择混合解决方案。然而,这种方法可能导致数据重复,这可能代价高昂。
  • 成本效益:湖仓一体通过利用低成本的对象存储实现数据湖的高效益的存储功能。此外,湖仓一体通过提供单一的解决方案,消除了维护多个数据存储系统的成本和时间。
  • 事务的支持:在湖仓一体中,许多数据管道通常会同时读取和写入数据。对 ACID 事务的支持确保了多方同时读取或写入数据的一致性。
  • Schema 的实施和治理:湖仓一体支持 Schema 的实施和进化,支持数据仓库的模式架构,如星型模式/雪花模式。该系统有能力确保数据的完整性,因为其强大的治理和审计的机制。
  • 开放性:湖仓一体使用的存储格式是开放和标准化的,例如 Parquet,它们提供了一个API,因此各种工具和引擎,包括机器学习和 Python/R 库,可以有效地直接访问数据。
  • 存储与计算解耦:在实践中,这意味着存储和计算使用单独的集群,因此这些系统能够扩展到更多的并发用户和更大的数据大小。一些现代数据仓库也有这种属性。
  • 支持各种工作负载:包括数据科学、机器学习、SQL 和数据分析等。可能需要多个工具来支持所有这些工作负载,但它们都依赖于相同的数据存储库。
  • 端到端的流计算支持:实时报告是许多企业的常态。对流计算的支持消除了对专门为实时数据应用程序提供服务的单独系统的需求。

湖仓一体的缺点

湖仓一体的主要缺点是它仍然是一种相对较新且不成熟的技术。

因此,目前还不清楚它是否一定会符合上面的优点。

湖仓一体可能需要几年时间才能与成熟的大数据存储解决方案竞争。

但以现代创新的速度,很难预测新的数据存储解决方案最终是否会替代它。


数据仓库 VS 数据湖 VS 湖仓一体

在这里插入图片描述

数据仓库是最古老的大数据存储技术,在商业智能、报告和分析应用方面有着悠久的历史。然而,数据仓库很昂贵,难以应对流数据、多样化数据等非结构化数据。

数据湖的出现是为了在机器学习和数据科学工作负载的廉价存储中处理各种格式的原始数据。虽然数据湖与非结构化数据配合得很好,但它们缺乏数据仓库的 ACID 事务功能,因此很难确保数据的一致性和可靠性。

湖仓一体最新的数据存储架构,它结合了数据湖的成本效益和灵活性以及数据仓库的可靠性和一致性。

下表总结了数据仓库与数据湖与湖仓一体之间的差异。

差异点数据仓库数据湖湖仓一体
存储数据类型很好地处理结构化数据很好地处理半结构化和非结构化数据能够处理结构化、半结构化和非结构化数据
目的适用于数据分析和商业智能(BI)适用于机器学习(ML)和人工智能(AI)工作负载适用于数据分析和机器学习工作负载
费用存储既昂贵又耗时存储具有成本效益、快速性和灵活性存储具有成本效益、快速性和灵活性
ACID 合规性以符合ACID的方式记录数据,以确保最高水平的完整性非 ACID 合规性:更新和删除是复杂的操作符合 ACID,以确保多方同时读取或写入数据的一致性

湖仓一体仍然是一个不断发展的数据存储解决方案。

选择哪种大数据存储架构最终将取决于你正在处理的数据类型、数据源以及利益相关者将如何使用数据。

虽然湖仓一体结合了数据仓库和数据湖的所有好处,但我们不建议你将现有的数据存储技术交给湖仓一体。

相关文章:

  • 【测绘程序设计】Excel度(°)转换度分秒(° ‘ “)模板附代码超实用版
  • odoo 视图部分详解(四)
  • Java中对象的打印
  • STARK Low Degree Testing——FRI
  • 基于孤立森林的信用卡欺诈 Python 实战案例,最佳参数选择、可视化等
  • B/S 架构 与 C/S 架构
  • 【JAVAEE框架】Mybatis常用操作(CRUD)
  • 【PCB专题】如何在嘉立创8月1日起的新规则下免费打样
  • ElasticSearch--写入数据的流程(原理)
  • Java 下数据业务逻辑开发技术 JOOQ 和 SPL
  • 嵌入式系统多线程学习笔记
  • 【DaVinci Developer专题】-44-Software Component软件组件的Multiple Instantiation多次实例化
  • Docker 进阶指南(下)- 使用Docker Compose编排多个容器
  • 走进Prime Time系列 - 走进PT - 01
  • 天龙八部科举答题问题和答案(全4/8)
  • 【Leetcode】101. 对称二叉树
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • ERLANG 网工修炼笔记 ---- UDP
  • ES6之路之模块详解
  • iOS小技巧之UIImagePickerController实现头像选择
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • TCP拥塞控制
  • Vim Clutch | 面向脚踏板编程……
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 从零开始的无人驾驶 1
  • 回顾2016
  • 解析 Webpack中import、require、按需加载的执行过程
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 手机端车牌号码键盘的vue组件
  • 微服务核心架构梳理
  • 智能合约Solidity教程-事件和日志(一)
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • kubernetes资源对象--ingress
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • 如何用纯 CSS 创作一个货车 loader
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ###C语言程序设计-----C语言学习(3)#
  • #考研#计算机文化知识1(局域网及网络互联)
  • (1)SpringCloud 整合Python
  • (2020)Java后端开发----(面试题和笔试题)
  • (3)STL算法之搜索
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (汇总)os模块以及shutil模块对文件的操作
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (学习日记)2024.01.09
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决