2 个稳定版本

2.0.0 2024年7月11日
1.0.2 2023年11月29日

#1461数据库接口

Download history 343/week @ 2024-05-01 408/week @ 2024-05-08 379/week @ 2024-05-15 460/week @ 2024-05-22 381/week @ 2024-05-29 284/week @ 2024-06-05 318/week @ 2024-06-12 231/week @ 2024-06-19 200/week @ 2024-06-26 198/week @ 2024-07-03 310/week @ 2024-07-10 221/week @ 2024-07-17 184/week @ 2024-07-24 207/week @ 2024-07-31 234/week @ 2024-08-07 212/week @ 2024-08-14

863 每月下载量

Apache-2.0

115KB
2K SLoC

Apache HoraeDB (孵化中) Rust 客户端

License Crates.io

简介

Rust 对 Apache HoraeDB (孵化中) 的客户端。

[!重要] Apache HoraeDB (孵化中) 是 Apache 软件基金会 (ASF) 孵化中的项目,由 Apache 孵化器 PMC 赞助。

请阅读 免责声明 和对“孵化中”的完整解释 "incubating"

支持功能

  • 查询
  • 写入

贡献

欢迎任何贡献!

阅读我们的 贡献指南 并做出你的第一次贡献!

许可证

Apache 许可证 2.0 下。


lib.rs:

这个包提供了一个用户友好的 [HoraeDB](https://github.com/HoraeDB /horaedb) 客户端。

使用这个包,你可以访问独立的 HoraeDB 或 HoraeDB 集群,并操作其中的数据。客户端与 HoraeDB 服务器之间的底层通信基于 gRPC,协议在 horaedbproto 中定义。

选择模式

客户端提供了两种访问 Mode 模式,ProxyDirect

  • 通过 Direct 模式访问 HoraeDB 集群时,请求将直接发送到由路由信息确定的正确 HoraeDB 实例。
  • 通过 Proxy 模式访问 HoraeDB 时,请求仅发送到任意一个 HoraeDB 实例,该实例负责转发请求。

如果客户端由于网络分区无法直接访问 HoraeDB 服务器,则 Proxy 模式是唯一的选择。否则,建议使用 Direct 模式以获得更好的性能。

用法

构建客户端,然后通过编写和查询来操作 HoraeDB。

示例

以下是一个使用客户端在 HoraeDB 中创建表的示例。


let client = Builder::new("127.0.0.1:8831".to_string(), Mode::Direct).build();
let rpc_ctx = RpcContext::default().database("public".to_string());

let create_table_sql = r#"CREATE TABLE IF NOT EXISTS horaedb (
    str_tag string TAG,
    int_tag int32 TAG,
    var_tag varbinary TAG,
    str_field string,
    int_field int32,
    bin_field varbinary,
    t timestamp NOT NULL,
    TIMESTAMP KEY(t)) ENGINE=Analytic with
    (enable_ttl='false')"#;

let req = SqlQueryRequest {
    tables: vec!["horaedb".to_string()],
    sql: create_table_sql.to_string(),
};
let resp = client
    .sql_query(&rpc_ctx, &req)
    .await
    .expect("Should succeed to create table");

println!("Create table result:{:?}", resp);

依赖关系

~21–31MB
~452K SLoC