1 个不稳定版本

0.1.0 2023年1月14日

#2914数据库接口

Apache-2.0

36KB
753

experimental main

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 服务器 并创建自己的配置文件,根据 配置文件格式 连接到此服务器。
    • 从您的数据提供商下载配置文件。

快速开始

  • 克隆仓库
  • bearerTokenendpoint 的值在 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