在过去的几年里,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是什么?的更多相关文章

  1. 什么是LakeHouse?

    1. 引入 在Databricks的过去几年中,我们看到了一种新的数据管理范式,该范式出现在许多客户和案例中:LakeHouse.在这篇文章中,我们将描述这种新范式及其相对于先前方案的优势. 数据仓库 ...

  2. Hive实现自增序列及常见的Hive元数据问题处理

    Hive实现自增序列 在利用数据仓库进行数据处理时,通常有这样一个业务场景,为一个Hive表新增一列自增字段(比如事实表和维度表之间的"代理主键").虽然Hive不像RDBMS如m ...

  3. 对话Apache Hudi VP, 洞悉数据湖的过去现在和未来

    Apache Hudi是一个开源数据湖管理平台,用于简化增量数据处理和数据管道开发,该平台可以有效地管理业务需求,例如数据生命周期,并提高数据质量.Hudi的一些常见用例是记录级的插入.更新和删除.简 ...

  4. Lakehouse: 统一数据仓库和高级分析的新一代开放平台

    1. 摘要 数仓架构在未来一段时间内会逐渐消亡,会被一种新的Lakehouse架构取代,该架构主要有如下特性 基于开放的数据格式,如Parquet: 机器学习和数据科学将被作为头等公民支持: 提供卓越 ...

  5. 使用Apache Pulsar + Hudi构建Lakehouse方案了解下?

    1. 动机 Lakehouse最早由Databricks公司提出,其可作为低成本.直接访问云存储并提供传统DBMS管系统性能和ACID事务.版本.审计.索引.缓存.查询优化的数据管理系统,Lakeho ...

  6. 基于 Apache Hudi 和DBT 构建开放的Lakehouse

    本博客的重点展示如何利用增量数据处理和执行字段级更新来构建一个开放式 Lakehouse. 我们很高兴地宣布,用户现在可以使用 Apache Hudi + dbt 来构建开放Lakehouse. 在深 ...

  7. Databricks缓存提升Spark性能--为什么NVMe固态硬盘能够提升10倍缓存性能(原创)

    我们兴奋的宣布Databricks缓存的通用可用性,作为统一分析平台一部分的 Databricks 运行时特性,它可以将Spark工作负载的扫描速度提升10倍,并且这种改变无需任何代码修改. 1.在本 ...

  8. 转载:Databricks孟祥瑞:ALS 在 Spark MLlib 中的实现

    Databricks孟祥瑞:ALS 在 Spark MLlib 中的实现 发表于2015-05-07 21:58| 10255次阅读| 来源<程序员>电子刊| 9 条评论| 作者孟祥瑞 大 ...

  9. 新挖个坑,准备学习一下databricks的spark博客

    挖坑 https://databricks.com/blog 一.spark3.0特性(Introducing Apache Spark 3.0) 1.通过通过自适应查询执行,动态分区修剪和其他优化使 ...

随机推荐

  1. 第一个月多测师讲解__项目讲解以及注意事项(肖sir)

    一.目的讲解流程:(讲述业务时长10-15分钟为宜)1.自我介绍礼貌用语,姓名,籍贯,学校,个人技能,经验,表现,兴趣爱好等 ,1分钟 ,谢谢2.介绍项目的名字 ,项目的背景,(涉及什么架构)3.对项 ...

  2. Jmeter之接口依赖

    一.应用场景 1.现在有两个接口,一个是登录,一个查询,但查询接口必须要依赖登录接口的token,那么通过正则表达式提取器提取登录接口的响应结果 2.现在有两个接口,A接口返回列表数据,另一个查询接口 ...

  3. 第十章 nginx常用配置介绍

    一.虚拟主机 1.配置方式 #虚拟主机配置方式:1.基于多IP的方式2.基于多端口的方式3.基于多域名的方式 2.方式一:基于多IP的方式 1.第一个配置文件[root@web02 /etc/ngin ...

  4. MySQL备份和恢复[4]-xtrabackup备份工具

    xtrabackup工具介绍 Percona 公司 官网:www.percona.com percona-server InnoDB --> XtraDB Xtrabackup备份工具 perc ...

  5. Linux基础命令列表

    命令列表 A alias apt apt-get arp -n -s arping ab B bc basename bash -n -x bzip2 bunzip2 bzcat blkid brct ...

  6. django—中间件相关

    中间件 django的中间件是一个全局范围内处理django的请求和响应的框架级别的钩子. 作用:对于一个请求到达视图函数的前后进行处理 本质:中间件的本质是一个类,类中定义了特定的方法,Django ...

  7. mysql 改变表结构 alter

    总结:alter添加栏位时,只需记住添加新栏位为第一列,用first;添加其他用,after 前一个栏位字段,如下例 1.需求:将新的栏位添加为第二列 添加前: 添加后: 参考:http://www. ...

  8. Maven1详解

    Maven详解(一)------ Maven概述   目录 1.引言 2.常规项目开发存在的问题 3.什么是 Maven ? 4.Maven 的历史 5.Maven 的目标 6.Maven 的理念 回 ...

  9. jenkins自动拉取git分支构建项目

    一,创建jenkins项目 new item ->freestyle project, 自定义一个项目名称 二,配置项目 1,Source Code Management 选择 git,输入gi ...

  10. Vue 学习第二部

    目录 通过axios实现数据请求 json json数据的语法 js中是提供的接送数据转换方法 ajax 数据接口 ajax的使用 同源策略 ajax跨域(跨源)方案之cors 组件化开发 组件[co ...