Databricks说的Lakehouse是什么?

在过去的几年里,Lakehouse作为一种新的数据管理范式,已独立出现在Databricks的许多用户和应用案例中。在这篇文章中,我们将阐述这种新范式以及它相对于之前方案的优势。
数据仓库在决策支持和商业智能应用方面有着悠久的历史。自20世纪80年代末问世以来,数据仓库技术一直在持续不断的发展,并且MPP体系架构使系统能够处理更大的数据量。尽管数据仓库非常适合处理结构化数据,但是对于很多现代企业,对非结构化数据、半结构化数据以及具有高多样性、高速度、高容量特性的数据处理也往往是必须的,数据仓库并不适用于此类场景的处理,并且成本方面也不是最具效益的。
随着很多公司开始从很多不同的数据源收集大量数据,架构师开始构想通过一个单一的系统来容纳不同分析产品和工作负载的数据。大约十年前,很多公司开始构建数据湖(存储各种格式原始数据的仓库)。虽然数据湖适合存储数据,但缺少一些关键功能(如不支持事务、无法提高数据质量、缺乏一致性/隔离性)导致几乎不可能融合处理数据的追加和读取、批和流处理任务。由于这些原因,数据湖之前的许多承诺没有兑现,并且在许多情况下还会丧失数据仓库原本的很多优势。
很多公司对各类数据应用包括SQL分析、实时监控、数据科学和机器学习的灵活性、高性能系统的需求并未减少。AI的大部分最新进展是有可用于更好处理非结构化数据(如text、images、video、audio)的模型,但这些恰恰是数据仓库未针对优化的数据类型。一种常见的解决方案是使用融合了数据湖、多个数据仓库以及其他的如流、时间序列、图和图像数据库的系统。但是维护这一整套系统是非常复杂的(维护成本相对较高),此外,数据专业人员通常需要跨系统进行数据的移动或复制,这又会导致一定的延迟。

