3 Star 0 Fork 1

src-openEuler/delta

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

delta

介绍

Delta Lake 是 DataBricks 公司开源的、用于构建湖仓架构的存储框架。能够支持 Spark,Flink,Hive,PrestoDB,Trino 等查询/计算引擎。作为一个开放格式的存储层,它在提供了批流一体的同时,为湖仓架构提供可靠的,安全的,高性能的保证。 Delta Lake 关键特性:

  • ACID事务:通过不同等级的隔离策略,Delta Lake 支持多个 pipeline 的并发读写;
  • 数据版本管理:Delta Lake 通过 Snapshot 等来管理、审计数据及元数据的版本,并进而支持 time-travel 的方式查询历史版本数据或回溯到历史版本;
  • 开源文件格式:Delta Lake 通过 parquet 格式来存储数据,以此来实现高性能的压缩等特性;
  • 批流一体:Delta Lake 支持数据的批量和流式读写;
  • 元数据演化:Delta Lake 允许用户合并 schema 或重写 schema,以适应不同时期数据结构的变更;
  • 丰富的DML:Delta Lake 支持 Upsert,Delete 及 Merge 来适应不同场景下用户的使用需求,比如 CDC 场景;

软件架构

软件架构说明 Delta Lake的设计

  • 文件组织 在Delta Lake中,一个表包含了实际数据和表操作的日志,并且一个表的所有文件都存储在同一个“目录”下,当然OSS实际上采用扁平的文件组织形式,这里的“目录”指的是目录格式的文件名前缀。Delta Lake以Parquet的格式来存储表中的实际数据,使用GUID作为文件名,并且支持分区,属于同一个分区的Parquet文件会采用相同的子目录作为文件名前缀。
  • 元数据管理 Delta Lake基于日志来实现元数据管理。由于日志中记录了所有表操作,因此基于checkpoint及其之后的Json文件,我们可以构建表在当前时刻的快照。
  • 事务 Delta Lake并发控制策略实现了文件粒度的MVCC。读事务直接基于事务开始时表的快照读取表中的数据文件。写事务首先基于事务开始时表的快照进行out-of-place update,然后尝试根据递增的字典序创建下一个Json日志文件,创建成功则将表操作记录在日志文件中,并且成功提交,否则提交失败并重做。提交成功的写事务产生的新数据文件被记录在日志中,对接下来的事务可见,删除的数据文件只是在日志中标记删除,不会影响正在执行的读事务。提交失败的写事务首先会更新它持有的表的快照,然后检查它的写入与之前的提交是否有冲突,没有冲突则直接继续尝试提交,否则需要重做写入。上述策略非常适合低并发写或分片写入的场景,因为这些场景下写入冲突较少,重做代价低。
  • 性能优化 Delta Lake支持使用OPTIMIZE命令合并小文件。数据文件的大小会对访问OSS时能达到的实际throughput产生影响,较大的文件有利于实现较高的throughput,但由于写入需要重写整个数据文件,较大的文件会产生较大的写入开销,因此需要调整文件大小来权衡读写性能,而在Delta Lake中合并小文件的目标大小默认是1GB。 ​Delta Lake使用传统的基于min/max统计信息的方法实现data skipping,不同的是Delta Lake并没有将min/max统计信息保存在Parquet的footer中,而是将其记录在日志中,这样可以避免在做pruning时以较高的latency低效地读取每一个Parquet的footer。

安装教程

  1. xxxx
  2. xxxx
  3. xxxx

使用说明

  1. xxxx
  2. xxxx
  3. xxxx

参与贡献

  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request

特技

  1. 使用 Readme_XXX.md 来支持不同的语言,例如 Readme_en.md, Readme_zh.md
  2. Gitee 官方博客 blog.gitee.com
  3. 你可以 https://gitee.com/explore 这个地址来了解 Gitee 上的优秀开源项目
  4. GVP 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
  5. Gitee 官方提供的使用手册 https://gitee.com/help
  6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 https://gitee.com/gitee-stars/

空文件

简介

Delta Lake is an open-source storage framework that enables building a Lakehouse architecture with compute engines including Spark, PrestoDB, Flink, Trino, and Hive and APIs for Scala, Java, Rust, Ruby, and Python. 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/src-openeuler/delta.git
git@gitee.com:src-openeuler/delta.git
src-openeuler
delta
delta
master

搜索帮助