3个稳定版本

1.0.2 2023年7月5日
1.0.1 2023年5月24日
1.0.0 2023年2月28日

#8 in #客户端构建器

Download history 26/week @ 2024-04-03

1,713 个月下载量
用于 csdb

Apache-2.0

93KB
2K SLoC

CeresDB Rust客户端

License Crates.io

简介

CeresDB的Rust客户端。

CeresDB是一个高性能、分布式、无模式的云原生时序数据库,能够处理时序和数据分析工作负载。

支持功能

  • 查询
  • 写入

贡献

欢迎任何贡献!

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

许可证

遵循Apache License 2.0

社区和支持


lib.rs:

此crate提供CeresDB的友好用户客户端。

使用此crate,您可以访问独立CeresDB或CeresDB集群,并操作其中的数据。客户端与CeresDB服务器之间的底层通信基于gRPC,协议定义在ceresdbproto中。

选择模式

客户端提供两种访问ModeProxyDirect

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

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

用法

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

示例

以下是一个示例,说明客户端如何在CeresDB中创建表格。


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 ceresdb (
    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!["ceresdb".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);

依赖项

约19-30MB
约425K SLoC