Delta-Lake

The Redefine Team Lv5

Delta-Lake 简介

Delta Lake 是一个存储层, 提供ACID事务

spark-shell load Dela-lake

bin/spark-shell –packages io.delta:delta-core_2.12:0.1.0

spark-shell 可以通过–packages 的方式下载pkg, 并对其进行加载

1
2
val data = spark.range(0, 5)
data.write.format("delta").save("/tmp/delta-table")

上面的代码将数据写入/tmp/delta-table 目录

可以发现在此目录中生成了

可以看到生成的文件通过snappy 进行了压缩, snappy 是google开源的压缩解压算法,主要优点是压缩解压的效率

文件格式为parquet, parquet 是一种列存储格式

并通过crc 的方式进行校验

可以通过在save是指定mode 的方式来对数据进行更新, overwrite mode 为更新模式

当不指定时,默认为新创建,当创建的目录已经存在,会抛出already exists 异常

读取时,可以通过option 的方式指定version , 所以存储系统本身是版本化的

也可以通过stream 的方式对其进行写入和读取

参考链接

delta
docs

  • 标题: Delta-Lake
  • 作者: The Redefine Team
  • 创建于 : 2019-05-08 10:29:53
  • 更新于 : 2023-05-23 18:52:03
  • 链接: https://redefine.ohevan.com/2019/05/08/Delta-Lake/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论