什么是Lakehouse?
Lakehouse是一种结合了数据湖和数据仓库优势的新范式,解决了数据湖的局限性。Lakehouse使用新的系统设计:直接在用于数据湖的低成本存储上实现与数据仓库中类似的数据结构和数据管理功能。如果你现在需要重新设计数据仓库,现在有了廉价且高可靠(以对象存储的格式)的存储可用,不妨考虑使用Lakehouse。
Lakehouse有如下关键特性:
- 事务支持
- 企业内部许多数据管道通常会并发读写数据。对ACID事务的支持确保了多方并发读写数据时的一致性问题
- Schema enforcement and governance
- Lakehouse应该有一种方式可以支持模式执行和演进、支持DW schema的范式(如星星或雪花模型),能够对数据完整性进行推理,并且具有健壮的治理和审计机制
- BI支持
- Lakehouse可以直接在源数据上使用BI工具。这样可以提高数据新鲜度、减少延迟,并且降低了在数据池和数据仓库中操作两个数据副本的成本
- 存储与计算分离
- 在实践中,这意味着存储和计算使用单独的集群,因此这些系统能够扩展到支持更大的用户并发和数据量。一些现代数仓也具有此属性
- 开放性
- 使用的存储格式是开放式和标准化的(如parquet),并且为各类工具和引擎,包括机器学习和Python/R库,提供API,以便它们可以直接有效地访问数据
- 支持从非结构化数据到结构化数据的多种数据类型
- Lakehouse可用于存储、优化、分析和访问许多数据应用所需的包括image、video、audio、text以及半结构化数据
- 支持各种工作负载
包括数据科学、机器学习以及SQL和分析。可能需要多种工具来支持这些工作负载,但它们底层都依赖同一数据存储库
- 端到端流
实时报表是许多企业中的标准应用。对流的支持消除了需要构建单独系统来专门用于服务实时数据应用的需求。
作为企业级的系统,除了要求具有以上特性外,还需要其他额外的功能特性。比如安全和访问控制工具是基本要求。特别是考虑到最近的隐私法规,数据治理功能变得至关重要(包括审计、保留和血缘关系)。对于数据发现工具,例如数据catalog和数据使用metrics也是需要的。
通过使用Lakehouse,这些企业功能特性只需要在一个系统中就能达到实现、测试和管理的目的。
早期示例
Databricks平台具有Lakehouse的特性。
微软的Azure Synapse Analytics服务与Azure Databricks集成,可实现类似Lakehouse模式。其他托管服务(例如BigQuery和Redshift Spectrum)具有上面列出的一些LakeHouse功能特性,但它们是主要针对BI和其他SQL应用。对于想要构建和实现自己系统的公司,可参考适合构建Lakehouse的开源文件格式(Delta Lake,Apache Iceberg,Apache Hudi)。
将数据湖和数据仓库合并至一个系统可以避免数据团队不必要的跨多个系统进行数据的访问,从而提高效率。对于大多数企业数据仓库来说,这些早期的Lakehouse中的SQL支持和与BI工具的集成级别通常已经能够满足需求。虽然可以使用物化视图和存储过程,但用户可能需要使用其他与传统数据仓库中的机制不同的机制。后者对于"lift and shift scenarios"(要求系统实现与旧的商业数据仓库几乎相同的语义)尤为重要。
Lakehouse对其他类型数据应用的支持又如何呢?Lakehouse的用户可以使用各种标准工具(Spark,Python,R,机器学习库)来处理像数据科学和机器学习等非BI工作负载。数据探索和精化是许多分析和数据科学应用的标准。Delta Lake的设计目的是让用户逐步提高Lakehouse中数据质量,直到数据可以使用为止(关于Delta Lake,建议阅读:
https://databricks.com/blog/2020/02/24/introducing-databricks-ingest-easy-data-ingestion-into-delta-lake.html)。
虽然分布式文件系统可以用于存储层,但对象存储在Lakehouse中更为常见。对象存储提供低成本、高可用的存储,在大规模并发读取方面表现出色,这是现代数据仓库的基本要求。
从BI到AI
Lakehouse是一种新的数据管理范式,它从根本上简化了企业数据基础设施,并且有望在机器学习即将颠覆每个行业的时代加速创新。过去,公司产品或决策过程中涉及的大多数数据都是来自操作系统的结构化数据,而如今,许多产品以计算机视觉和语音模型、文本挖掘等形式将AI融入其中。为什么要用Lakehouse而不是数据湖来进行AI?Lakehouse提供了数据版本控制、治理、安全性和ACID属性,即使是非结构化数据也需要这些属性。
当前Lakehouse降低了成本,但其性能仍可能落后于拥有多年投资和实际部署的专业系统(如数据仓库)。用户可能更喜欢某些工具(BI工具、IDEs, notebooks),因此Lakehouse还需要改进其用户体验和与流行工具的连接,以便更具吸引力。随着技术的不断发展和成熟,这些问题将得到解决。随着时间的推移,Lakehouse将缩小这些差距,同时保留更简单、更具成本效益和更能为多种数据应用服务的核心特性。
本文参译于:
https://databricks.com/blog/2020/01/30/what-is-a-data-lakehouse.html —— by Ben Lorica, Michael Armbrust, Ali Ghodsi, Reynold Xin and Matei Zaharia Posted in Company Blog | January 30, 2020
关注微信公众号:大数据学习与分享,获取更对技术干货
Databricks说的Lakehouse是什么?的更多相关文章
- 什么是LakeHouse?
1. 引入 在Databricks的过去几年中,我们看到了一种新的数据管理范式,该范式出现在许多客户和案例中:LakeHouse.在这篇文章中,我们将描述这种新范式及其相对于先前方案的优势. 数据仓库 ...
- Hive实现自增序列及常见的Hive元数据问题处理
Hive实现自增序列 在利用数据仓库进行数据处理时,通常有这样一个业务场景,为一个Hive表新增一列自增字段(比如事实表和维度表之间的"代理主键").虽然Hive不像RDBMS如m ...
- 对话Apache Hudi VP, 洞悉数据湖的过去现在和未来
Apache Hudi是一个开源数据湖管理平台,用于简化增量数据处理和数据管道开发,该平台可以有效地管理业务需求,例如数据生命周期,并提高数据质量.Hudi的一些常见用例是记录级的插入.更新和删除.简 ...
- Lakehouse: 统一数据仓库和高级分析的新一代开放平台
1. 摘要 数仓架构在未来一段时间内会逐渐消亡,会被一种新的Lakehouse架构取代,该架构主要有如下特性 基于开放的数据格式,如Parquet: 机器学习和数据科学将被作为头等公民支持: 提供卓越 ...
- 使用Apache Pulsar + Hudi构建Lakehouse方案了解下?
1. 动机 Lakehouse最早由Databricks公司提出,其可作为低成本.直接访问云存储并提供传统DBMS管系统性能和ACID事务.版本.审计.索引.缓存.查询优化的数据管理系统,Lakeho ...
- 基于 Apache Hudi 和DBT 构建开放的Lakehouse
本博客的重点展示如何利用增量数据处理和执行字段级更新来构建一个开放式 Lakehouse. 我们很高兴地宣布,用户现在可以使用 Apache Hudi + dbt 来构建开放Lakehouse. 在深 ...
- Databricks缓存提升Spark性能--为什么NVMe固态硬盘能够提升10倍缓存性能(原创)
我们兴奋的宣布Databricks缓存的通用可用性,作为统一分析平台一部分的 Databricks 运行时特性,它可以将Spark工作负载的扫描速度提升10倍,并且这种改变无需任何代码修改. 1.在本 ...
- 转载:Databricks孟祥瑞:ALS 在 Spark MLlib 中的实现
Databricks孟祥瑞:ALS 在 Spark MLlib 中的实现 发表于2015-05-07 21:58| 10255次阅读| 来源<程序员>电子刊| 9 条评论| 作者孟祥瑞 大 ...
- 新挖个坑,准备学习一下databricks的spark博客
挖坑 https://databricks.com/blog 一.spark3.0特性(Introducing Apache Spark 3.0) 1.通过通过自适应查询执行,动态分区修剪和其他优化使 ...
随机推荐
- Git命令diff格式详解
diff是Unix系统的一个很重要的工具程序. 它用来比较两个文本文件的差异,是代码版本管理的基石之一.你在命令行下,输入: $ diff <变动前的文件> <变动后的文件> ...
- 1-JAVA类、接口、抽象、多态
类中全部成员变量用priviate修饰,用get获取,set设值 对于boolean类型的值,getter方法也一定要写成isXXX 的形式,而setXXX类型不变 this关键字的作用 当方法的局部 ...
- MeteoInfoLab脚本示例:读取文本文件绘制散度图
MeteoInfoLab中读取文本文件数据的函数是asciiread,获取文本文件行.列数的函数是numasciirow和numasciicol,和NCL中函数名一致,但都是小写字母.本例中的示例数据 ...
- composer 阿里云加速 转
阿里云 Composer 全量镜像 本镜像与 Packagist 官方实时同步,推荐使用最新的 Composer 版本. 最新版本: 1.10.8 下载地址: https://mirrors.aliy ...
- postgresql 导出数据库与数据表
单表导出 pg_dump --host 127.0.0.1 --port 5432 --username "postgres" --role "postgres" ...
- 因果推理综述——《A Survey on Causal Inference》一文的总结和梳理
因果推理 本文档是对<A Survey on Causal Inference>一文的总结和梳理. 论文地址 简介 关联与因果 先有的鸡,还是先有的蛋?这里研究的是因果关系,因果关系与普通 ...
- 使用pyenv实现python多版本共存
背景 如果是Ubuntu等桌面系统,都已经更新到了Python较新的版本.但多数生产环境使用的还是红帽系统. CentOS7默认还是Python2.7,而开发环境如果是高版本Python就带来了问题. ...
- windows注册redis为服务,zookeeper为服务
windows注册redis为服务,zkserver为服务 1.redis部分 通过redis内置工具安装 进入redis安装目录 1.shift+鼠标右键打开菜单,点击"在此处打开命令窗口 ...
- org.apache.rocketmq.client.exception.MQClientException: No route info of this topic, TopicTest异常解决
使用RocketMQ发送消息抛出异常,异常如下: 原因: Broker 禁止自动创建Topic,且用户没有通过手动创建此Topic,或者broker 和 Nameserver网络不通: 解决方案: 1 ...
- 接口中字段的修饰符:public static final(默认不写) 接口中方法的修饰符:public abstract(默认不写)abstract只能修饰类和方法 不能修饰字段
abstract只能修饰类和方法 不能修饰字段