9个版本

0.0.11 2022年11月29日
0.0.10 2022年11月21日
0.0.9 2022年10月13日
0.0.8 2022年8月16日
0.0.1 2022年3月30日

#2 in #substrait

Apache-2.0

1MB
22K SLoC

包含(WOFF字体,155KB) src/export/html/fa-solid-900.woff2

Substrait查询计划验证器

此crate实现了对Substrait查询计划的验证器。

[dependencies]
substrait-validator = "0.0.11"

YAML文件解析

验证Substrait计划的一个复杂性是解析YAML扩展文件。默认情况下,crate只支持file://... URLs,但通常,YAML文件会存储在远程位置。为了更容易处理这个问题,您可以将curl作为可选依赖项启用

[dependencies]
substrait-validator = { version = "0.0.11", features = ["curl"] }

这添加了substrait_validator::Config::add_curl_yaml_uri_resolver()方法,它将使用libcurl解析文件,从而支持所有常见协议(http、https、ftp等)。缺点是curl crate依赖于系统库。


lib.rs:

Crate用于验证Substrait

使用方法

使用模式大致如下。

  1. 构建一个Config结构来配置验证器。如果您不需要配置任何内容,也可以使用std::default::Default,但您可能至少想调用[Config::add_curl_uri_resolver()](如果您正在使用curl功能)。
  2. 使用[parse()]解析传入的substrait.Plan消息。这创建了一个[ParseResult],包含与查询计划对应的树结构,该结构还包含验证器添加的诊断和其他注释。
  3. 您可以使用ParseResult::root自行遍历树,或者您可以使用与[ParseResult]相关联的方法来获取您需要的验证结果。

请注意,输入仅支持二进制 protobuf 序列化格式;JSON 格式不支持。这是使用 protobuf 反序列化的 crate(prost)的限制。如果您正在寻找支持更易读输入的库(或 CLI),请查看 Python 绑定。

依赖项

~15–27MB
~448K SLoC