#proton #streaming #sql-database #sql #data-processing #timeplus

proton_client

Timeplus Proton的客户端,一个流式SQL引擎

2个版本

0.1.1 2024年2月14日
0.1.0 2024年2月12日

#1249数据库接口

Apache-2.0

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