当前位置: 首页 > news >正文

培训类 网站后台免费中文企业网站模板

培训类 网站后台,免费中文企业网站模板,网站建设手机,单位网里建网站Kettle 简介 Kettle 最初由 Matt Casters 开发#xff0c;是 Pentaho 数据集成平台的一部分。它提供了一个用户友好的界面和丰富的功能集#xff0c;使用户能够轻松地设计、执行和监控 ETL 任务。Kettle 通过其强大的功能和灵活性#xff0c;帮助企业高效地处理大规模数据集…Kettle 简介 Kettle 最初由 Matt Casters 开发是 Pentaho 数据集成平台的一部分。它提供了一个用户友好的界面和丰富的功能集使用户能够轻松地设计、执行和监控 ETL 任务。Kettle 通过其强大的功能和灵活性帮助企业高效地处理大规模数据集成任务。 主要组成部分 Spoon 用途Spoon 是 Kettle 的图形化设计工具。用户可以使用 Spoon 设计和调试 ETL 转换和作业。功能拖放式界面、预览数据、测试 ETL 流程、管理连接、编写脚本等。 Pan 用途Pan 是一个命令行工具用于执行由 Spoon 设计的 ETL 转换。功能通过命令行执行转换、调度作业、集成到其他自动化流程中。 Kitchen 用途Kitchen 是一个命令行工具用于执行由 Spoon 设计的 ETL 作业。功能通过命令行执行作业、调度作业、集成到其他自动化流程中。 Carte 用途Carte 是一个轻量级的 Web 服务器提供远程执行和监控功能。功能远程执行和监控 ETL 转换和作业、查看日志、管理集群等。 Repositories 用途存储和管理 ETL 转换和作业的地方。功能可以使用数据库或文件系统作为存储库支持版本控制和共享。 主要功能和特点 数据提取 支持多种数据源如关系数据库、文件CSV、Excel、XML 等、大数据平台Hadoop、Hive 等、云存储Amazon S3、Google Drive 等、Web 服务和 API 等。 数据转换 丰富的转换步骤包括数据清洗、数据聚合、数据过滤、数据排序、数据连接、数据拆分、数据类型转换等。 数据加载 支持将数据加载到多种目标系统中如关系数据库、大数据平台、文件系统、云存储等。 调度和自动化 支持通过命令行工具Pan 和 Kitchen和调度器如 cron 或 Windows 任务计划进行调度和自动化执行。 扩展性 提供了插件机制用户可以编写自定义插件扩展 Kettle 的功能。支持 JavaScript 和 Java 进行脚本编写增强转换和作业的灵活性。 集群和并行处理 支持集群模式能够在分布式环境中并行处理大规模数据。提供了分布式 ETL 执行和负载均衡功能。 数据质量和数据治理 提供了数据验证、数据一致性检查和数据校验功能帮助确保数据的质量和一致性。 实时数据处理 支持实时数据流处理通过集成 Kafka、MQTT 等流处理平台实现实时数据的提取、转换和加载。 集成 Kettle 将 KettlePentaho Data Integration, PDI集成到 Spring Boot 项目中可以实现 ETL 流程的自动化和集成化处理。以下是详细的集成过程 准备工作 下载 Kettle从 Pentaho 官网下载 KettlePDI的最新版本并解压到本地目录。Spring Boot 项目确保已有一个 Spring Boot 项目或新建一个 Spring Boot 项目。 引入 Kettle 依赖 在 Spring Boot 项目的 pom.xml 文件中添加 Kettle 所需的依赖。你可以将 Kettle 的 JAR 文件添加到本地 Maven 仓库或直接在项目中引入这些 JAR 文件。 dependencies!-- Spring Boot 依赖 --!-- Kettle 依赖 --dependencygroupIdpentaho-kettle/groupIdartifactIdkettle-core/artifactIdversion9.4.0.0-343/version/dependencydependencygroupIdpentaho-kettle/groupIdartifactIdkettle-engine/artifactIdversion9.4.0.0-343/version/dependencydependencygroupIdpentaho-kettle/groupIdartifactIdkettle-dbdialog/artifactIdversion9.4.0.0-343/version/dependencydependencygroupIdorg.apache.commons/groupIdartifactIdcommons-vfs2/artifactIdversion2.7.0/version/dependency!-- 根据需要添加其他 Kettle 依赖 --!-- 操作数据库数据时添加相应的数据库依赖 --/dependencies处理密码加密 在 resources 目录下创建 kettle-password-encoder-plugins.xml 文件用于配置密码加密插件 password-encoder-pluginspassword-encoder-plugin idKettledescriptionKettle Password Encoder/descriptionclassnameorg.pentaho.support.encryption.KettleTwoWayPasswordEncoder/classname/password-encoder-plugin/password-encoder-pluginskettle-core依赖中org.pentaho.support.encryption.KettleTwoWayPasswordEncoder类实现了TwoWayPasswordEncoderInterface接口用于处理密码的加密和解密操作。 添加 Spoon 的任务文件 在 KettlePentaho Data IntegrationPDI中作业Job和转换Transformation是两种核心的 ETL 组件它们在设计和功能上有着本质的区别。 转换Transformation 数据处理流程转换是一个数据处理流程专注于数据的提取Extract、转换Transform和加载Load。行级处理转换以行级处理数据每次处理一行数据并将其传递给下一步骤。任务文件为.ktr文件。 作业Job 任务管理和控制流程作业是一个任务管理和控制流程负责调度和控制一系列任务的执行顺序。步骤级处理作业以步骤为单位处理任务每次执行一个步骤然后根据条件决定执行下一个步骤。任务文件为.kjb文件。 区别 转换处理数据行作业处理任务步骤。转换中的步骤是并行执行的而作业中的步骤是顺序执行的。转换侧重于数据的处理和转换作业侧重于任务的调度和管理。转换主要通过数据流控制作业提供了丰富的逻辑控制条件判断、循环、错误处理等。转换适用于复杂的数据处理流程作业适用于任务调度和控制。 在 Spring Boot 项目的 resources 目录下创建一个 kettle 目录并将 Kettle 的任务文件如 转换1.ktr复制到该目录中。 编写 Kettle 服务类 创建一个服务类用于执行 Kettle 转换或作业。 package com.example.kettletest.service.impl;import com.example.kettletest.service.KettleJobService; import org.pentaho.di.core.KettleEnvironment; import org.pentaho.di.core.exception.KettleException; import org.pentaho.di.core.exception.KettleXMLException; import org.pentaho.di.core.util.EnvUtil; import org.pentaho.di.job.Job; import org.pentaho.di.job.JobMeta; import org.pentaho.di.trans.Trans; import org.pentaho.di.trans.TransMeta; import org.springframework.core.io.ClassPathResource; import org.springframework.stereotype.Service;import java.io.File; import java.io.IOException;/*** author 罗森* date 2024/6/6 13:21*/ Service public class KettleJobServiceImpl implements KettleJobService {Overridepublic void runTaskFile(String taskFileName) {// 初始化 Kettle 环境try {KettleEnvironment.init();EnvUtil.environmentInit();} catch (KettleException e) {throw new RuntimeException(e);}// 执行任务文件if (taskFileName.endsWith(.ktr)) {taskFileKTR(taskFileName);} else if (taskFileName.endsWith(.kjb)) {taskFileKJB(taskFileName);} else {throw new IllegalArgumentException(Unsupported file type: taskFileName);}}/*** 针对kjb文件的操作* param taskFileName*/public void taskFileKJB(String taskFileName) {try {// 获取资源文件路径ClassPathResource resource new ClassPathResource(kettle/ taskFileName);File jobFile resource.getFile();// 加载 KJB 文件JobMeta jobMeta new JobMeta(jobFile.getAbsolutePath(), null);// 创建作业对象Job job new Job(null, jobMeta);// 启动作业job.start();// 等待作业完成job.waitUntilFinished();if (job.getErrors() 0) {System.out.println(There were errors during job execution.);} else {System.out.println(Job executed successfully.);}} catch (IOException | KettleXMLException e) {e.printStackTrace();}}/*** 针对ktr文件的操作* param taskFileName*/public void taskFileKTR(String taskFileName) {try {// 获取资源文件路径ClassPathResource resource new ClassPathResource(kettle/ taskFileName);File transFile resource.getFile();// 加载 KTR 文件TransMeta transMeta new TransMeta(transFile.getAbsolutePath());// 创建转换对象Trans trans new Trans(transMeta);// 启动作业trans.execute(null);// 等待作业完成trans.waitUntilFinished();if (trans.getErrors() 0) {System.err.println(There were errors during Transformation execution.);} else {System.out.println(Transformation executed successfully!);}} catch (IOException | KettleException e) {e.printStackTrace();}} }常见问题解决办法 运行后报错信息为Unable to find plugin with ID Kettle. If this is a test, make sure kettle-core tests jar is a dependency. If this is live make sure a kettle-password-encoder-plugins.xml exits in the classpath. **解决办法**在 resources 目录下创建 kettle-password-encoder-plugins.xml 文件。 运行后报错信息为ERROR (version 9.4.0.0-343, build 0.0 from 2022-11-08 07.50.27 by buildguy) : A serious error occurred during job execution: 无法找到作业的开始点. **解决办法**为Spoon制作的作业任务增加开始节点。 运行后报错信息为Cant run transformation due to plugin missing. **解决办法**此问题通常出现在涉及类似于导出excel文件、json文件时。在初始化 Kettle 环境之前指明相关插件的绝对路径相关插件通常在Kettle本地解压文件夹中的plugins目录下新增以下代码 StepPluginType.getInstance().getPluginFolders().add(new PluginFolder(E:\Kettle\pdi-ce-9.4.0.0-343\data-integration\plugins, false, true));将代码中的地址换成您本地的绝对地址。 END by luosen.
http://www.w-s-a.com/news/237546/

