3个稳定版本
1.0.2 | 2023年7月5日 |
---|---|
1.0.1 | 2023年5月24日 |
1.0.0 | 2023年2月28日 |
#8 in #客户端构建器
1,713 个月下载量
用于 csdb
93KB
2K SLoC
CeresDB Rust客户端
简介
CeresDB的Rust客户端。
CeresDB是一个高性能、分布式、无模式的云原生时序数据库,能够处理时序和数据分析工作负载。
支持功能
- 查询
- 写入
贡献
欢迎任何贡献!
阅读我们的贡献指南并做出你的第一次贡献!
许可证
社区和支持
lib.rs
:
此crate提供CeresDB的友好用户客户端。
使用此crate,您可以访问独立CeresDB或CeresDB集群,并操作其中的数据。客户端与CeresDB服务器之间的底层通信基于gRPC,协议定义在ceresdbproto中。
选择模式
客户端提供两种访问Mode
,Proxy
和Direct
- 在
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