`
vase
  • 浏览: 422242 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Kettle环境变量在ETL工程上的应用

 
阅读更多

    好久没更新博文,最近临近离职,事情少了,有空停下来总结总结这段时间的东西。    今天先记录下Kettle环境变量的应用。

    一个好的环境变量的使用,在业务变更或者环境变动后,只需要很少工作量的修改即可完成。我们把变量分成系统环境变量和业务变量,系统环境变量是指那些在ETL中指定的系统级资源配置,如数据库信息、日志文件路径等等,这些变量一旦设定,不会经常变动;业务变量指跟当前ETL执行处理的内容有关,如日期、产品ID等等,跟运行时有关。开始我们很容易的会想到将经常变动的设为业务变量,在运行时通过参数传入,而往往忽略那些不常变动的内容被写死,一旦遇到环境迁移或者像增加udf的自定义(这个可用在数据库连接高级设置中,在连接成功后先执行若干SQL,后边才执行业务SQL,会在后边做详细点的介绍),就需要做大量更新配置工作。

     系统环境变量可设置到 $HOME/.kettle目录下的kettle.properties中,但是在多工程ETL服务器上这样的设置容易导致混淆,这时可以把每个工程中的系统变量提取到当前工程kettle配置的目录下,如我们有bi、dw、finance等多个工程,在每个工程目录下建common目录作为公共配置目录,再将数据库信息配置文件db.properties放到该目录下,并增加一个transformation来读取该配置文件,然后解析文件中的键值对,最后将这些键值对设置成系统变量,如下三个步骤:1. 读取文件内容,根据“=”进行K-V分隔;2. 保留key、value,去除其他有步骤1产生的字段;3.通过javascript将k-v设置成环境变量 (这里要感谢下Jayon同学贡献的transformation)


 

读取文件配置



 



 

通过selected插件只保留key和value字段



 

通过javascript动态将k-v设置成系统变量
 

 

这样,就可以在后边的transformation中的数据库连接中直接使用db.properties 中定义好的变量,一但环境发生变动(如服务器迁移等),只需要修改配置文件即可。

 

本地测试小技巧:可以根据负责工程的内容,将使用到的配置变量copy到本地$HOME/.kettle/kettle.properties中,在启动spoon后会自动加载kettle.properties中的变量,这样就可以无障碍在本地进行测试了。

 

 接下来说下数据库连接的高级配置中,在连接成功后执行的SQL如何配置。

在数据库连接成功后,我们经常需要对当前session设置一些内容,如Mysql设置字符集set names gbk; Hive中定义自定义函数,等等;因为Table Input插件中的SQL填写框中只能写一条当前业务SQL,这些对session预设置的内容,可以放到高级选项中。



 如上图,我们定义了好多自定义函数来实现我们自己特有的业务逻辑;配置到这里是没问题的,但是这样写死,一旦以后项目的包名规则重构,就需要全部逐个进行进行修改kettle配置。其实这个预处理也可以定义为变量,虽然UI边上没有可使用变量的小图标。

这里变量的定义需要注意一点,在properties文件定义中,换行符意味着当前值的结束;为了阅读方便,我们还是有必要每条SQL写在一行或者多行上,换行是需要加转义符“\",如下

HIVE_PRE_SQL = add jar /data/lib/java/hive/udf/Hive_UDF.jar; \
                             add file /data/lib/java/hive/udf/GeoIP.dat;


 

  • 大小: 20.2 KB
  • 大小: 70 KB
  • 大小: 43.6 KB
  • 大小: 32 KB
  • 大小: 36.4 KB
  • 大小: 74 KB
分享到:
评论

相关推荐

    ETL工具Kettle用户手册.pdf

    文档还提到了环境变量的设置,这是一个关键点,因为正确的环境变量配置是确保转换能在正确的上下文中运行的关键。同样,Kettle还支持Apache虚拟文件系统(VFS),这使得Kettle可以访问和处理存储在远程服务器或本地...

    kettle install

    标题与描述概述的知识点主要集中在Kettle的安装过程上,Kettle是一款强大的数据集成工具,由Pentaho公司开发,广泛应用于数据清洗、转换、加载(ETL)等任务。以下将深入解析Kettle的安装步骤及注意事项,帮助读者更...

    Kettle配置

    - 修改`Path`环境变量,在原有的基础上添加`%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;`。这样可以确保系统能够在任何位置执行JDK的命令。 ##### 2. Kettle配置 完成JDK配置后,接下来就是配置Kettle本身。 - **安装...

    Kettle从零开始

    ### Kettle从零开始知识...通过上述知识点的梳理,我们可以了解到Kettle作为一款强大的ETL工具,在数据处理领域具有广泛的应用前景。无论是对于初学者还是经验丰富的开发者来说,掌握Kettle的基本操作都是十分必要的。

    PDI构建开源ETL解决方案_.pdf、开源ETL工具-PentahoKettle使用入门.pdf

    5. **最佳实践**:如何编写高效、可维护的ETL流程,以及在实际项目中的应用案例。 学习这两份资料,开发者能够全面理解PDI的使用方法,掌握ETL流程的设计与实现,从而在数据处理领域中游刃有余。无论是数据分析师、...

    kettle使用手册及培训手册大全-教程

    【Kettle】是一种强大的ETL(提取、转换、加载)工具,主要用于数据仓库的构建和数据集成。由Pentaho公司开发,它以其图形化的工作流设计和灵活的数据处理能力而受到广泛赞誉。本资源集合包含了`kettle用户手册.pdf`...

    Kettle (pdi-ce-6.1.0.1)常用组件使用手册

    7. **变量和参数**:Kettle支持使用变量和参数来动态配置作业和转换,这使得在不同环境下的部署和重用变得更加方便。 8. ** Spoon工具**:Spoon是Kettle的主要图形化开发工具,用户可以通过拖拽组件、配置属性、...

    kettle帮助文档

    《Kettle Spoon 2.5.0用户手册:探索ETL工具的强大功能》 Kettle,也称为Pentaho Data Integration(PDI),是一款强大的开源提取、转换和加载(ETL)工具,专为处理数据集成任务而设计。Spoon是Kettle的主要图形化...

    pdi-ce-9.3.0.0-428a安装包-1(kettle)

    在安装PDI后,用户需要配置数据连接、设置环境变量、安装和配置可能需要的额外插件,以便充分利用其功能。在实际应用中,PDI通常与其他工具如Hadoop、Spark、Hive等一起使用,以实现大数据处理和分析的完整流程。...

    Spoon_3_0_0_GA_User_Guide

    环境变量在整个应用程序范围内有效,而Kettle变量则仅在当前的转换或作业中有效。 **9.3 环境变量与Kettle变量** 环境变量是由操作系统定义的,而Kettle变量则是由用户在Spoon中定义的。这两种类型的变量可以根据...

    计算机学院专业方向综合实践(AHPU)

    - **Java 开发环境的安装与配置**:包括JDK的下载与安装、环境变量设置等。 - **案例实现**:通过具体的小型项目来实践Java编程技巧。 **模块二/三:电影推荐系统与电信行为分析案例实践** - **大数据实验环境搭建*...

Global site tag (gtag.js) - Google Analytics