基于Kettle开发的web版数据集成开源工具(data-integration)-应用篇

news2024/11/20 14:34:32

目录

  • 📚第一章 基本流程梳理
    • 📗页面基本操作
    • 📗对应后台服务流程
  • 📚第二章 二开思路
    • 📗前端
    • 📗后端

🔼上一集:基于Kettle开发的web版数据集成开源工具(data-integration)-介绍篇

*️⃣主目录:ETL&ELT专栏

📚第一章 基本流程梳理

📗页面基本操作

登录开始->新建项目->保存项目->运行项目开始(问题还是挺多的,不过主要还是借鉴任务编排这一块,无伤大雅)
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

select role_name,`describe` from dp_portal_role

📗对应后台服务流程

参照页面基本操作,梳理后台对应的服务及表等
在这里插入图片描述

  • 项目主要对应两种表
    • 项目信息表 dp_portal_project :项目编号、名称、描述、类型、状态,分组编号、名称
    • 项目附件信息表 dp_portal_project_file :项目编号、项目文件内容project_file、项目版本号;其中project_file字段通过JSON串存放项目内容
  • 运行项目
    • 调用更新项目信息接口 ProjectServiceApiController.updateSelective
    • 前端通过调用websocket服务,调用运行接口 ProjectExecutorController.executeById
      • @MessageMapping@SendToUser注解是用来处理WebSocket消息并实现广播或点对点消息推送的:
        1. WebSocket客户端向服务器发送一条指向/executeById路径的消息。
        2. 服务器端通过@MessageMapping找到并执行executeById方法。
        3. 方法内部完成业务逻辑处理后,返回的结果会被自动通过WebSocket协议推送给对应用户,即在每个已认证用户的特定通道上发布结果。
          在这里插入图片描述
          在这里插入图片描述
      • projectExecutorService.asyncExecuteByFile
        • executeByFile.execute.start()
          • 构建TransMeta 对象,buildTransMeta(jsonxml)
          • 设置本地引擎执行
          • 创建执行器
          • 启动
        • 调用Kettle本地引擎
          在这里插入图片描述

📚第二章 二开思路

通过上面的流程梳理,发现任务编排工作流主要在前端,各种字段属性和kettle对应都是前端传给后台的,后台直接保存的JSON串,我这里只需要任务编排这块功能,springcloud也用不到,后面如果借鉴该项目,大概要做哪些事?

📗前端

应该可以直接复用,我们用的也是vue2+element架构

📗后端

该项目涉及的技术组件比较多,用到了springcloud,相对来说有点麻烦,到了具体开发阶段,涉及的就比较多了,下一步可以先简单点,就导出一个作业文件,提取相关代码,能够成功执行作业之后,在开始大刀阔斧的开展工作,一步一步推进:

  • kettle本地引擎执行代码
  • 作业文件组装、转换代码

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

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

相关文章

对话小仙炖副总裁张勇:内容价值将成为直播电商的核心趋势和竞争力

“ 激活中医典籍里的智慧,坚持内容化之路,服务好消费者。” 整理 | 飞族 编辑 | 渔舟 出品|极新&北京电子商务协会 随着直播电商的影响力越来越大,对品牌而言,直播不仅是一种单纯的卖货渠道,…

Open3D聚类算法

按照官网的例子使用聚类,发现结果是全黑的。 经过多次测试发现 eps3.3, min_points1这里是关键 min_points必须等于1否则无效果 import time import open3d as o3d; import numpy as np; import matplotlib.pyplot as plt#坐标 mesh_coord_frame o3d.geometry.Tria…

力扣题:高精度运算-1.3

力扣题-1.3 [力扣刷题攻略] Re:从零开始的力扣刷题生活 力扣题1:43. 字符串相乘 解题思想:类似计算时采用的竖式乘法。首先取得num2的低位,并补齐对应的0,然后与num1进行相乘,然后进行字符串的相加操作。…

使用 pg_stat_statements 优化查询

使用 pg_stat_statements 优化查询 就使用量和社区规模而言,PostgreSQL 是增长最快的数据库之一,得到许多专业开发人员的支持,并得到广泛的工具、连接器、库和可视化应用程序生态系统的支持。 PostgreSQL 也是可扩展的:使用 Postg…

实现HSRP-热备份路由协议

实现HSRP-热备份路由协议 <HSRP多组实现> 网络工程师必会的企业网络常用双机热备协议之HSRP。 实验拓扑: 实验目的: 通过配置多组HSRP实现网关自动切换和链接负载均衡,既当网络正常时PC1,PC3通过R1到达R3,PC2,PC4通过R2到达R3,当R1或R2发生故障时网关能自动切换,以确…

企业微信开发:自建应用:获取企业微信IP段(用于防火墙配置)

概述 在企业微信开发流程中&#xff0c;为了确保与企业微信API的网络通信安全&#xff0c;并适应防火墙配置要求&#xff0c;开发者需要获取企业微信API服务的IP地址范围。这样&#xff0c;仅允许与企业微信官方通信的合法请求通过防火墙&#xff0c;从而保障数据传输的安全性…

教学目标是什么

教学目标&#xff0c;作为教学活动的灵魂之所在&#xff0c;对于教育者和学生都至关重要。然而&#xff0c;你是否曾对此产生过疑问&#xff1a;教学目标究竟是什么&#xff1f;它又如何影响我们的教学活动呢&#xff1f; 教学目标就像一座灯塔&#xff0c;为教学活动指明方向&…

