当前位置: 首页 > news >正文

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

相关文章:

Timeplus-proton流处理器调研

概念 Timeplus是一个流处理器。它提供强大的端到端功能&#xff0c;利用开源流引擎Proton来帮助数据团队快速直观地处理流数据和历史数据&#xff0c;可供各种规模和行业的组织使用。它使数据工程师和平台工程师能够使用 SQL 释放流数据价值。 Timeplus 控制台可以轻松连接到不…...

H3C防火墙安全授权导入

一、防火墙授权概述 前面我们已经了解了一些防火墙的基本概念&#xff0c;有讲过防火墙除了一些基本功能&#xff0c;还有一些高级安全防护&#xff0c;但是这些功能需要另外独立授权&#xff0c;不影响基本使用。这里以H3C防火墙为例进行大概了解下。 正常情况下&#xff0c;防…...

使用 OpenCV 通过 SIFT 算法进行对象跟踪

本文介绍如何使用 SIFT 算法跟踪对象 在当今世界&#xff0c;当涉及到对象检测和跟踪时&#xff0c;深度学习模型是最常用的&#xff0c;但有时传统的计算机视觉技术也可能有效。在本文中&#xff0c;我将尝试使用 SIFT 算法创建一个对象跟踪器。 为什么人们会选择使用传统的计…...

SHELL 脚本: 导出NEO4j DUMP并上传SFTP

前提 开通sftp账号 安装expect 示例 NEO4J_HOME/path/to/neo4j # neo4j 安装目录 DUMP_PATH/data/dump # DUMP本地保存目录 DUMP_FILEneo4j_$(date %F).dump #导出文件名称 UPLOAD_DIR/path/to/stfp/dump/ #上传目录 $NEO4J_HOME/bin/neo4j-admin dump --databaseneo4j --t…...

Vue 封装一个函数,小球原始高度不固定,弹起比例不固定、计算谈几次后,高度低于1米

## 简介 本文将介绍如何使用Vue封装一个函数&#xff0c;计算小球弹跳的次数&#xff0c;直到高度低于1米。函数的参数包括小球的原始高度和弹起比例。通过代码案例演示了如何使用Vue进行封装和调用。 ## 函数封装 vue <template> <div> <label for&qu…...

外地人能申请天津公租房吗?2024天津积分落户租房积分怎么加?

相关推荐&#xff1a;在天津工作的外地人可以申请天津公共租赁住房吗&#xff1f; 外地人可以申请天津公共租赁住房吗&#xff1f; 2024年定居天津租房如何加分&#xff1f; 根据《天津居住证积分指标及积分表》的规定&#xff0c;在天津租房也可以参加积分结算&#xff0c;每…...

毕业设计——基于springboot的聊天系统设计与实现(服务端 + 客户端 + web端)

整个工程包含三个部分&#xff1a; 1、聊天服务器 聊天服务器的职责一句话解释&#xff1a;负责接收所有用户发送的消息&#xff0c;并将消息转发给目标用户。 聊天服务器没有任何界面&#xff0c;但是却是IM中最重要的角色&#xff0c;为表达敬意&#xff0c;必须要给它放个…...

公告栏功能:自动弹出提醒,重要通知不再错过

发布查询时&#xff0c;您是否遇到这样的困扰&#xff1a; 1、查询发布时间未到&#xff0c;学生进入查询主页后发现未发布任何查询&#xff0c;不断进行咨询。 2、有些重要事项需要进入查询主页就进行强提醒&#xff0c;确保人人可见&#xff0c;用户需要反馈“我知道了”才能…...

网络编程学习

思维导图 代码练习 TCP实现通信 服务器端代码 #include <myhead.h> #define SER_IP "192.168.152.135" #define SER_PORT 8910 int main(int argc, const char *argv[]) {//&#xff11;创建用于监听的套接字int sfd -1;sfd socket(AF_INET,SOCK_STREAM,0)…...

centos物理电脑安装过程(2024年1月)

开机时&#xff1a;CtrlAltDelete键重启电脑 重启开始时&#xff1a;按F11&#xff0c;桌面弹出蓝色框&#xff0c;选择第二个SSK SFD142 1.00&#xff0c;回车 选择install centos7安装 选择后弹出选择安装选项&#xff0c;选择语言 连接无线网络 安装设置&#xff0c;选择磁…...

Web自动化测试平台开发---Automated_platform

一、项目简介 历时一个假期&#xff0c;Automated_platform 第一版完工&#xff0c;是一款基于po模式的自动化测试平台,采用后端技术为DjangoceleryRabbitMQmysql 配置mysql数据库&#xff0c;进行数据迁移后&#xff0c;运行项目后&#xff0c;即可成功访问http://127.0.0.1:8…...

