【数据中台】开源项目(2)-Wormhole流式处理平台

         Wormhole 是一个一站式流式处理云平台解决方案(SPaaS - Stream Processing as a Service)。

        Wormhole 面向大数据流式处理项目的开发管理运维人员,致力于提供统一抽象的概念体系,直观可视化的操作界面,简单流畅的配置管理流程,基于 SQL 即可完成的业务逻辑开发方式,并且屏蔽了流式处理的底层技术细节,极大的降低了数据项目管理运维门槛,使得大数据流式处理项目的开发管理运维变得更加轻量敏捷可控可靠。

       开源地址:GitHub - edp963/wormhole: Wormhole is a SPaaS (Stream Processing as a Service) Platform

系统架构

设计理念

  • 统一 DAG 高阶分形抽象

    • 构建由 Source DataSys,Kafka Topic,Spark Stream(Flink Stream),Sink DataSys 组成的物理 DAG

    • 每个物理 DAG 里可以并行处理多个由 Source Namespace,Flow,Sink Namespace 组成的逻辑 DAG

    • 每个 Flow 本身是典型的 Spark RDD DAG

  • 统一通用流消息 UMS 协议抽象

    • UMS 是 Wormhole 定义的流消息协议规范

    • UMS 试图抽象统一所有结构化消息

    • UMS 自身携带结构化数据 Schema 信息

    • Wh4 支持用户自定义半结构化 JSON 格式

  • 统一数据逻辑表命名空间 Namespace 抽象

    • Namespace 唯一定位所有数据存储所有结构化逻辑表

    • [Data System].[Instance].[Database].[Table].[Table Version].[Database Partition].[Table Partition]

主要特性

  • 支持可视化,配置化,SQL 化开发实施流式项目

  • 支持指令式动态流式处理的管理,运维,诊断和监控

  • 支持统一结构化 UMS 消息和自定义半结构化 JSON 消息

  • 支持处理增删改三态事件消息流

  • 支持单个物理流同时并行处理多个逻辑业务流

  • 支持流上 Lookup Anywhere,Pushdown Anywhere

  • 支持基于业务策略的事件时间戳流式处理

  • 支持 UDF 的注册管理和动态加载

  • 支持多目标数据系统的并发幂等入库

  • 支持多级基于增量消息的数据质量管理

  • 支持基于增量消息的流式处理和批量处理

  • 支持 Lambda 架构和 Kappa 架构

  • 支持与三方系统无缝集成,可作为三方系统的流控引擎

  • 支持私有云部署,安全权限管控和多租户资源管理

Experience

Admin 可以创建 Project/Namespace/User/UDF,并且可查看所有 Flow/Stream/Job

Admin 可以为 Project 分配 Namespace 资源/User 资源/UDF 资源/计算资源,以支持多租户资源隔离

User 可以对自己有权限的 Project 进行开发实施和管理运维工作

User 可以通过简单配置步骤即可搭建起一个流式作业 pipeline(Flow),只需关注数据从哪来到哪去和如何转换处理

转换支持大部分流上作业常用场景,大部分工作可以通过配置 SQL 实现流上处理逻辑

Wormhole 有 Flow 和 Stream 的概念,支持在一个物理 Stream(对应一个 Spark Stream)里通过并行处理多个逻辑 Flow,使得 User 可以更加精细灵活的利用计算资源,User 也可以对 Stream 进行精细化参数配置调整以更好平衡需求和资源

Wormhole 也支持批处理 Job,同样可以配置化实现处理逻辑并落到多个异构 Sink,Flow 和 Job 的配合可以很容易实现 Lambda 架构和 Kappa 架构

 

User 可以查看 Project 相关的 Namespace/User/UDF/Resource

   

User 还可以监控 Project 正在运行的所有 Flow/Stream 的吞吐和延迟

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/191196.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【React】Memo

组件重新渲染时缓存计算的结果。 实例:count1计算斐波那契数列,count2和count1可以触发数值变化。使用memo可以使只有在count1变化时触发斐波那契数列计算函数,而count2变化时不触发斐波那契数列计算函数。 import { useMemo } from "r…

二十六、搜索结果处理(排序、分页、高亮)

目录 一、排序 二、分页 1、深度分页问题 2、三种方案的优缺点 (1)fromsize 优点: 缺点: 场景: (2)after search 优点: 缺点: 场景: &#xff0…

git的使用:本地git下载、sshkey的添加、github仓库创建及文件上传

一、github创建账号 即github注册账号,登录github官网,根据提示注册即可 github官网 二、git客户端下载安装 已有很多git下载安装的博文了,在此就不赘述 三、sshkey的生成与添加 1、sshkey的生成以及查看 // sshkey的生成命令&#xff…

【代码】考虑电解槽变载启停特性与阶梯式碳交易机制的综合能源系统优化调度matlab-yalmip-cplex/gurob

程序名称:考虑电解槽变载启停特性与阶梯式碳交易机制的综合能源系统优化调度 实现平台:matlab-yalmip-cplex/gurobi 代码简介:提出了一种考虑 变载启停特性的电解槽混合整数线性模型,根据电 氢负荷可以实时调整设备工作状态&…

Leetcode211. 添加与搜索单词 - 数据结构设计

Every day a Leetcode 题目来源:211. 添加与搜索单词 - 数据结构设计 解法1:字典树 字典树(前缀树)是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。前缀树可以用 O(∣S∣) 的时间复杂度完成如下操作…

Linux进程通信——信号量

概念 信号量(semaphore) 与已经介绍过的 PC 结构不同,它是一个计数器。信号量用于实现进程间的互斥与同步,而不是用于存储进程间通信数据。 特点 1.信号量用于进程间同步,若要在进程间传递数据需要结合共享内存 2.信号量基于操作系统的 PV…

