28 个版本 (17 个破坏性版本)

0.19.0 2024年8月14日
0.18.1 2024年6月24日
0.17.1 2024年3月7日
0.16.5 2023年11月15日
0.1.1 2020年10月30日

#149开发工具

Download history 2353/week @ 2024-04-28 1792/week @ 2024-05-05 1669/week @ 2024-05-12 2266/week @ 2024-05-19 10145/week @ 2024-05-26 67644/week @ 2024-06-02 79410/week @ 2024-06-09 82987/week @ 2024-06-16 115794/week @ 2024-06-23 100292/week @ 2024-06-30 83289/week @ 2024-07-07 79821/week @ 2024-07-14 81653/week @ 2024-07-21 88952/week @ 2024-07-28 73533/week @ 2024-08-04 59648/week @ 2024-08-11

每月306,011 次下载
10 仓库中使用 (直接使用8个)

Apache-2.0

2MB
40K SLoC

delta-rs logo

Delta Lake 的本地 Rust 库,具有 Python 绑定
Python 文档 · Rust 文档 · 报告错误 · 请求功能 · 路线图

Deltalake Crate Deltalake Deltalake #delta-rs in the Delta Lake Slack workspace

Delta Lake 是一个在现有数据湖之上运行的开源存储格式。Delta Lake 与 Apache Spark 等处理引擎兼容,并提供诸如 ACID 事务保证、模式强制执行和可扩展数据处理等优势。

Delta Lake 项目旨在通过提供针对开发人员和集成人员的本地低级 API 以及允许您轻松查询、检查和操作 Delta Lake 的高级操作 API,以尽可能多地解锁 Deltalake 的功能,为尽可能多的用户和项目服务。

源代码 下载 安装命令 文档
PyPi Downloads pip install deltalake 文档
Crates.io Downloads cargoadd deltalake 文档

目录

快速入门

deltalake 库旨在采用数据处理库中的模式,因此入门应该看起来很熟悉。

from deltalake import DeltaTable, write_deltalake
import pandas as pd

# write some data into a delta table
df = pd.DataFrame({"id": [1, 2], "value": ["foo", "boo"]})
write_deltalake("./data/delta", df)

# Load data from the delta table
dt = DeltaTable("./data/delta")
df2 = dt.to_pandas()

assert df.equals(df2)

您也可以使用核心 Rust 仓库加载相同的表

use deltalake::{open_table, DeltaTableError};

#[tokio::main]
async fn main() -> Result<(), DeltaTableError> {
    // open the table written in python
    let table = open_table("./data/delta").await?;

    // show all active files in the table
    let files: Vec<_> = table.get_file_uris()?.collect();
    println!("{:?}", files);

    Ok(())
}

您还可以在 DockerHub | Docker 仓库 上尝试 Delta Lake Docker

参与其中

我们鼓励您与我们联系,并承诺提供欢迎的社区。我们致力于此

集成

与delta-rs互操作的库和框架 - 按字母顺序排列。

功能

以下部分概述了一些核心功能,例如支持的存储后端和可以对表执行的操作。Delta协议中概述的功能的实施状态也跟踪

云集成

存储 Rust Python 评论
本地 done done
S3 - AWS done done 并发写入需要锁定
S3 - MinIO done done 并发写入需要锁定
S3 - R2 done done 使用AmazonS3ConfigKey::CopyIfNotExists时不需要锁定
Azure Blob done done
Azure ADLS Gen2 done done
Microsoft OneLake done done
Google Cloud Storage done done
HDFS done done

支持的操作

操作 Rust Python 描述
创建 done done 创建新表
读取 done done 从表中读取数据
真空 done done 删除未使用的文件和日志条目
删除 - 分区 done 删除表分区
删除 - 谓词 done done 根据谓词删除数据
优化 - 压缩 done done 统一数据文件的大小
优化 - Z-order done done 将相似数据放入同一文件
合并 done done 将目标Delta表与源数据合并
FS检查 done done 从表中删除损坏的文件

协议支持级别

写入器版本 要求 状态
版本2 仅追加表 done
版本2 列不变性 done
版本3 强制执行delta.checkpoint.writeStatsAsJson open
版本3 强制执行delta.checkpoint.writeStatsAsStruct open
版本3 CHECK约束 semi-done
版本4 更改数据源
版本4 生成列
版本5 列映射
版本6 标识列
版本7 表功能
读取器版本 要求 状态
版本2 列映射
版本3 表功能(需要读取器V7)

依赖关系

~36–61MB
~1M SLoC