MapInfo Pro和Python基础知识

MapInfo Pro用户长期以来一直使用MapBasic脚本语言来自动化任务、构建自定义应用程序、创建Pro的特定领域自定义、将Pro与其他工具集成等。 MapBasic主要是一种编译语言&#xff0c;这对非程序员来说有点障碍。 我们确实有MapBasic窗口&#xff0c;它允许MapBasic语句和代码直接…

罗德与施瓦茨FSVA40信号和频谱分析仪

罗德与施瓦茨FSVA40是一款功能信号和频谱分析仪&#xff0c;适用于从事射频系统的开发、生产、安装和服务的用户。FSVA40信号和频谱分析仪系列始终提供最佳的价格和性能组合&#xff0c;无论是根据最新通信标准测试生产中的无线设备&#xff0c;还是测量低相位噪声、高灵敏度和…

根本记不住MySQL进阶查询语句

1 MySQL进阶查询 1.1 MySQL进阶查询的语句 全文以数据库location和Store_Info为实例 ---- SELECT ----显示表格中一个或数个字段的所有数据记录 语法&#xff1a;SELECT "字段" FROM "表名"; select 列名 from 表名 ; ---- DISTINCT ----不显示重复的数…

农业银行RPA实践 3大典型案例分析

零接触开放金融服务在疫情之下被越来越多的银行和客户所认同&#xff0c;引起了更广泛的持续关注&#xff0c;各家银行纷纷开展产品服务创新&#xff0c;加速渠道迁移&#xff0c;同时通过远程办公、构建金融生态等方式积极推进零接触开放金融体系建设。 随着商业银行科技力量的…

后端开发——JDBC的学习(三)

本篇继续对JDBC进行总结&#xff1a; ①通过Service层与Dao层实现转账的练习&#xff1b; ②重点&#xff1a;由于每次使用连接就手动创建连接&#xff0c;用完后就销毁&#xff0c;这样会导致资源浪费&#xff0c;因此引入连接池&#xff0c;练习连接池的使用&#xff1b; …

新年福利|这款价值数万的报表工具永久免费了

随着数据资产的价值逐渐凸显&#xff0c;越来越多的企业会希望采用报表工具来处理数据分析&#xff0c;了解业务经营状况&#xff0c;从而辅助经营决策。不过&#xff0c;企业在选型报表工具的时候经常会遇到以下几个问题&#xff1a; 各个报表工具有很多功能和特性&#xff0c…

Python数据处理库之tablib详解

概要 Python 提供了许多库和工具来处理数据&#xff0c;其中之一就是 tablib。tablib 是一个功能强大且易于使用的库&#xff0c;用于处理各种数据格式&#xff0c;包括Excel、CSV、JSON等。它不仅可以用于数据导入和导出&#xff0c;还支持数据转换、过滤、合并等操作。本文将…

《C++语言程序设计(第5版)》(清华大学出版社,郑莉 董渊编著)习题——第2章 C++语言简单程序设计

2-28 用穷举法找出1~100的质数并显示出来。分别使用while、do-while、for循环语句实现。 // 使用while循环#include <iostream>using namespace std;int main() {int number 2;cout << "1~100之间的质数有&#xff1a;";while (number < 100) {int …

HarmonyOS应用开发之ArkTS语言学习记录

1、ArkTS介绍 ArkTS是鸿蒙生态的应用开发语言。它在保持TypeScript&#xff08;简称TS&#xff09;基本语法风格的基础上&#xff0c;对TS的动态类型特性施加更严格的约束&#xff0c;引入静态类型。同时&#xff0c;提供了声明式UI、状态管理等相应的能力&#xff0c;让开发者…

Xcode15在iOS12系统上崩溃的原因

1.1.崩溃在_dyld_start&#xff0c;如图&#xff1a; 崩溃截图 解决办法&#xff1a;在other link flags添加-ld64 注意&#xff1a;该办法只能解决运行真机&#xff0c;archive出来的包依然报错闪退...... 1.2 SwiftUI导致iOS12及以下系统闪退问题 SwiftUI是iOS13开始使用&…

MongoDB 启动时:服务名无效

1.问题场景 电脑睡眠后&#xff0c;再连接服务发现无法连接&#xff0c;启动服务报&#xff1a;服务名无效。 2.打开服务管理&#xff1a; 发现服务中没有MongoDB的服务 3.解决 &#xff08;1&#xff09;先找打MongoDB安装路径&#xff0c;把data文件夹下所有文件删除 &a…

Python之安装和环境配置

python的下载 1.可以去python官网下载&#xff0c;https://www.python.org/ 2.下载完成后&#xff0c;安装即可。 python的检测 1.打开开始-运行-cmd&#xff08;快捷键winR&#xff09;。 如果是mac&#xff0c;打开使用工具-终端。 2.在终端里输入python&#xff0c;以下…

魔法少女小Scarlet#洛谷

题目描述 Scarlet 最近学会了一个数组魔法&#xff0c;她会在 n n n\times n nn 二维数组上将一个奇数阶方阵按照顺时针或者逆时针旋转 9 0 ∘ 90^\circ 90∘。 首先&#xff0c;Scarlet 会把 1 1 1 到 n 2 n^2 n2 的正整数按照从左往右&#xff0c;从上至下的顺序填入初…