VUE简易计划清单

目录 效果预览图 完整代码 效果预览图 完整代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>…

嵌入式的学习需要合理规划时间

低级的欲望放纵即可获得&#xff0c;高级的欲望只有克制才能达成。——卡耐基1、粉丝的误会 很多粉丝&#xff0c;问我&#xff0c; "胡老师我想报您的培训班。" ... 得知我知识业余时间写文章&#xff0c;紧接着又会问&#xff0c; "jg单位这么清闲啊&#…

粉丝提问:写博文怎样才能变现啊?

文章目录 粉丝提问&#xff1a;写博文怎样才能变现啊&#xff1f;我总结了一下博客变现的几个途径&#xff1a;另外做技术博主的五大好处 后记 粉丝提问&#xff1a;写博文怎样才能变现啊&#xff1f; type: Post status: Published date: 2023/11/26 tags: 推荐 category…

单调栈类型题

搞定八道高频算法题 一、如何找右边第一个比我小的元素 二、如何找右边第一个比我大的元素 三、如何找右边最后一个比我小的元素 四、如何找右边最后一个比我大的元素 五、如何找左边第一个比我小的元素 六、如何找左边第一个比我大的元素 七、如何找左边最后一个比我小的元素 …

Nginx常见的中间件漏洞

目录 1、Nginx文件名逻辑漏洞 2、Nginx解析漏洞 3、Nginx越权读取缓存漏洞 这里需要的漏洞环境可以看&#xff1a;Nginx 配置错误导致的漏洞-CSDN博客 1、Nginx文件名逻辑漏洞 该漏洞利用条件有两个&#xff1a; Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7 php-fpm.conf中的s…

泛型你掌握多少?包装类你深入了解过吗?快进来看看吧~

目录 1、泛型是什么——引出泛型 2、泛型的使用 2.1、语法 2.2泛型类的使用 2.3、裸类型 3、泛型如何编译 3.1、擦除机制 3.2、为什么不能实例化泛型类型数组 4、泛型的上界 5、泛型方法 5.1、语法 5.2、举例 6、通配符 6.1、什么是通配符 6.2、统配符解决了什么…

【数据中台】开源项目(2)-Dbus系统架构

大体来说&#xff0c;Dbus支持两类数据源&#xff1a; RDBMS数据源 日志类数据源 1 RMDBMS类数据源的实现 以mysql为例子. 分为三个部分&#xff1a; 日志抽取模块(最新版DBus已经废弃该模块&#xff0c;使用canal直接输出到kafka) 增量转换模块 全量拉取模块 1.1 日志抽…

单片机学习4——中断的概念

中断的概念&#xff1a; CPU在处理A事件的时候&#xff0c;发生了B事件&#xff0c;请求CPU迅速去处理。&#xff08;中断产生&#xff09; CPU暂时中断当前的工作&#xff0c;转去处理B事件。&#xff08;中断响应和中断服务&#xff09; 待CPU将B事件处理完毕后&#xff0…

深入理解JVM虚拟机第二十六篇:详解JVM当中的虚方法和非虚方法,并从字节码指令的角度去分析虚方法和非虚方法

😉😉 学习交流群: ✅✅1:这是孙哥suns和树哥给大家的福利! ✨✨2:我们免费分享Netty、Dubbo、k8s、Spring...应用和源码级别的视频资料 🥭🥭3:QQ群:583783824 📚​​​​​​​📚 微信:DashuDeveloper拉你进微信群,免费领取! 一:非虚方法和虚方法 方法…

【JAVA杂货铺】一文带你走进面向对象编程|继承|重载|重写|期末复习系列 | (中4)

&#x1f308;个人主页: Aileen_0v0&#x1f525;系列专栏:Java学习系列专栏&#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 目录 继承 私有成员变量在继承中的使用​编辑 当子类和父类变量不重名时: 当子类和父类重名时: &#x1f4dd;总结: 继承的含义: …

网络视频播放卡顿原因分析

一、问题描述 某项目通过拉摄像机rtsp流转rtmp/http-flv/ws-flv的方案&#xff0c;使用户可以在网页中观看摄像机的视频画面。在 观看视频时偶发出现卡顿现象。 二、卡顿现象分析和解决 此问题涉及的原因较多&#xff0c;所以得考虑各环节的问题可能性&#xff0c;并根据现场实…

Vue常见的实现tab切换的两种方法

目录 方法一&#xff1a;事件绑定属性绑定 效果图 完整代码 方法二&#xff1a;属性绑定 动态组件 component标签 效果图 完整代码 方法一&#xff1a;事件绑定属性绑定 效果图 完整代码 <!DOCTYPE html> <html lang"en"> <head><meta c…

5.前端--CSS-基本概念【2023.11.26】

1. CSS 语法规范 CSS 规则由两个主要的部分构成&#xff1a;选择器以及一条或多条声明。 属性和属性值之间用英文“:”分开 多个“键值对”之间用英文“;”进行区分 选择器 : 简单来说&#xff0c;就是选择标签用的。 声明 &#xff1a;就是改变样式 2.CSS引入方式 按照 CSS 样…

有了倾斜摄影,如何搭建一座智慧城市?

随着无人机航测、倾斜摄影等全新一代测绘信息技术方法的发展&#xff0c;可以迅速搜集制作精细化的城市三维模型&#xff0c;搭建城市地理信息基础服务架构。 近期都在重点关注的“智慧城市”究竟是什么&#xff0c;有什么重大作用&#xff0c;同时又面临着什么难关&#xff0c…