#delta-lake #delta #deltalake #datalake

deltalake-core

Rust语言的Delta Lake本地实现

7个版本

新版本 0.19.0 2024年8月14日
0.18.2 2024年8月7日
0.18.1 2024年6月24日
0.17.3 2024年5月1日
0.17.0 2024年2月6日

数据库接口 中排名第 1398

Download history 1090/week @ 2024-04-27 693/week @ 2024-05-04 677/week @ 2024-05-11 1581/week @ 2024-05-18 7598/week @ 2024-05-25 63616/week @ 2024-06-01 80983/week @ 2024-06-08 76249/week @ 2024-06-15 113350/week @ 2024-06-22 102598/week @ 2024-06-29 86599/week @ 2024-07-06 80917/week @ 2024-07-13 79477/week @ 2024-07-20 86927/week @ 2024-07-27 75268/week @ 2024-08-03 51118/week @ 2024-08-10

每月下载量 307,719
13 个crate使用 (直接使用7个)

Apache-2.0

2MB
39K SLoC

Deltalake

crates.io api_doc

Rust语言的Delta Lake本地实现

用法

API

let table = deltalake::open_table("./tests/data/simple_table").await.unwrap();
println!("{}", table.get_files());

CLI

首先进入 delta-inspect 目录,然后运行以下命令。请注意,测试数据位于 rust 目录,而不是 delta-inspect

 cargo run --bin delta-inspect files ../rust/tests/data/delta-0.2.0
part-00000-cb6b150b-30b8-4662-ad28-ff32ddab96d2-c000.snappy.parquet
part-00000-7c2deba3-1994-4fb8-bc07-d46c948aa415-c000.snappy.parquet
part-00001-c373a5bd-85f0-4758-815e-7eb62007a15c-c000.snappy.parquet
 cargo run --bin delta-inspect info ./tests/data/delta-0.2.0
DeltaTable(./tests/data/delta-0.2.0)
        version: 3
        metadata: GUID=22ef18ba-191c-4c36-a606-3dad5cdf3830, name=None, description=None, partitionColumns=[], createdTime=1564524294376, configuration={}
        min_version: read=1, write=2
        files count: 3

示例

示例文件夹展示了如何使用Rust API操作Delta表。

首先进入 rust 目录,然后可以使用 cargo run --example 命令运行示例。例如

cargo run --example read_delta_table

可选的cargo包功能

  • azure - 启用Azure存储后端,以便与Azure Data Lake Storage Gen2账户中的Delta表一起工作。
  • datafusion - 启用Delta表的 datafusion::datasource::TableProvider 特性实现,允许使用 DataFusion 进行查询。
  • datafusion-ext - 已弃用:datafusion 特性的别名
  • gcs - 启用Google存储后端,以便与Google Cloud Storage中的Delta表一起工作。
  • json - 启用 parquet crate的JSON功能,以实现更好的JSON互操作性。

开发

要运行本地机器上的s3集成测试,我们使用docker-compose启动AWS本地堆栈。在 delta-rs 仓库的根目录下运行 docker-compose up 来启动测试环境。

依赖关系

~36–59MB
~1M SLoC