Timeplus-proton流處理器調研

概念

在這里插入圖片描述

Timeplus是一個流處理器。它提供強大的端到端功能,利用開源流引擎Proton來幫助數據團隊快速直觀地處理流數據和歷史數據,可供各種規模和行業的組織使用。它使數據工程師和平臺工程師能夠使用 SQL 釋放流數據價值。

Timeplus 控制臺可以輕松連接到不同的數據源(例如 Apache Kafka、Confluence Cloud、Redpanda、NATS、Web Socket/SSE、CSV 文件上傳等)、通過 SQL 查詢探索流模式、發送實時見解和向其他系統或個人發出警報,并創建儀表板和可視化。

  • 關于Timeplus 與 proton的關系
    Proton是Timeplus開源的核心系統。 Timeplus Cloud是云端的Proton,支持多租戶,外加 Web UI,dashboard, alert,血緣圖,和一些Proton不支持的數據源(通過額外組建)。
    對于 On-prem(私有化)部署,官方提供了Timeplus Enterprise,功能和 Timeplus Cloud 相似。

  • Timeplus 與Clickhouse的關系
    Timeplus的Proton就是基于ClickHouse開發的或者說內置ClickHouse(就是一個 proton 進程),去掉一些不需要的ClickHouse 的功能和函數,加入流計算能力和一個流存儲。
    event數據先進入這個 streaming storage,實現small batch write,然后再自動轉批寫到 OLAP 存儲。
    必須明確的是Timeplus的Proton與現有Clickhouse集群沒關系,timeplus需要依賴自己內部Proton(改造的clickhouse)提供計算能力,而不能依賴現有的clickhouse提供的計算能力,但支持讀寫遠程的clickhouse集群。

  • Timeplus兩種運行方式

    1. 最簡單就是 All In One,用 Timeplus 自己做歷史存儲,也做流存儲,自己做流計算,也自己做歷史計算
    2. 當你有數據在 ClickHouse 時,也可以把 Timeplus 當 Flink等流處理框架用,從 Kafka 讀數據,寫到遠程的 ClickHouse
  • Timeplus語法
    Timeplus的SQL語法類似Clickhouse語法,支持ClickHouse協議,加上自己的一些tumble/hop/session方法在Flink等流程處理常見的函數。

  • 消息觸發機制
    Timeplus的觸發機制是micro-batch,而不是per event trigger,但可以做到毫秒級。
    如果是 global aggregation 默認是2秒發一次聚合數據,這個用戶可以自定義,最大可以支持到微秒。
    Timeplus的觸發策略還是比較全的,也是一大優勢。

  • Timeplus與RisingWave比較
    Timeplus與流處理數據庫RisingWave相比較,最大的優勢是Timeplus可以很好的支持隨機分析,因為其底層基于Clickhouse。

部署環境

獲取docker編排文件

wget https://github.com/timeplus-io/proton/blob/develop/examples/ecommerce/docker-compose.yml

啟動服務

docker compose up -d

在這里插入圖片描述

進入客戶端:

docker exec -it proton-demo-ecommerce-proton-1 proton-client

實例demo

ecommerce case

DROP STREAM default.frontend_events0;
CREATE STREAM frontend_events0(raw string) \
SETTINGS type='kafka', \brokers='redpanda:9092',\topic='owlshop-frontend-events';-- Create externarl stream to read data from Kafka/Redpanda
CREATE EXTERNAL STREAM frontend_events(raw string)
SETTINGS type='kafka', brokers='redpanda:9092',topic='owlshop-frontend-events';-- Scan incoming events
select * from frontend_events;-- Get live count
select count() from frontend_events;-- Filter events by JSON attributes
select _tp_time, raw:ipAddress, raw:requestedUrl from frontend_events where raw:method='POST';-- Show a live ASCII bar chart
select raw:method, count() as cnt, bar(cnt, 0, 40,5) as bar from frontend_events group by raw:method order by cnt desc limit 5 by emit_version();

MATERIALIZED VIEW

CREATE MATERIALIZED VIEW IF NOT EXISTS mv01 \
AS select _tp_time, raw:ipAddress, raw:requestedUrl from frontend_events where raw:method='POST';--1. Streaming mode: SELECT * FROM materialized_view
SELECT * FROM mv01;--2.Historical mode: SELECT * FROM table(materialized_view)
SELECT * FROM table(mv01);--3.Historical + streaming mode: SELECT * FROM materialized_view WHERE _tp_time>='1970-01-01' Get all past results and as well as the future data.
SELECT * FROM mv01 WHERE _tp_time>='1970-01-01';--4.Pre-aggregation mode: SELECT * FROM table(materialized_view) where __tp_version in (SELECT max(__tp_version) as m from table(materialized_view)) This immediately returns the most recent query result. We will provide new syntax to simplify this.

