数据仓库、数据湖、湖仓一体,究竟有什么区别?( 十 )

 
4、市场地位
 

  • Databricks的全球客户数量达5000多家,且全球有超过40%的财富500强企业都在使用Databricks的云平台 。
  • 2021年8月20日,H轮,15亿美元,估值380亿美元 。
7.2不同产品介绍 
7.2.1Delta Lake
Delta Lake 是一个统一的数据管理系统,为云上数据湖带来数据可靠性和快速分析 。Delta Lake 运行在现有数据湖之上,并且与 Apache Spark 的 API 完全兼容 。使用Delta Lake,您可以加快高质量数据导入数据湖的速度,团队也可以在云服务上快速使用这些数据,安全且可扩展 。
 
  • ACID 事务性:Delta Lake 在多个写操作之间提供 ACID 事务性 。每一次写操作都是一个事务操作,事务日志(Transaction Log)中记录的写操作都有一个顺序序列 。事务日志(Transaction Log)跟踪了文件级别的写操作,并使用了乐观锁进行并发控制,这非常适用于数据湖,因为尝试修改相同文件的多次写操作的情况并不经常发生 。当发生冲突时,Delta Lake 会抛出一个并发修改异常,抛给供用户处理并重试其作业 。Delta Lake 还提供了最高级别的隔离(可序列化隔离),允许工程师不断地向目录或表写入数据,而使用者不断地从同一目录或表读取数据,读取数据时会看到数据的最新快照 。
  • Schema 管理(Schema management):Delta Lake 会自动验证正在写入的DataFrame 的 Schema 是否与表的 Schema 兼容 。若表中存在但 DataFrame 中不存在的列则会被设置为 null 。如果 DataFrame 中有额外的列不在表中,那么该操作将会抛出异常 。Delta Lake 具有 DDL(数据定义语言)显式添加新列的功能,并且能够自动更新 Schema 。
  • 可伸缩的元数据(Metadata)处理:Delta Lake 将表或目录的元数据信息存储在事务日志(Transaction Log)中,而不是元数据 Metastore 中 。这使得 Delta Lake够在固定时间内列出大目录中的文件,并且在读取数据时效率很高 。
  • 数据版本控制和时间旅行(Time Travel):Delta Lake 允许用户读取表或目录的历史版本快照 。当文件在写入过程中被修改时,Delta Lake 会创建文件的新的版本并保留旧版本 。当用户想要读取表或目录的较旧版本时,他们可以向 Apach Spark的 read API 提供时间戳或版本号,Delta Lake 根据事务日志(Transaction Log)中的信息来构建该时间戳或版本的完整快照 。这非常方便用户来复现实验和报告,如果需要,还可以将表还原为旧版本 。
  • 统一批流一体:除了批处理写入之外,Delta Lake 还可以作为 Apache Spark 的结构化流的高效流接收器(Streaming Sink) 。与 ACID 事务和可伸缩元数据处理相结合,高效的流接收器(Streaming Sink)支持大量近实时的分析用例,而无需维护复杂的流和批处理管道 。
  • 记录更新和删除:Delta Lake 将支持合并、更新和删除的 DML(数据管理语言)命令 。这使得工程师可以轻松地在数据湖中插入和删除记录,并简化他们的变更数据捕获和 GDPR(一般数据保护条例)用例 。由于 Delta Lake 在文件级粒度上进行跟踪和修改数据,因此它比读取和覆盖整个分区或表要高效得多 。
 
7.2.2产品架构
数据仓库、数据湖、湖仓一体,究竟有什么区别?

文章插图
 
数据仓库、数据湖、湖仓一体,究竟有什么区别?

文章插图
 
数据仓库、数据湖、湖仓一体,究竟有什么区别?

文章插图
 
数据仓库、数据湖、湖仓一体,究竟有什么区别?

文章插图
 
数据仓库、数据湖、湖仓一体,究竟有什么区别?

文章插图
 
1、Databricks 产品支持执行 Spark、Python、Scala、JAVA 和 R 等语言,甚至支持 SQL,适用于不同类型的用户 。
2、强大的数据版本控制:Databricks 原生支持 DELTA 格式 。Delta Lake 是完全兼容 ACID 的,这就解决了 Spark 的 不兼容 ACID 这一主要问题 。


推荐阅读