Skip to main content

Orchestrator

Wirekite has a main binary called the orchestrator. The actual binary is called wirekite. This is a top level binary which calls all the other binaries to execute the task of data movement. Note that other binaries can be called independently also for testing purposes.

Orchestrator Configuration File

Orchestrator takes a configuration file to understand what needs to be done. The configuration file has the following rules.
  1. The configuration variables can be represented using the format variable=value.
  2. Empty lines are allowed.
  3. Comments are allowed. A line starting with # is a full-line comment; the parser also strips inline comments — anything from whitespace + # to end of line is dropped (e.g., maxThreads=8 # tune this).
  4. Multilevel variables are allowed using the format parent.child=value.

Variables

The configuration file has the following main variables and allowed values.
string
home is the Wirekite installation directory.
string
source is the database type from which we are extracting. The possible values are
  1. mysql
  2. oracle
  3. postgres
  4. sqlserver
  5. spanner (CDC only)
string
target is the database type to which we are loading. The possible values are
  1. snowflake
  2. firebolt
  3. databricks
  4. bigquery
  5. spanner
  6. singlestore
  7. mysql
  8. postgres
  9. oracle
  10. sqlserver
  11. mongodb
string
log is the path to the orchestrator log file.
boolean
default:"false"
When set to true, the orchestrator preserves the existing position.pkt file and resumes from the last saved position. When false (or absent), the orchestrator truncates the position file before starting. The Web Interface sets this automatically when resuming a migration.

Modes

The mode of operation is declared explicitly using the mode variable in the configuration file.
string
required
The operation mode. Must be one of the values listed below.

Schema Modes

Schema modes must run independently and cannot be combined with data or change modes. The schema loader generates SQL files for the target database. These SQL files are not automatically executed on the target database during extraction — this is done in separate apply steps so you can make granular changes to the schema properties on the target database.

Data and Change Modes

In data and change modes, Wirekite automatically creates two metadata tables in the target database: wirekite_progress for tracking migration state and crash recovery, and wirekite_action for pause/stop/resume control. See Operations for details on monitoring and controlling running migrations.

Reset Modes

Validation Mode

Source and Target Child Variables

Both source and target variables have child variables that include the mode as part of the hierarchy. The format is source.<mode>.<variable>=value and target.<mode>.<variable>=value. For example, source.data.dsnFile is the connection string file for the data extractor and target.schema.schemaFile is the input schema file for the schema loader. The specific variables available depend on the source and target database types. For example if the source is mysql then the child variables can be any of the variables listed in mysql variables. If the target is snowflake then the child variables can be any of the variables listed in snowflake variables.

Mover Variables

The mover is an optional component that transfers files between the source and target. It is configured separately using the mover.<variable>=value format. The mover does not have a mode prefix since the same mover handles both data and change files.

Bringing It All Together

Below are example orchestrator configuration files for each mode.

Schema Mode Example

Schema mode extracts the database schema from the source and generates SQL files for the target. Schema extraction and application are separate modes.
To apply the extracted schema tables to the target, use mode=schema-apply-tables with the generated SQL file. Then use mode=schema-apply-objects to apply indexes, constraints, and foreign keys.

Data Mode Example

Data mode performs a one-time bulk data transfer from source to target.

Change Mode Example

Change mode captures ongoing changes (CDC) and applies them to the target. When running change mode independently you must specify the starting position for your source database type.

Data + Change Mode Example

Data and change modes can be combined using mode=data+change. The orchestrator will first complete the bulk data load, capture the source position automatically, and then start continuous change replication. Do not specify a starting position for the change source — the orchestrator captures this automatically during the data phase.