分布式kettle调度管理平台简介

news2024/11/26 5:58:20

介绍

Kettle(也称为Pentaho Data Integration)是一款开源的ETL(Extract, Transform, Load)工具,由Pentaho(现为Hitachi Vantara)开发和维护。它提供了一套强大的数据集成和转换功能,用于从各种数据源提取数据、进行数据转换和清洗,并将数据加载到目标系统中。

  1. ETL功能:Kettle专注于提供ETL功能,即从不同的数据源(如数据库、文件、Web服务等)中提取数据,并对数据进行转换和整理,最后将数据加载到目标系统中。它支持各种数据处理操作,如过滤、排序、聚合、连接、转换等,以满足不同的数据集成需求。

  2. 可视化设计:Kettle提供了一个可视化的设计界面,称为Spoon。通过Spoon,用户可以通过拖拽和连接各种组件来创建数据转换和工作流程。这种可视化的设计方式使得ETL过程更加直观和易于理解。

  3. 多种数据源支持:Kettle支持多种数据源的连接和操作,包括关系型数据库(如MySQL、Oracle、SQL Server等)、非关系型数据库(如MongoDB、Hadoop等)、文件(如CSV、Excel等)、Web服务(如REST API、SOAP等)等。这使得Kettle可以处理各种不同类型和格式的数据。

  4. 强大的转换和清洗功能:Kettle提供了丰富的转换和清洗功能,可以对数据进行各种操作,如字段映射、数据类型转换、数据清洗、数据合并、数据拆分等。这些功能使得数据在整个ETL过程中能够得到有效的处理和准备。

  5. 可扩展性:Kettle提供了一套插件机制,允许用户根据自己的需求进行功能扩展和定制。用户可以编写自定义的插件,以满足特定的数据集成和处理需求。

Kettle是一款功能强大、灵活可扩展的ETL工具,适用于各种数据集成和转换任务。在开源系统中,它的可视化设计界面和丰富的功能使得数据处理变得更加简单和高效。

尽管目前市面上开源ETL老牌工具有Sqoop,datax,Canal、StreamSets等,新晋ELT工具有airbyte, seaTunnel等。但kettle作为传统老牌ETL工具,在易用性,资料丰富性等方面仍然有一席之地,对于千万级内的数据量级处理,仍是不可替代的优秀ETl工具之一。

本人是KETTLE使用爱好者以及二次开发者,拥有8年的丰富使用经验。在使用过程中针对kettle的弱项,以及对市面上一些kettle二开工具的对比发现,目前尚未有一款好用的调度管理工具。经此,于是准备开发一款简单易用,灵活部署,可以水平扩展的分布式调度管理平台。

功能介绍和对比

废话不多说,上才艺:

比较维度功能本产品第三方产品
设计及架构框架springcloud微服务springboot或springmvc单体
设计前后端分离ui层管理,调度,执行耦合在一个服务中
调度层
agent层
执行层
调度层基于xxl-job封装和优化,支持集群和动态分片,集群模式下支持数十万至百万级任务调度基于quartz或者spring schedule组件
agent层springcloud微服务模式,用来管理kettle的carte服务,支持水平扩展,接受调度层的指令,来向执行层发送转换做作业的任务。
1、支持carte服务的管理和探活,自动剔除异常节点,和故障转移
2、支持8种负载均衡策略
3、基于分片模式的任务执行状态定时检测,不存在单点压力和故障。
4、任务异常告警,carte服务监控告警可视化配置
执行层基于kettle的carte模式采用插件策略二次开发,无代码入侵,不集成任何kettle源码,兼容kettle5.x, kettle6.x, kettle7.x, kettle8.x,kettle9.xkettle源码嵌入单体服务中,不利于版本升级和管理
前端UI框架vue2.XeasyUI, jquery, bootstrap
权限设计基于RBAC模式设计部门,岗位,角色
菜单,按钮,资源层精细化控制
数据权限
业务模块设计数据集成任务报表概览任务管理
项目管理
任务管理
集群管理
节点管理
元数据管理血缘分析
数据源管理
数仓管理ODS原始数据层
DWD数据明细层
DWS服务数据层
ADS数据应用层
数据服务数据发布
授权管理
api管理
监控模块服务器监控Prometheus,hertzbeat
服务级监控grafana
jvm监控
日志观测;链路追踪模块loki日志可视化loki日志可视化
oss日志存储oss日志存储
jaeger链路追踪jaeger链路追踪