相关文章:

  • 网站建设可信赖北京网站开发月薪
  • 专门做lolh的网站wordpress 模版 cho's
  • 网上做设计兼职哪个网站好点网站开发毕业周记
  • 自学商城网站建设无为网页定制
  • wordpress全站cdn手机网站调用分享
  • 淄博做网站58同城wordpress微信号订阅
  • 不同的网站 做301公共资源交易中心是干嘛的
  • 36 氪 网站如何优化怎么优化自己的网站
  • 网站兼容问题湖北网站建设优化
  • 2018新网站做外链app制作的网站
  • 外贸网站建设怎么建设pc网站做移动端适配
  • 做经销找厂家好的网站个人备案网站可以做电影站吗
  • 网站搭建怎么做网站建设培训哪家好
  • 学做美食的视频网站企业网站备案密码怎么找回
  • 销售产品做单页还是网站seo有哪些作用
  • 网站视觉规范南宁网站优化推广
  • 公司起名打分最准的免费网站学设计的学校
  • 用cn作网站行么WordPress网站打不开nginx
  • 顺德龙江网站建设百货商城自助下单网站
  • 门户网站采用较多的模式是wordpress自动搜索缩略图
  • 深圳设计功能网站做网站推广怎么做
  • 海口专业网站建设地址wordpress站点标题是什么
  • 青岛做网站那家好网页素材网
  • 宁夏银川做网站的公司网络营销有哪些推广方法
  • 免费域名网站哪个最好东莞企业网站排名
  • dz做网站网址模版
  • 做外贸网站平台中华室内设计师网
  • 三大网络架构seo是啥职业
  • 一个域名可以做中英文两个网站吗搜索引擎营销的6种方式
  • 可以做ppt的网站天津网站建设怎么样