Finish connections and passwords
The import writes one Hop connection per connection name to metadata/rdbms/, and
connections.csv lists every connection in every file with the name Hop gave it. Most need work
before the converted files can run. Do it in Hop GUI's Metadata perspective, with the output
folder open as a Hop project, and click Test on each connection.
Set every password
With Hop 2.20.0, no password survives the import. PDI stores passwords encrypted
(Encrypted 2be98…); Hop's Kettle import reads that value as plain text and encrypts it again, so
Hop then logs in with the encrypted string as the password. A connection without a password gets
the password Encrypted .
Set each connection's password in Hop. Better still, set it to a variable such as
${DWH_PASSWORD} and give the variable a value in each environment, so that passwords stay out of
the project.
Turn JNDI connections into connections Hop can open
A PDI connection with the access type JNDI names a data source in PDI's
simple-jndi/jdbc.properties. Hop has no JNDI: the import makes it a native connection, with the
JNDI name as the database name and the host and port the PDI file had, which usually connect to
nothing. The PDI samples' SampleDataAdmin.H2, for example, becomes an H2 connection to port 1521
on no host.
For each one, take the data source of that name from jdbc.properties, which looks like this:
DWH/type=javax.sql.DataSource
DWH/driver=org.postgresql.Driver
DWH/url=jdbc:postgresql://dwh.example.com:5432/dwh
DWH/user=etl
DWH/password=…
and either fill in the host, port and database of the native connection, or change its type to Generic database and paste the URL and driver class. Keep the connection's name: the pipelines and workflows use it.
-j <path>/jdbc.properties on hop-import also writes one connection per data source, but under
the data source's name, not the connection's: the samples' connection SampleDataAdmin.H2 names
the data source SampleDataAdmin, so -j adds a connection SampleDataAdmin that the converted
files do not use. Use it as a place to copy the URL from.
Complete connections imported as Generic
When the Hop that runs the import has no database plugin for a connection's type, the connection is
imported as GENERIC, with its other settings. The report's Connections without a Hop database
plugin section lists them, with their PDI type. Install the database plugin and import again, or
give each one its JDBC URL and driver class.
Check connections that share a name
PDI keeps connections in each file; Hop keeps one per name in the project. When files define the
same name with different settings, the import keeps the first it meets, and says so:
Connections with the same name and different configurations have only been saved once. The audit
lists them as Connections with one name and different settings.
Decide per connection which settings are right. Give the others a name of their own, or make the settings that differ variables of the environment.
Add the JDBC drivers
Hop cannot ship every JDBC driver, for licence reasons. The audit lists the connections whose
driver Hop does not ship, as JDBC drivers Hop does not ship. Copy the driver jars PDI uses, from
its lib/ folder, to <hop>/lib/jdbc in every Hop that runs the project.
Why and how to move, and how we help: Migrations to Apache Hop, and from Pentaho PDI in particular.