Data Import v2.3 is now in Docker configuration to run in containers. This page includes details for custom implementations and advanced usage of Data Import running within Docker. For information on the ODS / API running in Docker, please see Docker Deployment 2.x.
Docker and Docker Compose
These details assume readers are familiar with Docker and Docker Compose. If these tools are new to you, please be sure to read Docker's own documentation to familiarize yourself before utilizing this documentation.
Table of Contents
Data Import Docker Composition
Below is a minimal Docker Compose file for Data Import and accompanying .env file. It includes images for the Data Import application, backing PostgreSQL database, and PgBouncer connection pool.
Some possible adaptations include:
running this composition wholesale alongside an ODS/API solution deployed using Docker or other methods
adding the below services and volumes to an existing ODS/API Docker composition and redeploying
using the
dataimportservice as an example for plugging in to a composition with an existing database, updating the
POSTGRES_HOSTand other DB settings accordingly
Note that the commented out values below are not are included in the above service configuration for Data Import . Make sure configured values are passed through to the service in the environment section.
Using Other Databases
The above configuration is designed with a dedicated PostgreSQL server and connection pool as containers. If you wish to connect to a different postgreSQL instance or otherwise modify that setup, simply change the POSTGRES_ variables to match your environment. If you are not using the postgres or pgbouncer services, make sure to remove them from your orchestration.
Connecting to a MSSQL Database Server
To connect to a Microsoft SQL Server instance you must have a valid SQL username and password. It possible to leverage a Docker container or an instance installed on the host or elsewhere, but if using the latter options, consider the host/container networking relationship.
Change "DATABASE_ENGINE" on .env file to
SqlServerRemove
POSTGRES_environment settingsUpdate
CONNECTIONSTRINGS__DEFAULTCONNECTIONto a valid connection stringSQL username/password must be used to connect, as opposed to Integrated Security
Upgrading Data Import
From A Previous Non-Docker Deployment
Migrating Databases
Migrating the Data Import database from outside of Docker into a Docker container is not supported, as the ODS/API connection information will not be functional and schemas may differ between MSSQL Server and PostgreSQL. If this is a necessity, you may perform such a migration yourself manually and correct any errors that occur.
Alternatively, you may export relevant Data Maps, Bootstraps, and Preprocessors to files and re-import them on the new installation, or re-load from Template Sharing and adjust them as needed. In this case, you will need to re-establish ODS/API connections and configure Agents to match your previous installation. Consider completing the Docker installation and configuration before uninstalling the previous version to verify the setups match.
To upgrade from an existing Data Import installation that is outside of Docker, execute the following steps:
If you are using the same database, Make a backup of the Data Import database, for safety.
The installer is capable of automatically upgrading the content of the existing database, so the uninstall/install process can use the same database.Make a backup of the Data Import configuration files for any values you may have set here. Note especially your
EncryptionKeyvalue which appears the same in both files. Copy this especially as it will be re-used in the new Data Import installation. The files to check differ for versions less than 1.3.0:1.2.0: The web application "Web.config" and the Transform/Load application's "DataImport.Server.TransformLoad.exe.config"
1.3.0+: The web application "appsettings.json" and the Transform/Load application's "appsettings.json"
Stop the previous Data Import application and website from Internet Information Server
Run the Docker Installation
Update configuration values to match those copied above
Verify the website is running correctly in Docker
Manually delete the previous Data Import application, website, and app pools from Internet Information Server.
From An Existing Docker Deployment
To upgrade from an existing Docker deployment:
Make a backup of the Data Import database, for safety. The installer is capable of automatically upgrading the content of the existing database, so the uninstall/install process can use the same database.
Update the image tag for the Data Import service in your composition to the new version
Note and update of any new environment variables which may need configured and that your current environment variables have not changed
pay close attention that the
ENCRYPTION_KEYsetting does not change
Redeploy the docker composition
The following links contain relevant source code and published images: