2个不稳定版本

新版本 0.2.0 2024年8月14日
0.1.0 2024年2月6日

数据库接口中排名第249


用于deltalake

Apache-2.0

2MB
39K 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,以及一个高级操作API,让用户能够轻松查询、检查和操作Delta Lake,以尽可能多地释放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-排序 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)

依赖关系

~74MB
~1.5M SLoC