架构设计

 

详细功能介绍

1、ETL概览

首先是ETL概览,最上面是统计当前管理的任务数,以及任务执行情况。下面的折线图是展示每日执行的转换和作业的成功失败数。

2、项目管理

2.1 项目管理

对ETL任务进行项目维度的包装,将ETL任务和业务进行绑定,使之具备生命周期属性,更易于理解和管理。

2.2 项目新增

3、任务管理

整个系统的最核心地方,对ETL任务进行封装,与项目映射为多对一的关系。一个项目任务绑定一个carte集群,和一个调度任务,并拥有任务状态属性。可以实时查看当前任务执行状态,以及执行日志。

  1. 任务新增

新增任务,需要绑定项目,和ETL资源库的转换或作业信息,然后再指定要执行的carte集群。

支持运行中的任务实时修改转换或作业信息。改动下次执行生效。

  1. 任务执行

任务创建完成之后,可以点击右侧按钮执行执行一次,此时agent层会从集群中根据负载均衡策略,选取一个可用的slave节点,将转换做作业信息发送到该节点上执行,并将改任务添加到状态监控队列,对任务的执行状态进行更新和日志监控

当任务启动后,状态栏会切换为动态转换的蓝色小齿轮,同时可以实时查看进行中的日志

  1. 任务定时执行

对于ETL任务,90%的都要定时重复执行,这里可以设置定时执行:

这里可以对定时方式进行配置,指定agent作为执行器,以及agent的路由策略,cron表达式,以及失败策略等。

  1. 启动定时任务

点击定时管理按钮,可以对定时任务进行执行,停止,以及删除操作。

  1. 任务修改

支持实时的任务修改,和集群修改,下次执行时会自动生效。

任务DAG查看

4、集群管理

这里重新设计了carte的集群配置,carte本身的集群只是简单的主从模式,这里设计了master动态选举集群模式,

master节点挂掉之后,会自动选择其他slave节点作为master节点。

  1. 新建集群

每个slave可以加入到多个集群中,互不冲突。集群策略支持8种负载均衡模式,如果对任务执行成功率有严格要求,可以设置为故障转移模式,但这种情况可能会存在任务倾斜的情况,导致某个carte节点任务数很多,而有的carte又很闲。后面会考虑增加一个组合模式的负载均衡策略,将故障转移和轮询或者一致性hash结合在一起。正常情况建议选择一致性hash或者轮询策略。

5、节点管理

节点是集群的组成核心之一,所有集群都是从节点池中选择一批进行组合。

管理列表这里优先展示节点身上的任务数,以及cpu和内存使用情况。

  1. 节点操作

可以对节点进行刷新,编辑,停止等操作。

6、日志观测平台

日志观测平台基于分布式轻量级日志存储系统loki, 和采集器vector, 以及grafana可视化展示平台组成,方便开发实时排查系统日志和快速定位问题。 

7、监控告警平台 

基于jmx和prometheus非入侵方式对carte服务进行jvm维度的监控,一旦服务状态异常,秒级响应告警,方便运维实时处理问题,保证ETL任务的稳定性和可靠性。

系统体验

生活不易,系统目前在持续升级,迭代中,暂时未计划开源。核心功能ETL部分已在自有阿里云服务器稳定运行3个月之久,2C2G的单机carte配置,可稳定运行10-100个任务(视具体任务的数据体量而定)。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是产线工控安全,如何保障产线设备的安全