監控case

數據按照預設的時間批次進行分組,例如:2024-01-01 08:00:00、2024-01-01 08-30:00,并實時統計每個批次內的數據計數。
當批次數據計數在指定的延遲時間內未達到預設數量時(例如,從2024-01-01 08:00:00延遲1小時,觸發時間為系統時間2024-01-01 09:00:00),會觸發警報。發布批量數據的指標包括批量時間、觸發報警時的計數數據量等

create stream s1(ts datetime64,cnt int32);
insert into s1(ts,cnt) values('2024-02-28 20:59:00',2);select * from s1 where ts < now()-1m \
emit last 5m on proctime;

關于Timeplus

github 倉庫

官方文檔

Timeplus知乎主頁

Slack

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/711494.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/711494.shtml
英文地址,請注明出處:http://en.pswp.cn/news/711494.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

K8S相關小技巧《一》

在實際使用Kubernetes的時候有一些常用的小技巧&#xff0c;在此分享給大家&#xff1a; 獲取用于拉取docker的密鑰的原本值&#xff0c;k8s docker registry pull secret decode&#xff1a; kubectl get secret/registry-pull-secret -n kube-iapply-qa -o json | jq .data…

女性三八節禮物攻略:她無法抗拒的五大禮物

隨著春風的溫柔拂面&#xff0c;我們即將迎來一年一度的三八國際婦女節。這個特別的日子&#xff0c;不僅是對女性貢獻的認可和慶祝&#xff0c;也是向我們生命中的女性表達感激和愛意的絕佳時機。在這個充滿溫馨和敬意的時刻&#xff0c;我們常常在思考&#xff0c;如何用一份…

信息學奧賽一本通1310:【例2.2】車廂重組

1310&#xff1a;【例2.2】車廂重組 時間限制: 1000 ms 內存限制: 65536 KB 提交數: 48051 通過數: 28919 【題目描述】 在一個舊式的火車站旁邊有一座橋&#xff0c;其橋面可以繞河中心的橋墩水平旋轉。一個車站的職工發現橋的長度最多能容納兩節車廂&#xff0c…

elementUI el-table中的對齊問題

用elementUI時&#xff0c;遇到了一個無法對齊的問題&#xff1a;代碼如下&#xff1a; <el-table :data"form.dataList" <el-table-column label"驗收結論" prop"checkResult" width"200"> <template slot-sco…

0005TS函數類型詳解

TypeScript 中的函數類型用于為函數定義參數類型和返回值類型。這提供了一個清晰的契約&#xff0c;指明函數應該如何被調用和期望返回什么類型的結果。以下是 TypeScript 中函數類型的一些基本用法和概念&#xff1a; 函數聲明 在 TypeScript 中&#xff0c;你可以為函數的參…

揭秘!Excel如何成為職場中的價值創造利器

文章目錄 一、Excel在生產力提升中的作用二、Excel在創造價值方面的應用案例三、Excel實用技巧分享四、Excel與其他工具的協同應用五、Excel學習的建議與展望《Excel函數與公式應用大全》亮點內容簡介作者簡介目錄 在當今信息爆炸的時代&#xff0c;數據處理和分析能力已成為職…

AI智能分析網關V4智慧商場方案,打造智慧化商業管理生態

AI智能視頻檢測技術在商場樓宇管理中的應用越來越廣泛。通過實時監控、自動識別異常事件和智能預警&#xff0c;這項技術為商場管理提供了更高效、更安全的保障。今天我們以TSINGSEE青犀視頻AI智能分析網關為例&#xff0c;給大家介紹一下AI視頻智能分析技術如何應用在商場樓宇…

搶單情況下的均衡分配機制

背景&#xff1a; 1、工單有多種類型。 2、客戶提交工單。 3、不同客服受理不同類型工單&#xff0c;受理工單類型存在交叉。 4、按照類型維度實現均衡分配。 方案&#xff1a; 1、為每種類型創建一個工單池&#xff0c;使用隊列&#xff0c;左進右出&#xff1b;客戶提交…

Android AIDL RemoteCallbackLIst

