软件简介

Delta Lake 是一个存储层,为 Apache Spark 和大数据 workloads 提供 ACID 事务能力,其通过写和快照隔离之间的乐观并发控制(optimistic concurrency control),在写入数据期间提供一致性的读取,从而为构建在 HDFS 和云存储上的数据湖(data lakes)带来可靠性。

Delta Lake 还提供内置数据版本控制,以便轻松回滚。

主要功能特性

支持 ACID 事务

Delta Lake 在多并发写入之间提供 ACID 事务保证。每次写入都是一个事务,并且在事务日志中记录了写入的序列顺序。事务日志跟踪文件级别的写入并使用乐观并发控制,这非常适合数据湖,因为多次写入/修改相同的文件很少发生。在存在冲突的情况下,Delta Lake 会抛出并发修改异常以便用户能够处理它们并重试其作业。Delta Lake 还提供强大的可序列化隔离级别,允许工程师持续写入目录或表,并允许消费者继续从同一目录或表中读取。读者将看到阅读开始时存在的最新快照。

模式管理(Schema management)

Delta Lake 自动验证正在被写的 DataFrame 模式是否与表的模式兼容。表中存在但不在 DataFrame 中的列设置为 null。如果 DataFrame 有表中不存在的列,则此操作会引发异常。Delta Lake 具有显式添加新列的 DDL 以及自动更新模式的能力。

可扩展元数据处理

Delta Lake 将表或目录的元数据信息存储在事务日志中,而不是 Metastore 中。这允许 Delta Lake 在恒定时间内列出大型目录中的文件,同时在读取数据时非常高效。

数据版本

Delta Lake 允许用户读取表或目录之前的快照。当文件被修改文件时,Delta Lake 会创建较新版本的文件并保留旧版本的文件。当用户想要读取旧版本的表或目录时,他们可以在 Apache Spark 的读取 API 中提供时间戳或版本号,Delta Lake 根据事务日志中的信息构建该时间戳或版本的完整快照。这允许用户重现之前的数据,并在需要时将表还原为旧版本的数据。

统一流和批处理 Sink

除批量写入外,Delta Lake 还可用作 Apache Spark structured streaming 的高效流式 sink。结合 ACID 事务和可扩展的元数据处理,高效的流式 sink 现在可以实现大量近实时分析用例,而无需同时维护复杂的流式传输和批处理管道。

数据存储格式采用开源的

Delta Lake 中的所有数据都是使用 Apache Parquet 格式存储,使 Delta Lake 能够利用 Parquet 原生的高效压缩和编码方案。

记录更新和删除

这个功能马上可以使用。Delta Lake 将支持 merge, update 和 delete 等 DML 命令。这使得数据工程师可以轻松地在数据湖中插入/更新和删除记录。 由于 Delta Lake 以文件级粒度跟踪和修改数据,因此它比读取和覆盖整个分区或表更有效。

数据异常处理

Delta Lake 还将支持新的 API 来设置表或目录的数据异常。工程师能够设置一个布尔条件并调整报警阈值以处理数据异常。当 Apache Spark 作业写入表或目录时,Delta Lake 将自动验证记录,当数据存在异常时,它将根据提供的设置来处理记录。

100% 兼容 Apache Spark API

这点非常重要。开发人员可以将 Delta Lake 与他们现有的数据管道一起使用,仅需要做一些细微的修改。比如我们之前将处理结果保存成 Parquet 文件,如果想使用 Delta Lake 仅仅需要做如下修改:

参考:过往记忆大数据

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (3)

加载中
集成到spark中,跟平常一样使用,少许改动
05/27 09:09
回复
举报
同问
2019/10/08 16:37
回复
举报
有人来科普下么
2019/04/28 10:53
回复
举报
更多评论
发表于AI & 大数据专区
2019/10/19 08:15

Delta Lake 进入 Linux 基金会

近日,数据湖(data lakes)数据治理项目 Delta Lake 进入 Linux 基金会,基金会表示将与 Delta Lake 共建数据湖开放标准。 Delta Lake 是一个存储层,为 Apache Spark 和大数据 workloads 提供 ACID 事务能力,其通过写和快照隔离之间的乐观并发控制(optimistic concurrency control),在写入数据期间提供一致性的读取,从而为构建在 HDFS 和云存储上的数据湖带来可靠性。 Linux 基金会介绍,当前每个组织都希望通过数据科学...

2
11
发表于AI & 大数据专区
2019/08/04 07:21

Delta Lake 0.3.0 发布,大型数据集上的 DML

