Kettle实战100篇 第22篇 资源库的使用

2024-05-08 20:48

本文主要是介绍Kettle实战100篇 第22篇 资源库的使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我们在前面的实战博客中,都是将我们的作业和转换文件保存在磁盘中,这在小规模的使用中是没有问题的,可是当我们的ETL工程越来越庞大时,一个团队需要更多的ETL工程师来开发ETL的过程时,单人作战就很不合适了,这就和我们开发人员写代码一样,多人协作时需要一个代码的协作平台(GIT、SVN等)来帮助我们管理代码版本,合并代码等操作

因此,当我们的ETL工程初具规模时,团队协作配合开发ETL时就需要Kettle为我们提供的资源库功能,资源库主要的特点:

  • 中心化:我们所有的转换、作业、调度等信息都保存在远程中心库上,可以远程更新、保存等,便于协作
  • 版本机制:提供完整的版本信息、记录ETL的操作信息,可以回溯版本
  • 安全性:文件保存在中央仓库,需要有数据权限的人才能更改ETL过程

另外一个比较方便的是我们在操作关系型数据库连接的同时,如果是使用资源库的方式进行保存的话,该资源库下所有的数据库都是引用关系,不需要重新建立DB连接操作,这很大程度上提高了工作效率.

Kettle为我们提供的资源库主要有三种类型:

  • 数据库资源库:我们所有的作业、转换等ETL信息都保存在数据库中
  • Pentaho资源库:Pentaho资源库的一个插件,在Kettle的企业版本中有这个插件
  • 文件资源库:文件资源库是在一个文件目录下定义一个资源库

我们使用数据库资源库这一类型作为我们的中央资源库,这种方式更加方便

初始化连接

那么我们应该如何使用资源库呢?

首先我们运行Spoon图形化程序时,在界面的右上角,我们会看到Connect这一工具栏,该工具栏代表的就是我们需要连接的中央资源库

此时,我们点击Connect,选择Repository Manager按钮,我们进行添加操作

选择数据库类型的资源库,然后点击Get Started按钮,接下来会让我们输入资源库的名称,选择数据库连接操作(如果没有则新建)

我使用的是Mysql数据库作为我的资源库,建立好连接,点击Finish完成,点击后,我们的数据库因为是一个空库,在此时Kettle会我们创建好相关的表结构、初始化表数据信息.

Kettle初始化完成后,在8.3版本中的资源库表结构如下图:

初始化完成后,我们就可以连接我们创建好的资源库了。点击Connect Now

输入用户名和密码,这里Kettle会为我们初始化两个用户:

  • admin:管理员用户,用户名和密码均是admin
  • guest:guest用户,用户名和密码军事guest

在数据库中的r_user表中

如果要修改密码的话,我们可以使用Kettle为我们提供的加密工具Encr.bat来完成加密,首先通过命令行

Encr.bat yourPassword

生成密文,然后在数据库查询面板通过update语句来更新密码即可

udpate r_user set password='pass' where ID_USER=1;

最后,连接成功后,右上角的工具类会显示用户名

接下来,新建转换、作业等信息都会保存在我们的资源库中

异常情况

有时候会出现连接不上资源库的情况,或者干脆右上角的Connect工具栏都消失了,碰到这种情况时,解决办事有两种

重启

关掉我们的Spoon程序,重新运行

清除重建

我们在本机操作保存的资源库名称链接信息,Kettle全部保存在我们的${USER_HOME}/.kettle/目录下

主要在文件repositories.xml

保存结构如下:

Connect如果是消失的情况下有可能是该文件信息中存在乱码的情况,清除乱码即可

或者将该文件的所有connection节点信息全部删除,再运行Spoon程序时,重新建立资源库的连接即可.

这篇关于Kettle实战100篇 第22篇 资源库的使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

python使用try函数详解

《python使用try函数详解》Pythontry语句用于异常处理,支持捕获特定/多种异常、else/final子句确保资源释放,结合with语句自动清理,可自定义异常及嵌套结构,灵活应对错误场景... 目录try 函数的基本语法捕获特定异常捕获多个异常使用 else 子句使用 finally 子句捕获所

C++11右值引用与Lambda表达式的使用

《C++11右值引用与Lambda表达式的使用》C++11引入右值引用,实现移动语义提升性能,支持资源转移与完美转发;同时引入Lambda表达式,简化匿名函数定义,通过捕获列表和参数列表灵活处理变量... 目录C++11新特性右值引用和移动语义左值 / 右值常见的左值和右值移动语义移动构造函数移动复制运算符

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali