2个版本
0.1.1 | 2024年2月14日 |
---|---|
0.1.0 | 2024年2月12日 |
#1249 在 数据库接口
34KB
399 行
Rust客户端Timeplus Proton
Rust客户端用于Timeplus Proton。
Proton是一个流式SQL引擎,是Apache Flink的一个快速轻量级替代品,🚀由ClickHouse提供动力。它使开发者能够解决来自Apache Kafka、Redpanda等更多来源的流数据处理、路由和分析挑战,并将聚合数据发送到下游系统。Proton是Timeplus的核心引擎,Timeplus是一个云原生流分析平台。
客户端的初始版本(0.1.0)由Marvin Hansen编写。感谢贡献。
此客户端使用https://crates.io/crates/clickhouse作为依赖项。
安装Proton
请将Proton安装为独立服务器或通过Docker。请确保端口8123或3218对外开放,以便pront-rust-client连接和运行SQL。
- 8123是运行DDL和查询的历史模式端口
- 3218是默认情况下运行DDL和查询的流模式端口。您仍然可以使用
table(..)
函数将流包装起来,以便在历史模式下查询它们。
了解更多信息
作为一个单一的二进制文件
在Linux或Mac上,您可以通过curl https://install.timeplus.com | sh
安装它
在Mac上,您还可以通过brew install proton
安装它
获取proton
二进制文件后,您可以通过proton server start
启动Proton服务器
在另一个终端中,通过proton client
连接到服务器(注意:如果您遇到“连接被拒绝”错误,请使用:proton client --host 127.0.0.1)
作为一个Docker容器
docker run -d --pull always --name proton -p 8123:8123 -p 8463:8463 ghcr.io/timeplus-io/proton:latest
Proton 会自动启动,端口为 8123 和 8463 已暴露。打开容器的终端,并运行 proton client
有关详细用法和更多信息,请查看文档:https://docs.timeplus.com/proton
安装 ProtonClient
在终端中运行以将 proton 客户端添加到您的项目中
cargo add proton_client
或通过在 Cargo.toml 中添加以下内容
[dependencies]
proton_client = { version = "0.1.0"}
使用 ProtonClient
use proton_client::prelude::{ProtonClient, Result};
const FN_NAME: &str = "[prepare]:";
#[tokio::main]
async fn main() -> Result<()> {
println!("{}Start", FN_NAME);
println!("{}Build client", FN_NAME);
let client = ProtonClient::new("https://127.0.0.1:8123");
println!("{}Create stream if not exists", FN_NAME);
create_stream(&client)
.await
.expect("[main]: Failed to create Stream");
println!("{}Stop", FN_NAME);
Ok(())
}
pub async fn create_stream(client: &ProtonClient) -> Result<()> {
client
.execute_query("CREATE STREAM IF NOT EXISTS test_stream(no uint32, name string) ORDER BY no")
.await
}
运行示例
make example
这显示了
-----------------------------------------
Select the number of the example to run:
-----------------------------------------
1) prepare: Prepare Proton for the examples: create table & load data
2) query: Query Proton with sample queries
3) remove: Cleanup Proton and delete streams
4) quit: Exit
-----------------------------------------
Make sure Proton is running
-----------------------------------------
请选择要运行的示例编号。此外,首先运行准备示例以准备 Proton 进行查询示例。请参阅所有示例的代码 在此处。
接下来是什么?
要查看更多使用 Proton 的示例,请查看 Proton 存储库中的 examples 文件夹。
请注意,默认情况下,SQL 查询处于流模式。有关 SQL 语法的信息,请参阅 Proton 文档。
文档
您可以在 docs.timeplus.com 找到 Proton 的完整文档,以及 Timeplus(云和 BYOC)平台的文档。
贡献
我们欢迎您的贡献!
需要帮助?
加入我们的 Timeplus 社区 Slack,与 Timeplus 工程师和其他 Proton 用户建立联系。
有关提交错误、建议改进或请求新功能,请参阅 GitHub 上的 公开问题。
许可
Proton Rust 客户端使用 Apache License 2.0。有关详细信息,请参阅 LICENSE。
依赖项
~10–23MB
~313K SLoC