什么是产线工控安全? 工控,指的是工业自动化控制,主要利用电子电气、机械、软件组合实现。即是工业控制系统,或者是工厂自动化控制。产线工控安全指的是工业控制系统的数据、网络和系统安全。随着工业信息化的迅猛发展&#xff0…

首户完工!江门市特殊困难老年人家庭适老化改造资助项目初见成效

日前,江门市特殊困难老年人家庭适老化改造项目取得新进展。位于蓬江区杜阮镇的黄伯家,成为“慈善筑迹溢彩同行”江门市特殊困难老年人家庭适老化改造项目资助的首户完工受益户。 黄伯的家由两座旧平房构成,大门门槛处原步差较大,…

spring aop 初探

org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator#wrapIfNecessary 分析JDK动态代理 生成的代理对象 构造函数,入参为 InvocationHandler public com.sun.proxy.$Proxy164(java.lang.reflect.InvocationHandler) 生成动态代理Class对象&…

免交互和嵌入执行模式

目录 概念 语法格式 统计行数 赋值变量 修改密码​编辑往文件里添加内容 ​编辑​编辑引入变量 整体赋值​编辑 加引号不赋值变量 expect实现免交互 免交互设置密码 免交互切换用户 嵌入执行模式 添加用户并免交互设置密码 免交互登录 传参实现ssh 练习 概念 …

day22--77. 组合+216.组合总和III+17.电话号码的字母组合

一、77. 组合 题目链接:https://leetcode.cn/problems/combinations/ 文章讲解:https://programmercarl.com/0077.%E7%BB%84%E5%90%88.html 视频讲解:https://www.bilibili.com/video/BV1ti4y1L7cv 1.1 初见思路 组合问题用回溯学会使用剪…

Java的异常处理体系