RemoteCallbackLIst 參考地址 RemoteCallbackList 是 Android SDK 中的一個類&#xff0c;用于幫助管理進程之間的回調。它專為進程間通信 (IPC) 場景而設計&#xff0c;在該場景中&#xff0c;應用程序的不同部分甚至不同的應用程序可能在不同的進程中運行。 以下是其關鍵功能…

將所有字母轉化為該字母后的第三個字母,即A->D,B->E

//編寫加密程序&#xff0c;規則&#xff1a;將所有字母轉化為該字母后的第三個字母&#xff0c;即A->D,B->E,C->F,…Y->B,Z->C //小寫字母同上&#xff0c;其他字符不做轉化。輸入&#xff1a;I love 007 輸出&#xff1a;L oryh 007 代碼&#xff1a; #inc…

GVA快速使用

1. clone 代碼&#xff0c; 使用goland打開Server目錄&#xff0c; 使用vsc打開前端web目錄&#xff0c;運行后端&#xff0c;前端 gin-vue-admin后臺管理系統 - 知乎 (zhihu.com) 2.了解端口配置 參考&#xff0c; 基于Go的后臺管理框架Gin-vue-admin_go vue admin-CSDN博客…

配置MMDetection的solov2攻略整理

目錄 一、MMDetection 特性 常見用法 二、ubuntu20.04配置solov2 三、Windows11配置solov2 一、MMDetection MMDetection是一個用于目標檢測的開源框架&#xff0c;由OpenMMLab開發和維護。它提供了豐富的預訓練模型和模塊&#xff0c;可以用于各種目標檢測任務&#xff…

kamacoder 11.共同祖先的C語言奇妙解法

11. 共同祖先 時間限制&#xff1a;1.000S 空間限制&#xff1a;32MB 題目描述 小明發現和小宇有共同祖先&#xff01;現在小明想知道小宇是他的長輩&#xff0c;晚輩&#xff0c;還是兄弟。 輸入描述 輸入包含多組測試數據。每組首先輸入一個整數N&#xff08;N<10&a…

redis的基本數據類型(一)

redis的基本數據類型 1、redis1.1、數據庫分類1.2、NoSQL分類1.3、redis簡介1.4、redis應用1.5、如何學習redis 2、redis的安裝2.1、Windows安裝2.2.1、客戶端redis管理工具 2.2、Linux安裝&#x1f525;2.2.1、redis核心文件2.2.2、啟動方式2.2.3、redis桌面客戶端1、redis命令…

定義類的成員比較函數,并在類的成員函數里面調用

定義一個自定義排序規則的成員函數&#xff0c;然后在類的成員函數中調用 文章目錄 1.聲明為static函數2.使用function3.使用匿名函數 1.聲明為static函數 #include <iostream> #include <algorithm> #include <list> class A { public:A(){std::list<i…

Python進階學習:Pickle模塊--dump()和load()的用法

Python進階學習&#xff1a;Pickle模塊–dump()和load()的用法 &#x1f308; 個人主頁&#xff1a;高斯小哥 &#x1f525; 高質量專欄&#xff1a;Matplotlib之旅&#xff1a;零基礎精通數據可視化、Python基礎【高質量合集】、PyTorch零基礎入門教程&#x1f448; 希望得到您…

MyBatis-Plus 框架中的自定義元對象處理器

目錄 一、代碼展示二、代碼解讀 一、代碼展示 package com.minster.yanapi.handler;import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component;import java.util…

JavaScript解構賦值--數組解構賦值與對象解構賦值

前言 解構賦值是JavaScript的一個強大特性&#xff0c;允許從數組或對象中提取數據&#xff0c;并賦值給定義的變量。 對象解構 直接根據屬性名來解構賦值&#xff1a; const person { name: 張三, age: 30 };const { name, age } person;console.log(name); console.lo…

動態路由使用

目錄 添加動態路由 添加單個路由 添加多個路由 指定路由添加的位置 導航守衛添加路由 刪除動態路由 添加動態路由 添加動態路由的方法有兩個&#xff1a;addRoutes&#xff08;添加多個路由&#xff09;和addRoute&#xff08;添加單個路由&#xff09;&#xff0c;但是a…

ASO 對App產品性能的影響

可發現性 擁有出色的App還不足以讓人們發現它&#xff0c;ASO技術通過提高搜索排名來增強App的可發現性。當用戶可以在搜索結果中輕松找到應用程序時&#xff0c;那么下載和成功的潛力就會飆升。 設定期望 實施有效的應用商店優化不僅可以為潛在用戶建立正確的期望&#xf…