Skip to main content

Overview

Wirekite supports Firebolt as a target data warehouse for:
  • Schema Loading - Create target tables from Wirekite’s intermediate schema format
  • Data Loading - Bulk load extracted data via AWS S3 staging
  • Change Loading (CDC) - Apply ongoing changes using MERGE operations
Firebolt loaders stage data through AWS S3 buckets before loading using Firebolt’s COPY SQL command.

Prerequisites

Before configuring Firebolt as a Wirekite target, ensure the following requirements are met:

Firebolt Configuration

  1. User Setup: Create a properly configured Firebolt user
  2. Engine: Ensure a Firebolt engine is available for loading operations
  3. Database: Create the target database

AWS S3 Requirements

An AWS S3 bucket is required for staging data. The bucket must be:
  • In the same AWS Region as your Firebolt database
  • Accessible for read/write from the loader host
  • Accessible for read from Firebolt
Install the AWS CLI tool (aws) for managing the bucket. Run aws configure to set up shell-level authentication. AWS CLI install instructions

Internal Tables

Ensure the Wirekite target metadata tables (wirekite_progress and wirekite_action) exist in your Firebolt database. Use the Wirekite cmdline tool to verify connectivity.

Schema Loader

The Schema Loader reads Wirekite’s intermediate schema format (.skt file) and generates Firebolt-appropriate DDL statements for creating target tables.
Firebolt does not support FOREIGN KEYs or external CHECK constraints. The Schema Loader will generate empty files for these. Column-level constraints (NOT NULL) are included in CREATE TABLE.

Required Parameters

string
required
Path to the Wirekite schema file (.skt) generated by the Schema Extractor. Must be an absolute path.
string
required
Output file for CREATE TABLE statements. Includes both base tables and merge tables for CDC operations.
string
required
Output file for constraints (always empty for Firebolt). Required but the file will be empty.
string
required
Output file for FOREIGN KEY constraints (always empty for Firebolt). Required but the file will be empty.
string
required
Absolute path to the log file for Schema Loader operations.

Optional Parameters

string
default:"none"
Output file for DROP TABLE IF EXISTS statements. Set to “none” to skip generation.
string
default:"none"
Output file for recovery table creation SQL. Set to “none” to skip.
boolean
default:"true"
When true, generates merge tables for CDC operations. Set to false if only doing data loads without change capture.

Data Mover (AWS)

The Data Mover uploads extracted data files to an AWS S3 bucket for subsequent loading into Firebolt.

Required Parameters

string
required
AWS S3 bucket name (without s3:// prefix) for staging data files.
string
required
AWS Region where the S3 bucket resides (must match Firebolt region).
string
required
Local directory containing data files (.dkt) from the Data Extractor.
string
required
Absolute path to the log file for Data Mover operations.

Optional Parameters

string
AWS credentials in format: aws_access_key_id=KEY,aws_secret_access_key=SECRET. Only required if AWS access isn’t configured via IAM roles or environment.
integer
default:"10"
Maximum number of parallel upload threads.
boolean
default:"false"
When true, compresses files with gzip before uploading. Changes extension to .dgz.
boolean
default:"true"
When true, deletes local files after successful upload to S3. Should be true in production to save disk space.

Data Loader

The Data Loader reads data files from AWS S3 and loads them into Firebolt tables using COPY commands.

Required Parameters

string
required
Path to a file containing the Firebolt connection string.
Connection string format:
Example:
string
required
AWS S3 bucket name (without s3:// prefix) where data files were staged.
string
required
Path to the Wirekite schema file used by Schema Loader. Required for table structure information.
string
required
Absolute path to the log file for Data Loader operations.

Optional Parameters

string
default:"us-east-1"
AWS Region where the S3 bucket resides.
string
AWS credentials in format: aws_access_key_id=KEY,aws_secret_access_key=SECRET. Only required if AWS access isn’t set up in Firebolt.
integer
default:"5"
Maximum number of parallel threads for loading data. We recommend setting this to the number of CPUs on the host.
boolean
default:"false"
Set to true if data was extracted using hex format instead of base64.
boolean
default:"false"
When true, counts rows in temporary tables before inserting (for progress tracking).
boolean
default:"true"
When true, removes files from S3 after successful loading to Firebolt.

Change Loader

The Change Loader applies ongoing data changes (INSERT, UPDATE, DELETE) to Firebolt tables using MERGE operations with shadow tables.
The Change Loader uploads intermediate change data to S3 before executing MERGE. The same S3 bucket used for data loading can be used.

Required Parameters

string
required
Path to a file containing the Firebolt connection string.
Connection string format:
string
required
AWS S3 bucket name (without s3:// prefix) for staging change data.
string
required
AWS Region where the S3 bucket resides.
string
required
Directory containing change files (.ckt) from the Change Extractor.
string
required
Working directory for intermediate CSV files before uploading to S3.
string
required
Path to the Wirekite schema file for table structure information.
string
required
Absolute path to the log file for Change Loader operations.

Optional Parameters

string
AWS credentials in format: aws_access_key_id=KEY,aws_secret_access_key=SECRET. Only required if AWS access isn’t set up in Firebolt.
integer
default:"60"
Maximum number of change files to process in a single batch before executing MERGE.
integer
Number of parallel threads for applying merge operations within each batch. Defaults to 2x the number of CPU cores on the host.
boolean
default:"true"
When true, removes change files from inputDirectory after fully processing.
The Change Loader should not start until the Data Loader has successfully completed the initial full load.

Orchestrator Configuration

When using the Wirekite Orchestrator, prefix parameters with mover., target.schema., target.data., or target.change.. Example orchestrator configuration for Firebolt target:
For complete Orchestrator documentation, see the Execution Guide.