Configuration

This page provides information about how to set global configurations for the DataHub platform. You configure variables in the database, through the command-line interface, or in the appSettings.json file.  

Before changing any configuration settings, it’s important to understand the factors that influence transfer performance. These variables all have a significant effect, positive or negative, on the throughput that any migration will achieve. 

Environment Overrides and Precedence

Below is the order of precedence, in order from highest to lowest, in which DataHub reads the configuration once the database and service are online and installation is complete. If a variable is set in two locations, DataHub will override the setting in the lower source with the one in the higher source.

  1. License first

  2. Then database

  3. Then command-line

  4. Then environment variables

  5. Then appSettings.json

Changes to the appsettings.json file will not take effect until the DataHub services is restarted.

Available Configuration Options

The table below lists the global configuration options available to edit.

Object

Key

Description

Acceptable Values

Default Value

Applicable to appSettings.json Only

logging


level

Audit Level or Log Level
The application audit level and the default audit level for transfer jobs 
Logging options in order of most detail to least:

  • Trace

  • Debug

  • Info

  • Warn

  • Error

  • Fatal

Trace
Debug
Info
Warn
Error
Fatal

info

false

retention_days

The log retention duration in days

integer

21

false

metrics


graphite:host

The graphite server name to use when publishing metrics

string

(null)

true

graphite:port

The graphite server port (can be empty and will default based on server format)

integer

(null)

true

graphite:id

A node identifier to prefix all metric key names (useful to distinguish metrics coming from multiple nodes in a cluster)

string

(null)

true

office365


batch_item_limit

The default batch item limit in Office365

integer

100

false

batch_max_size

The default batch max total size in Office365

integer

(null)

false

batch_monitor_interval

The retry interval when monitoring Office365 batches for completion (ms)

integer

1000

false

batch_monitor_max_retries

The maximum number of retries when monitoring Office365 batches for completion

integer

86400

false

performance


parallel_writes

Performance Parallel Writes
The default number of parallel writes to use during transfer execution

integer
true
false

2

false

concurrent_transfers

Performance Concurrent Transfers
The default number of jobs to run in parallel

integer

6

false

upload

Performance Throttle Upload
The default bandwidth limiter to apply on uploads

integer

(null)

false

download

Performance Throttle Download
The default bandwidth limiter to apply on downloads

integer

(null)

false

transfers


encode_invalid_characters

Encodes invalid characters instead of replacing them with an underscore
The UTF8 bytes for invalid characters are used and converted to a hex string.
Example: 123白雜.txt would be converted to 123E799BDE99B9CE8.txt

true
false

false

false

Usage Examples

For each of the variable override options above, there exists a specific method of setting the variable that is called. In these examples, we will look at increasing the default concurrent transfer limit.

Database

To set the config option via the database, enter the following command with your desired option:

>skysync.exe config set performance:concurrent_transfers  10   --in-database

To clear the configuration option in the database, run the following:

>skysync.exe config clear --config-key performance:concurrent_transfers --in-database

Command-Line Interface

To set the config option via the command-line interface, enter the following with your desired option:

>skysync.exe --performance:concurrent_transfers= 10

appSettings.json File

To set the configuration option via your local appSettings.json file, add the following snippet with your desired option:

{
     "performance" : {
         "concurrent_transfers" :  "10"
     },
}

To see this in full context of your local appSettings.json file with multiple options enabled:

{
     "data" : {
         "provider" :  "sqlserver" ,
         "connection" :  "Server=server_location;Database=database_name;User ID=sa;Password=passW@rd!;" ,
         "embedded" :  "false" ,
         "native_encryption" :  "false"
     },
     "performance" : {
         "parallel_writes" :  6 ,
         "concurrent_transfers" :  10
     }
}


Changes to the appsettings.json file will not take effect until the DataHub services is restarted.

Related Links