Executing Job or Transformation packaged in a zip file

Mar 30, 2008
Submitted by Feris Thia, Pentaho Community Member

When we prefer to design and execute our job/transformation arranged in regular .kjb & .ktr files instead of repository, we usually faced with a couple of problems :

  1. It is quite tedious to move and arrange them in production environment when we reached a quite bunch of the files. 
  2. We will having a file path problem when we execute it remotely using Carte.

And since Kettle use Apache VFSfor all its file system manipulation process, we can take advantage of its ability to access zip file - which is a very popular compression format in several operating system.

Zip Sample

Attached is the sample zip file which contains 1 job and 2 transformation files with very basic operation steps (Generate Rows), i.e :

  1. transformation_1.ktr
  2. transformation_2.ktr
  3. job_1.ktr

In which job_1.kjb call transformation_1.ktr and transformation_2.ktr respectively (Screenshot below).
 

Zip all the 3 files, named it job_package.zip and put it under C:\ETL_PRODUCTION directory.

Execute with Pan / Kitchen

You can refer to files inside the zipped package with the following URI format :

zip://arch-file-uri [! absolute-path ]

So, in our case if we want to execute transformation_1.ktr inside job_package.zip using Pan we do it with the following command :

 pan /file:"zip://C:\ETL_PRODUCTION\job_package.zip!transformation_1.ktr"

OR

 pan -file="zip://C:\ETL_PRODUCTION\job_package.zip!transformation_1.ktr"




And with the same manner in executing job job_1.kjb inside the package with the following command :

kitchen /file:"zip://C:\ETL_PRODUCTION\job_package.zip!job_1.kjb"

OR

 kitchen -file="zip://C:\ETL_PRODUCTION\job_package.zip!job_1.kjb"




This article is a complement to PDI Advanced FAQ on VFS usage