Delta Lake 是一个存储层,为 Apache Spark 和大数据 workloads 提供 ACID 事务能力。Delta Lake 0.3.0 发布,支持多个语句,以便于更新和删除DeltaLake 表中的数据,具体如下: 从表中删除数据 可以从 DeltaLake 表中删除相匹配的数据,例如,要删除 2017 年之前所有事件,可以运行以下命令: Scala import io.delta.tables._ val deltaTable = DeltaTable.forPath(spark, pathToEventsTable) deltaTable.delete("date...

0
6
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
2020/10/19 20:51

Dive into Delta Lake | Delta Lake 尝鲜

点击上方蓝色字体,选择“设为星标” 回复”资源“获取更多资源 大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 大数据真好玩 点击右侧关注,大数据真好玩! Delta Lake 是一个存储层,为 Apache Spark 和大数据 workloads 提供 ACID 事务能力,其通过写和快照隔离之间的乐观并发控制(optimistic concurrency control),在写入数据期间提供一致性的读取,从而为构建在 HDFS 和云存储上的数据湖(data lakes)带来...

0
0
2019/11/18 18:41

delta-lake 系列(二)-delta lake

#delta lake 简介 当我们的主流架构模型依托HATP的时候,我们的数据来源因为hadoop的存在而变得更加旷阔,例如在我们公司,目前的数据源有kafka、aws kinesis、 第三方数据api、aws s3文件、elasticsearch 各种数据、服务日志文件、前端snowplow数据买点、系统运维数据、数据metrics等,随着数据源的越来越多,我们同时也会面临行业内大家同时都会面对的一些问题: 1. 数据湖的读写是不可靠的。我们的数据经常会出现脏写脏读等情...

0
0
2020/04/21 19:52

Delta Lake - 走进 Databricks

今天笔者带大家走进 Databricks,基于 Databricks Cloud 社区版本进行实验,并在 Databricks Notebook 中对 Delta Lake 商业版本进行实战操作。 Databricks 版图 关于 Databricks 的故事,使用过 Apache Spark 的读者应该都比较了解,这里略作补充。 Databricks 是 Apache Spark 的商业化公司,致力于提供基于 Spark 的云服务,用于数据集成和数据管道等服务。 我们通过上面的一张图便可初步知其貌: Databricks 提供统一的数据...

0
0
2020/08/31 20:38

数据工程师眼中的 Delta lake(Delta by example)

SPARK+AI SUMMIT 2020中文精华版线上峰会带领大家一起回顾2020年的SPARK又产生了怎样的最佳实践,技术上取得了哪些突破,以及周边的生态发展。本文中Databricks开源组技术主管范文臣从数据工程师的角度出发向大家介绍Delta Lake。以下是视频内容精华整理。 原视频链接:https://developer.aliyun.com/live/43189?spm=a2c6h.12873639.0.0.4eca1a518KlgJ5 活动链接:SPARK中文峰会议题(三)|听听砖厂和领英工程师说的吧 一、Del...

0
0
2020/07/24 10:49

数据工程师眼中的 Delta lake(Delta by example)

SPARK+AI SUMMIT 2020中文精华版线上峰会带领大家一起回顾2020年的SPARK又产生了怎样的最佳实践,技术上取得了哪些突破,以及周边的生态发展。本文中Databricks开源组技术主管范文臣从数据工程师的角度出发向大家介绍Delta Lake。以下是视频内容精华整理。 原视频链接:https://developer.aliyun.com/live/43189?spm=a2c6h.12873639.0.0.4eca1a518KlgJ5 活动链接:SPARK中文峰会议题(三)|听听砖厂和领英工程师说的吧 一、Del...

0
0
2019/11/19 11:20

delta-lake 系列— delta对比hudi

hudi原是uber开发的hoodie项目,贡献给apache后,改名为hudi,从表面功能上来看看,于delata相比,两者都作为一个数据存储层来处理出现的数据湖的各种问题,比如准实时数据更新等。下面我们具体来对比一下两者的一些区别 功能及设计| hudi |delta| :---:|:-----:|:-----: 设计出发点| 解决upsert问题,不支持数据版本,无法支持并发读写,不存在锁机制| 解决upsert问题,数据版本回滚,提供乐观锁机制,支持数据并发读写 设计策...

0
0
01/26 10:42

delta lake数据湖建设

新时期下传统的数据仓库已经逐渐被数据湖等技术替代了,很多企业跟不上趟。 数据湖实现技术尤其以databricks公司的delta lake为翘楚。delta lake本身只是一套api的函数,定义了数据的存储方式而已,但是和hadoop、spark结合起来,就产生了巨大的威力。 数据要解决两个方面的问题:一是存储;二是定义。 delta lake两者都支持,将存储和定义都保存在文件中,统一起来了。 delta lake处理数据也非常简单,规划好存储的hdfs路径,定...

0
0
2020/04/07 15:56

【译】Delta Lake 0.5.0介绍

编译:刘佳毅,花名佳易,阿里巴巴计算平台事业部EMR团队开发工程师,目前从事大数据安全相关方面工作。 最近,Delta Lake发布了0.5.0版本,该版本加入了对Presto和Athena的支持,以及提升了操作的并发性,本文将对Delta Lake 0.5.0版本的变化进行一个简单的介绍。 Delta Lake 0.5.0发布的几个最重要的特性如下: 通过使用Manifest文件能够,支持其他数据处理引擎,现在能够使用Scala、Java、Python和SQL的API生成Manifest文件,...

0
0
发表了博客
2019/12/26 14:18

Delta Lake基础操作和原理

[TOC] #Delta Lake ##特性 支持ACID事务 可扩展的元数据处理 统一的流、批处理API接口 更新、删除数据,实时读写(读是读当前的最新快照) 数据版本控制,根据需要查看历史数据快照,可回滚数据 自动处理schema变化,可修改表结构 ##maven依赖 <dependency> <groupId>io.delta</groupId> <artifactId>delta-core_2.11</artifactId> <version>0.5.0</version> </dependency> ##使用aws s3文件系统快速启动 spark-shell ...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
3 评论
75 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部