1 个不稳定版本
0.1.0 | 2023年1月14日 |
---|
#2914 在 数据库接口
36KB
753 行
Rust 的 Delta Sharing 客户端库
请注意,此项目目前处于试验阶段。
这是一个简单的 Rust 库,用于访问通过 Delta Sharing 发布的数据。底层,它使用 Delta Sharing 提供的 HTTP API。
Delta Sharing 是一个安全数据共享的开放协议,使得与使用不同计算平台的其他组织共享数据变得简单。
库具有异步客户端(delta-sharing::Client
),以及用于较小操作的阻塞客户端(delta-sharing::blocking::Client
)。
功能
- 检索 Delta Sharing 信息(共享、模式、表和文件)
- 使用 Polars 查询共享表数据。
get_dataframe
下载表的 parquet 文件(并在本地缓存以供后续查询)并返回一个懒抽象(逻辑计划)覆盖一个急切 DataFrame。此懒抽象提供了方法,直到请求输出(通过collect
)之前,可以逐步修改该逻辑计划。
先决条件
-
Rust 已安装,例如,如此处所述
-
Delta Sharing 已配置,至少有一个共享表
此库使用 配置文件,它是包含用户凭据以访问 Delta Sharing 服务器(JSON 文件)。有几种方法可以开始
- 下载配置文件以访问我们托管的公开示例 Delta Sharing 服务器 此处。您可以使用此样本数据尝试连接器。
- 启动自己的 Delta Sharing 服务器 并创建自己的配置文件,根据 配置文件格式 连接到此服务器。
- 从您的数据提供商下载配置文件。
快速开始
- 克隆仓库
- 将
bearerToken
和endpoint
的值在config.json
中设置为与您的 Delta Sharing 信息匹配。 - 运行库中包含的简单示例,该示例使用异步客户端:
cargo run --example async
。当执行时,它将获取并显示它找到的第一个数据共享表中的所有数据。 - 要查看使用客户端阻塞版本执行相同操作的示例,请尝试:
cargo run --example blocking --features=blocking
。
在自己的项目中使用
将 delta-sharing
添加到您的 Cargo.toml
开发
- 运行所有测试:
cargo test --features blocking
(或RUST_LOG=debug cargo test --features blocking
用于额外的故障排除) - 仅运行异步客户端测试:
cargo test
- 风格检查:
cargo fmt -- --check
依赖项
~40–55MB
~1M SLoC