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 在 开发工具
每月306,011 次下载
在 10 个 仓库中使用 (直接使用8个)
2MB
40K SLoC
Delta Lake 的本地 Rust 库,具有 Python 绑定
Python 文档 · Rust 文档 · 报告错误 · 请求功能 · 路线图
Delta Lake 项目旨在通过提供针对开发人员和集成人员的本地低级 API 以及允许您轻松查询、检查和操作 Delta Lake 的高级操作 API,以尽可能多地解锁 Deltalake 的功能,为尽可能多的用户和项目服务。
源代码 | 下载 | 安装命令 | 文档 |
---|---|---|---|
PyPi | pip install deltalake |
文档 | |
Crates.io | 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
参与其中
我们鼓励您与我们联系,并承诺提供欢迎的社区。我们致力于此。
- 加入我们的Slack工作空间
- 报告问题
- 想要贡献?请查看我们的适合新手的任务。
集成
与delta-rs互操作的库和框架 - 按字母顺序排列。
功能
以下部分概述了一些核心功能,例如支持的存储后端和可以对表执行的操作。Delta协议中概述的功能的实施状态也跟踪。
云集成
存储 | Rust | Python | 评论 |
---|---|---|---|
本地 | |||
S3 - AWS | 并发写入需要锁定 | ||
S3 - MinIO | 并发写入需要锁定 | ||
S3 - R2 | 使用AmazonS3ConfigKey::CopyIfNotExists 时不需要锁定 |
||
Azure Blob | |||
Azure ADLS Gen2 | |||
Microsoft OneLake | |||
Google Cloud Storage | |||
HDFS |
支持的操作
操作 | Rust | Python | 描述 |
---|---|---|---|
创建 | 创建新表 | ||
读取 | 从表中读取数据 | ||
真空 | 删除未使用的文件和日志条目 | ||
删除 - 分区 | 删除表分区 | ||
删除 - 谓词 | 根据谓词删除数据 | ||
优化 - 压缩 | 统一数据文件的大小 | ||
优化 - Z-order | 将相似数据放入同一文件 | ||
合并 | 将目标Delta表与源数据合并 | ||
FS检查 | 从表中删除损坏的文件 |
协议支持级别
写入器版本 | 要求 | 状态 |
---|---|---|
版本2 | 仅追加表 | |
版本2 | 列不变性 | |
版本3 | 强制执行delta.checkpoint.writeStatsAsJson |
|
版本3 | 强制执行delta.checkpoint.writeStatsAsStruct |
|
版本3 | CHECK约束 | |
版本4 | 更改数据源 | |
版本4 | 生成列 | |
版本5 | 列映射 | |
版本6 | 标识列 | |
版本7 | 表功能 |
读取器版本 | 要求 | 状态 |
---|---|---|
版本2 | 列映射 | |
版本3 | 表功能(需要读取器V7) |
依赖关系
~36–61MB
~1M SLoC