Skip to main content

Import into a Hop project

For a real migration, import into the Hop project the workflows and pipelines will live in, rather than into a loose folder. Hop GUI reads connections from the metadata folder of the active project, so connections written elsewhere are not found.

1. Import​

In Hop GUI, use File → Import from SSIS… and pick the project on the Target tab. From the command line, use the standalone jar and give the project's home folder as the output folder:

java -jar importer-ssis.jar -o <project-home> \
--pipeline-run-configuration <pipeline-run-config> \
--workflow-run-configuration <workflow-run-config> \
<packages-folder>
  • The connections and run configurations go to <project-home>/metadata, the default metadata folder of a Hop project. If your project uses another one, add -m <metadata-folder>.
  • The run configurations are set on every pipeline and workflow action and executor the import generates. Without them, local is used, and created if the project does not have one; an existing local is left as it is.
  • --skip-existing is on by default, so importing again does not overwrite a pipeline you have already finished by hand. Use --no-skip-existing to overwrite.
  • The --project <name> option needs the Hop projects plugin to find the project, so it works in the Hop GUI dialog but not in the standalone jar. hop-import in Hop 2.19 takes neither the project nor the run configurations.

2. Create the environment​

When a project has project parameters, the import writes them to environments/<project>-config.json in the output folder, named after the project's folder (a folder Sales gives sales-config.json). The report's Project parameters section names the file. Register it as a Hop environment of the project:

<hop>/hop-conf.sh -ec -e sales -ep <hop-project> -eg <path>/environments/sales-config.json

Run with that environment (-e sales on hop-run, or the environment selector in Hop GUI) and the workflows get the parameters' values. Sensitive parameters are written with an empty value: SSIS does not store them. Set them in the environment.

Package parameters and variables are not in the environment: they become parameters of the package's workflow, with their design-time values as defaults.

3. Set the Hop settings​

SSIS and SQL Server keep an empty string apart from NULL; Hop does only when HOP_EMPTY_STRING_DIFFERS_FROM_NULL is Y. Without it, empty strings the packages read or write become NULL. Set it for every Hop that runs the converted packages: in Hop's configuration, or as -s HOP_EMPTY_STRING_DIFFERS_FROM_NULL=Y on hop-run.

If the dimension tables of a Slowly Changing Dimension use a case-sensitive collation, also set the variable SSIS_KEYS_IGNORE_CASE to N; by default the converted SCD compares business keys without case and trailing spaces, as SQL Server's default collation does.

4. Finish the connections​

SSIS does not store passwords in clear text, and Windows authentication needs a decision. See Finish connections and passwords.