Hi, everyone.
Im a new rust user and trying to get data from my ClickHouse database. I want to get last value from column 'changes' using function 'get_last_value()' in rust:
use tokio_tungstenite::{connect_async, tungstenite::Message};
use serde::{Deserialize, Serialize};
use clickhouse::{error::Result, Client, Row};
const CLICKHOUSE_URL: &str = "http://localhost:8123";
#[derive(Serialize, Deserialize, Row)]
struct EventData {
time: i64,
temper: f64,
changes: f64,
}
async fn get_last_value(client: &Client) -> Result<()> {
let mut cursor = client
.query("SELECT changes FROM All_Data.Temperature ORDER BY time DESC LIMIT 1")
.fetch::()
.await?;
let row = cursor.next().await?; // ??????
let resault_value = row?.changes; // ??????
println!("Resault value: {}", resault_value); // ??????
Ok(resault_value)
}
#[tokio::main]
async fn main() -> Result<()> {
let client = Client::default()
.with_url(CLICKHOUSE_URL)
.with_database("All_Data");
let last_value = get_last_value(&client).await?;
println!("Last value: {}", last_value);
Ok(())
}
Database is working fine and i can execute my query from other apps. The problem, is that i dont know how in rust to proccess needed data in 'cursor', after i use my query. If anybody has expirience working with ClickHouse and can help me, I really appriciate you.