2 个不稳定版本
| 新版本 0.2.0 | 2024 年 8 月 14 日 | 
|---|---|
| 0.1.0 | 2024 年 6 月 24 日 | 
#6 in #delta-lake
在 deltalake 中使用
2MB
 39K  SLoC
Delta Lake 的本地 Rust 库,具有对 Python 的绑定
Python 文档 · Rust 文档 · 报告错误 · 请求功能 · 路线图
Delta Lake 项目旨在通过提供面向开发人员和集成人员的本地低级 API 以及一个高级操作 API,使尽可能多的用户和项目能够释放 Delta Lake 的力量,该高级操作 API 可让您轻松查询、检查和操作 Delta Lake。
| 源代码 | 下载 | 安装命令 | 文档 | 
|---|---|---|---|
| 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 crate 加载相同的表格
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-顺序 | 将类似数据放在同一文件中 | ||
| 合并 | 将目标 Delta 表与源数据合并 | ||
| 文件系统检查 | 从表中删除损坏的文件 | 
协议支持级别
| 写入器版本 | 要求 | 状态 | 
|---|---|---|
| 版本 2 | 仅追加表 | |
| 版本 2 | 列不变性 | |
| 版本 3 | 强制执行 delta.checkpoint.writeStatsAsJson | |
| 版本 3 | 强制执行 delta.checkpoint.writeStatsAsStruct | |
| 版本 3 | CHECK 约束 | |
| 版本 4 | 更改数据馈送 | |
| 版本 4 | 生成列 | |
| 版本 5 | 列映射 | |
| 版本 6 | 标识列 | |
| 版本 7 | 表功能 | 
| 读取器版本 | 要求 | 状态 | 
|---|---|---|
| 版本 2 | 列映射 | |
| 版本 3 | 表功能(需要读取器 V7) | 
依赖关系
~38–52MB
~1M SLoC