Starting with Data Import 1.3, the application is now packaged 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.
Version 1.3+ Only
Docker deployment is only available starting with Data Import 1.3.0. See Docker Hub for all available versions
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
dataimport
service as an example for plugging in to a composition with an existing database, updating thePOSTGRES_HOST
and 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.
- Remove
POSTGRES_
environment settings - Change
APPSETTINGS__DATABASEENGINE
toSqlServer
- Update
CONNECTIONSTRINGS__DEFAULTCONNECTION
to a valid connection string.
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
EncryptionKey
value 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_KEY
setting does not change
- pay close attention that the
- Redeploy the docker composition