目录 异常处理1、Java的异常类层次结构2、try-catch-finally 使用注意事项3、在Web应用中如何实现全局异常处理机制 异常处理 1、Java的异常类层次结构 其中Error表示程序运行错误 常见的错误类型有: OutOfMemoryError (内存溢出错误) StackOverFlowError (栈内存溢…

计算机等级考试二级Java-第二篇:基本数据类型

1.运算符的优先级以及复杂表达式 优先级运算符结合性1( ) [ ]  .从左到右2!  ~    –从右到左3*  /  %从左到右4  -从左到右5<<  >>  >>>从左到右6<  <  >  >  instanceof从左到右7  !从左到右8&从左到右9^从左到右10|从…

定制聊天机器人,实现智能客服,完成冰箱报修对话 | Chatopera

系列文章 1/3 智能客服体验分析&#xff0c;使用小程序海尔服务完成电器报修 | Chatopera2/3 Chatopera 云服务实现类海尔服务智能客服的功能点比较 | Chatopera3/3 定制聊天机器人&#xff0c;实现智能客服&#xff0c;完成冰箱报修对话 | Chatopera 本篇为第三篇&#xff0…

突破SaaS产品运营困境:多渠道运营如何集中管理?

随着数字化时代的到来&#xff0c;SaaS&#xff08;软件即服务&#xff09;产品已成为企业日常运营不可或缺的工具。然而&#xff0c;在竞争激烈的市场环境下&#xff0c;SaaS产品运营越来越重视多渠道、多平台布局&#xff0c;以更广泛地触及潜在用户&#xff0c;然而&#xf…

报工计件工资核算h5开源版开发

报工计件工资核算h5开源版开发 小型计件工资管理系统&#xff0c;支持后台制定工价&#xff0c;核算工资。支持员工H5端报工&#xff0c;和查看工资情况。 H5手机端 支持在线报工&#xff0c;支持查看我的工资。 自定义费用项 在基础计件工资基础上增加扣除和增加项&#xff…

日元一路暴跌,对日股是利好还是利空? “年中高息”效应不再,货基与回购收益率走低

日元汇率自5月突破155后&#xff0c;股市已开始认识到日元疲软的负面影响&#xff0c;日元贬值与股价上涨的相关性已被打破&#xff0c;股市投资者现在需要关注日元贬值的水平。 6月28日周五&#xff0c;美国重磅PCE物价指数公布前夕&#xff0c;日元再度深跌至1美元兑161日元&…

武汉星起航:亚马逊卖家必读——FBA与FBM发货物流模式全面对比

亚马逊作为全球电商的巨头&#xff0c;其成功的背后离不开高效的物流服务。在亚马逊平台上&#xff0c;卖家可以选择两种主要的发货物流模式&#xff1a;FBA&#xff08;Fulfillment by Amazon&#xff09;和FBM&#xff08;Fulfillment by Merchant&#xff09;。这两种模式各…

预制聚氨酯保温管:高效节能管道保温

在现代能源输送领域&#xff0c;预制聚氨酯保温管正凭借其出色的性能&#xff0c;成为保障能源高效传输的关键角色。 预制聚氨酯保温管&#xff0c;顾名思义&#xff0c;其核心在于聚氨酯保温层。这一独特的设计赋予了它卓越的保温性能。聚氨酯材料具有极低的导热系数&#xff…

扫扫地,搞搞卫生 ≠ 车间5S管理

在制造业的日常运营中&#xff0c;车间管理是一项至关重要的工作&#xff0c;它直接关系到生产效率、产品质量以及员工的工作环境。然而&#xff0c;许多人常常将简单的“扫扫地&#xff0c;搞搞卫生”等同于车间5S管理&#xff0c;这种误解不仅可能导致管理效果不佳&#xff0…

飞凌嵌入式RK3576核心板的四大优势详解

为了充分满足AIoT市场对高性能、高算力和低功耗主控日益增长的需求&#xff0c;飞凌嵌入式近期推出了基于Rockchip RK3576处理器开发设计的FET3576-C核心板&#xff0c;具有出色的图像和视频处理能力、丰富的接口和扩展能力、低功耗以及广泛的应用场景。本篇内容&#xff0c;小…

Ubuntu20.04安装Prometheus监控系统

环境准备&#xff1a; 服务器名称内网IP公网IPPrometheus服务器192.168.0.23047.119.21.167Grafana服务器192.168.0.23147.119.22.8被监控服务器192.168.0.23247.119.22.82 更改主机名方便辨认 hostnamectl set-hostname prometheus hostnamectl set-hostname grafana hostn…

「性能指标」CPU飙高排查实战

上篇提到了什么是 CPU 以及如何计算的。接下来主要说说实际工作中遇到 CPU 飙高如何去排查呢&#xff1f; 往期回顾&#xff1a; 聊聊性能指标 CPU 利用率如何计算的&#xff1f; 问题发现 前段时间我们新上线了一个应用&#xff0c;由于流量一直不大&#xff0c;集群的每秒…

Python25 Numpy基础

1.什么是Numpy NumPy&#xff08;Numerical Python 的简称&#xff09;是 Python 语言的一个扩展程序库&#xff0c;支持大量的维度数组与矩阵运算&#xff0c;此外也针对数组运算提供大量的数学函数库。NumPy 的前身是 Numeric&#xff0c;这是一个由 Jim Hugunin 等人开发的…

Flexsim物流仿真入门-利用网络节点控制行走路线

在布局优化过程中&#xff0c;往往叉车&#xff0c;操作人员的搬运&#xff0c;是会按照一定的行走路线进行的&#xff0c;这就需要我们进行节点的设计&#xff0c;以此来实现特定路径的行走。 在构建过程中&#xff0c;这里将会以案例的形式进行讲解说明。 1&#xff09;构建…

基于单片机的智能温控风扇设计

摘 要 : 本次设计是基于单片机的智能温控风扇 。 以 STC89C52 单片机为核心 &#xff0c; 可以实现对风扇的有效控制 。 可以根据需要设置不同的温度 &#xff0c;如果温度在设定值最大值和最小值之间时则启动风扇弱风档&#xff0c; 如果温度超过设定的数值时将会变到大风档…