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

2023-11-29 19:15

本文主要是介绍【数据中台】开源项目(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 的吞吐和延迟

这篇关于【数据中台】开源项目(2)-Wormhole流式处理平台的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/433998

相关文章

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient

浅析Java中如何优雅地处理null值

《浅析Java中如何优雅地处理null值》这篇文章主要为大家详细介绍了如何结合Lambda表达式和Optional,让Java更优雅地处理null值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录场景 1:不为 null 则执行场景 2:不为 null 则返回,为 null 则返回特定值或抛出异常场景

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

springboot项目中常用的工具类和api详解

《springboot项目中常用的工具类和api详解》在SpringBoot项目中,开发者通常会依赖一些工具类和API来简化开发、提高效率,以下是一些常用的工具类及其典型应用场景,涵盖Spring原生... 目录1. Spring Framework 自带工具类(1) StringUtils(2) Coll

SpringValidation数据校验之约束注解与分组校验方式

《SpringValidation数据校验之约束注解与分组校验方式》本文将深入探讨SpringValidation的核心功能,帮助开发者掌握约束注解的使用技巧和分组校验的高级应用,从而构建更加健壮和可... 目录引言一、Spring Validation基础架构1.1 jsR-380标准与Spring整合1

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

SpringBatch数据写入实现

《SpringBatch数据写入实现》SpringBatch通过ItemWriter接口及其丰富的实现,提供了强大的数据写入能力,本文主要介绍了SpringBatch数据写入实现,具有一定的参考价值,... 目录python引言一、ItemWriter核心概念二、数据库写入实现三、文件写入实现四、多目标写入

使用Python将JSON,XML和YAML数据写入Excel文件

《使用Python将JSON,XML和YAML数据写入Excel文件》JSON、XML和YAML作为主流结构化数据格式,因其层次化表达能力和跨平台兼容性,已成为系统间数据交换的通用载体,本文将介绍如何... 目录如何使用python写入数据到Excel工作表用Python导入jsON数据到Excel工作表用

Mysql如何将数据按照年月分组的统计

《Mysql如何将数据按照年月分组的统计》:本文主要介绍Mysql如何将数据按照年月分组的统计方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql将数据按照年月分组的统计要的效果方案总结Mysql将数据按照年月分组的统计要的效果方案① 使用 DA