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

介绍

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.mfbz.cn/a/753726.html

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

相关文章

第二十课,认识列表与定义列表

一,列表的作用 思考一个问题:如果我想要在程序中,记录5名学生的信息,如姓名。 如何做呢? 这就是列表的作用,能帮助我们更加高效的存储各种数据 思考:如果一个班级100位学生,每个人…

毅速丨金属3D打印是制造业转型升级的重要技术

随着科技的进步,金属3D打印技术已成为制造业升级的重要驱动力。它以其独特的优势,正引领着制造业迈向新的未来。 金属3D打印技术的突破: 设计自由。金属3D打印能制造任意形状和结构的零件,为设计师提供了无限的创意空间。 快速制…

java基于ssm+jsp 扶贫惠农推介系统

1管理员功能模块 管理员输入个人的用户名、密码、角色登录系统,这时候系统的数据库就会在进行查找相关的信息,如果我们输入的用户名、密码不正确,数据库就会提示出错误的信息提示,同时会提示管理员重新输入自己的用户名、密码&am…

计算机网络:408考研|湖科大教书匠|原理参考模型I|学习笔记

系列目录 计算机网络总纲领 计算机网络特殊考点 计算机网络原理参考模型I 计算机网络原理参考模型II 目录 系列目录更新日志数据链路层(Data Link Layer)一、基本概念二、三个重要问题三、 🌟点对点协议(PPP, Point-to-Point Protocol)四、 以太网五、802.11 无线局…

CUDA 编程

## blocksize和gridsize设置 使用deviceQuery查看GPU相关信息(下图为1080 ti)blocksize的最大值建议不要超过Maximum number of threads per block(1024)由于每个block里的线程需要被分为数个wrap,而wrap size为32(Warp size&…

DDMA信号处理以及数据处理的流程---聚类

Hello,大家好,我是Xiaojie,好久不见,欢迎大家能够和Xiaojie一起学习毫米波雷达知识,Xiaojie准备连载一个系列的文章—DDMA信号处理以及数据处理的流程,本系列文章将从目标生成、信号仿真、测距、测速、cfar检测、测角、目标聚类、目标跟踪这几个模块逐步介绍,这个系列的…

昇思25天学习打卡营第2天|探索张量:从创建到运算,包括属性、索引、与 NumPy 转换及稀疏张量

目录 张量的介绍 MindSpore 及其张量相关模块的导入配置 创建张量 介绍 根据数据直接生成 从NumPy数组生成 使用init初始化器构造张量 继承另一个张量的属性,形成新的张量 张量的属性 张量的索引 张量的运算 Tensor与NumPy转换 Tensor转换为NumPy NumPy…

CISCN--西南半决赛--pwn

1.vuln 这是主函数,数一下就发现可以溢出最后的0x4008d0 然后会执行到这里,逻辑就是在v0上写shellcode,不过执行写0x10,不够sh,很明显要先read。 以下是exp: from pwn import * context.archamd64 ioprocess(./vuln)…

YouTube广告投放指南:如何投放 YouTube视频广告

在海外广告投放中,YOutube是重要的渠道之一。这篇文章Maskfog将为你介绍Youtube广告类型以及广告投放流程,继续看下去! YouTube 视频广告的类型 1.信息流视频广告 信息流视频广告显示在 YouTube 主页、搜索结果页面上,并作为 Yo…

一维信号的小波变换与重构算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 小波变换原理 4.2 离散小波变换(DWT) 5.完整程序 1.程序功能描述 一维信号的小波变换与重构算法matlab仿真,对正弦测试信号进行小波变换&#xff0c…

django admin添加自己的页面

建立模型 如果要单独建一个页面,用于展示model的数据,可以新建一个model,继承自要展示的那个类 class ViewsByDayModel(ViewsByDay): # 父类为要展示的model类class Meta:proxy True # 使用代理verbose_name 每日浏览次数统计verbose_nam…

快递大件多少算超重物品?

在快递大件物品时,我们经常听到“超重”这个词,但究竟多重才算超重呢?今天,就让我们来探讨一下快递大件的超重标准,以及如何更经济地快递这些超重物品。 1. 祺祺寄快递: “祺祺寄快递”是一个便捷的快递服…

python中类的继承详解

面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展 (1)在类的继承中,存在父类跟子类,子类可以继…

面包板的使用

概要 当你学习怎样去建立一个电路时,面包板是最基本、最简单的元件之一。由于板子上有很多小插孔,各种电子元器件可根据需要任意插入或拔出,免去了焊接的工序,节省了电路的组装时间,且元件可以重复使用,非…

比较器 XD393 XINLUDA(信路达) DIP-8 2.5mA 模拟比较器 双路差动

XD393是一款比较器集成电路,适用于各种电子设备中的信号比较和处理。它的应用领域可能包括但不限于以下几个方面: 1. 电源管理:在电源管理系统中,XD393可以用来监控电压水平,确保系统稳定运行,或者触发某…

【pytorch11】高阶操作

高阶操作 WhereGather where 三个参数,第一个是condition,第二个参数是源头A,第三个参数是源头B,也就是说有两项数据A和B,C有可能来自于A也有可能来自于B,如果全部来自于A的话直接赋值给A,如果…

G8 - ACGAN

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 目录 模型结构 模型结构 之前几期打卡中,已经介绍过GAN CGAN SGAN,而ACGAN属于上述几种GAN的缝合怪,其模型的结构图如下&a…

Leetcode 矩阵问题

36题.有效的数独 此类问题特点是给出行列的多种限定条件,数独限制每行每列每个小九宫格元素范围为1-9且不可重复 。解决此类问题最简单的想法就是使用哈希set,记录每行,每列,每个小九宫格已经出现的元素。在遍历矩阵时提前做出是否…

一个简单的文件上传功能

代码如下&#xff1a; PostMapping("/upload")public ResponseEntity<String> handleFileUpload(RequestParam(value "uploadDirectory") String uploadDirectory,RequestParam("fileName") MultipartFile fileName) {try {// 确保文件不…

SQL 29 计算用户的平均次日留存率题解

问题截图如下&#xff1a; SQL建表代码&#xff1a; drop table if exists user_profile; drop table if exists question_practice_detail; drop table if exists question_detail; CREATE TABLE user_profile ( id int NOT NULL, device_id int NOT NULL, gender varchar…