Carm's Blog

虽暗将曦

Delta Lake深入分析(6)

Delta Lake 删除操作源码分析.md

Delta Lake Update操作 Scala语法示例 import io.delta.tables._ val deltaTable = DeltaTable.forPath(spark, "/data/events/") deltaTable.updateExpr( "eventType = 'clck'", // predicat...

Delta Lake深入分析(5)

Delta Lake Delete操作源码分析

Delta Lake Delete操作 Scala语法示例 import io.delta.tables._ val deltaTable = DeltaTable.forPath(spark, "/data/events/") deltaTable.delete("date = '2017-01-01' AND id < 14") // predicate usi...

Delta Lake深入分析(4)

Delta Lake write操作+源码分析

Delta Lake write操作 用法说明 Delta lake写数据方式与Spark写parquet方式基本一样,仅需要将format格式由parquet改为delta。 Delta写数据分为两种模式,一种为append,另一种为overwrite。 使用append模式可以自动向已存在的表中添加数据,使用如下: df.write.format("delta").m...

Delta Lake深入分析(3)

Delta Lake事务源码分析

Delta事物日志源码分析 之前,我们讲了Delta Lake事务实现原理,可以点击这里查看。接下来,我们具体看看Delta Lake源码实现,本次使用当前最新版本Delta Lake 0.4进行分析。 Delta Lake事务入口类为:OptimisticTransaction,事务的提交主要由commit方法完成,接下来我们主要看下该方法是如何实现的。 def commit(acti...

Delta Lake深入分析(2)

Delta Lake事务是如何实现的?

Delta事物日志分析 事务日志是理解Delta Lake的关键,因为它贯穿很多重要的功能,包括ACID事务、元数据的伸缩性和时间旅行等,所以接下来我们将详细分析下事务日志。 什么是事务日志? Delta Lake事务日志(也称为DeltaLog)是自Delta Lake表创建以来已执行过的每个事务的有序记录。 事务日志应用在哪里? 1. 单事实源 Delta Lake建立在Apac...