2 个稳定版本
2.0.0 | 2024年7月11日 |
---|---|
1.0.2 | 2023年11月29日 |
#1461 在 数据库接口
863 每月下载量
115KB
2K SLoC
Apache HoraeDB (孵化中) Rust 客户端
简介
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
模式,Proxy
和 Direct
- 通过
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