mybatis-plus: 多租户隔离机制

文章目录 一、TenantLineHandler1、介绍2、包含的方法 二、简单实例三、实践1、实现TenantLineHandler接口 一、TenantLineHandler 1、介绍 TenantLineHandler 是 Mybatis-Plus 中用于处理多租户的接口&#xff0c;用于实现多租户数据隔离的具体逻辑。通过实现这个接口&#…...

用Socks5代理游戏,绕过“网络海关”去探险

1. 出海大冒险的开始 在游戏世界&#xff0c;就像在现实生活中一样&#xff0c;有时我们需要越过海洋去探索未知的世界。但是&#xff0c;网络上也有一些“海关”&#xff0c;限制我们访问某些网站或游戏服务器。这就是我们今天要克服的挑战&#xff01; 2. Socks5代理&#xf…...

SpringBoot整合rabbitmq-直连队列,没有交换机(一)

说明&#xff1a;本文章只是springboot和rabbitmq的直连整合&#xff0c;只使用队列生产和消费消息&#xff0c;最简单整合&#xff01; 工程图&#xff1a; A.总体pom.xml <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://…...

CUDA C:查看GPU设备信息

相关阅读 CUDA Chttps://blog.csdn.net/weixin_45791458/category_12530616.html?spm1001.2014.3001.5482 了解自己设备的性能是很有必要的&#xff0c;为此CUDA 运行时(runtime)API给用户也提供了一些查询设备信息的函数&#xff0c;下面的函数用于查看GPU设备的一切信息。 …...

深度学习如何入门?——从“小白”到“大牛”的深度学习之旅

大家好&#xff0c;今天我要和大家分享的主题是“深度学习如何入门”。深度学习作为人工智能领域的重要分支&#xff0c;已经取得了许多令人瞩目的成果。然而&#xff0c;对于初学者来说&#xff0c;深度学习可能显得有些神秘和难以入手。那么&#xff0c;如何才能快速入门深度…...

编译 qsqlmysql.dll QMYSQL driver not loaded

Qt 连接MySQL数据库&#xff0c;没有匹配的qsqlmysql.dll, 需要我们跟进自己Mysql 以及QT版本自行编译的。异常如下图&#xff1a; 安装环境为 VS2019 Qt5.12.12&#xff08;msvc2017_64、以及源码&#xff09; 我的安装地址&#xff1a;D:\Qt\Qt5.12.12 Mysql 8.1.0 默认安…...

Android日历提醒增删改查事件、添加天数不对问题

Android日历提醒是非常好的提醒功能&#xff0c;笔者在做的过程中&#xff0c;遇到的一些问题&#xff0c;现整理出来&#xff0c;以供参考。 一、申请日历的读写权限 <uses-permission android:name"android.permission.WRITE_CALENDAR" /> <uses-permiss…...

【力扣hot100】刷题笔记Day15

前言 今天要刷的是图论&#xff0c;还没学过&#xff0c;先看看《代码随想录》这部分的基础 深搜DFS理论基础 深搜三部曲 确认递归函数、参数确认终止条件处理目前搜索节点出发的路径 代码框架 void dfs(参数) {if (终止条件) {存放结果;return;}for (选择&#xff1a;本节点…...

vue-显示数据

​ v-text和v-html专门用来展示数据, 其作用和插值表达式类似。v-text和v-html可以避免插值闪烁问题. ​ 当网速比较慢时, 使用{{}}来展示数据, 有可能会产生插值闪烁问题。 ​ 插值闪烁: 在数据未加载完成时&#xff0c;页面会显示出原始的{{}}, 过一会才会展示正常数据.语法…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端&#xff0c;它允许HTTP与Elasticsearch 集群通信&#xff0c;而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

今日科技热点速览

&#x1f525; 今日科技热点速览 &#x1f3ae; 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售&#xff0c;主打更强图形性能与沉浸式体验&#xff0c;支持多模态交互&#xff0c;受到全球玩家热捧 。 &#x1f916; 人工智能持续突破 DeepSeek-R1&…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中&#xff0c;crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用&#xff0c;用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益&#xff0c;允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式&#xff0c;自动确定它们的类型。 这一特性减少了显式类型注解的需要&#xff0c;在保持类型安全的同时简化了代码。通过分析上下文和初始值&#xff0c;TypeSc…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能

1. 开发环境准备 ​​安装DevEco Studio 3.1​​&#xff1a; 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK ​​项目配置​​&#xff1a; // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...