Working with Pentaho Kettle Transformations Found on Archive.org
Pentaho Kettle, the older name for what is now called Pentaho Data Integration or Spoon, generates XML-based transformation files with the .ktr extension. These files contain the full definition of your data flows — steps, hops, database connections, and all. When people share these publicly, they often end up on the Internet Archive. I've spent years pulling old ETL jobs off archive.org to reverse-engineer patterns, migrate legacy pipelines, or just understand how someone solved a problem I was currently stuck on. The phrase "Kettle Cadaver" tends to refer to the practice of dissecting downloaded .ktr files to understand their internals. "A Taste Of Blood" is a specific transformation or sample project that circulates in archive collections. It's not official Pentaho documentation — it's community-shared material, usually posted by someone who wanted a public record of how their pipeline worked. I found my first copy of it while searching the Wayback Machine for abandoned Pentaho server configs back in 2019. Here's how I actually go about finding and using these files in practice.
First, I search the Internet Archive directly using terms like "kettle transformation," "pentaho ktr," or the specific project name. The search indexes metadata fields including descriptions, uploader notes, and sometimes the raw XML content if it was text-encoded in the archive record. You'll find results ranging from fully documented pipelines to files uploaded with nothing but a filename and a timestamp. The quality variance is extreme. Once you download a .ktr file, the immediate problem is that Spoon won't always open it cleanly. These files are XML, but they often embed base64-encoded images, serialized Java objects, or database credentials in plaintext. I learned this the hard way when I tried to import a transformation that contained an obfuscated password field from an older Pentaho version. Spoon threw a "step definition not found" error that pointed nowhere useful. The workaround was extracting the XML with a text editor, stripping out the database block with the encrypted connection string, and replacing it with a fresh connection definition after opening the file. Takes about ten minutes once you know where to look. The structure of a Kettle transformation file is straightforward if you're willing to read it without Spoon. The root element is step>, hop>, and database>. Each step has a type attribute — TableInput, ScriptModJava, ExcelOutput — that tells you what the step does. The hops connect steps and carry field definitions. If you're doing batch analysis on a collection of transformation files, a simple Python script parsing the XML will let you catalog every step type across dozens of .ktr files in under a minute.
One thing most people miss when working with archive-sourced Kettle files is the version mismatch problem. Pentaho DI has gone through enough major version jumps that a transformation saved in version 8.x will frequently fail to load in 9.x or 10.x. The step definitions themselves often change between releases. I ran into this with a 2016-era transformation that used the GetFileList step with a deprecated path-matching syntax. Spoon 10 would load the file but the step showed as red — meaning it couldn't resolve the configuration. I had to manually edit the XML to swap the old step type for the newer equivalent and rewrite the path parameters. About twenty minutes of surgery per file. Another counter-intuitive detail: Kettle files frequently reference external plugins and custom Java classes that aren't part of the standard distribution. If a transformation includes a CustomJava or third-party step, and you don't have that plugin installed, Spoon marks the step as invalid but doesn't tell you which JAR file is missing. I keep a checklist of common plugins — ExcelInput, MySQLPlugin, ScriptValuesMod — and verify them against the dependencies section of the XML before attempting to open anything. This saves me from the false assumption that a broken file is corrupted when it's actually just missing a plugin. There are real limitations to relying on Internet Archive for Kettle resources. The files are what people chose to share, which means they're often incomplete — missing the sample data, the config files, or the README that explained the business logic. You might get a .ktr file but no idea what database it connected to or what the expected output schema was. I've spent hours trying to make a transformation work only to discover the source system it pulled from has been decommissioned for five years. In those cases, the transformation is academically interesting but practically useless unless you can reconstruct the data source.
Get the Full Details

If you're looking to build something from scratch rather than salvage old work, the official Pentaho documentation and the community forums at forums.pentaho.com are more reliable starting points. But if you need to understand how someone solved a specific ETL problem — say, handling incremental loads from a legacy system or implementing a complex lookup chain — archive.org is a legitimate resource. Just go in expecting to do some cleanup work after the download. The practical workflow I use now is: search archive.org, download the .ktr, open it in a text editor first to check for version stamps and known problematic step types, then load it into Spoon only after I've identified what needs fixing. That pre-flight check cuts down import failures from roughly half my attempts down to about one in five. Most of the rest just need a database connection reconfigured or a plugin added to the plugins directory. I keep a folder of useful transformations I've salvaged from the archive, organized by step type and Pentaho version. It's grown to about forty files over three years. Some of them still run in production at companies I've consulted for. Others sit there as reference material for when I need to remember how a particular pattern works. That's honestly the most realistic outcome of digging through these kinds of archive resources — not a ready-to-deploy pipeline, but a library of patterns you can adapt when you're stuck on a similar problem.