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
- User Setup: Create a properly configured Firebolt user
- Engine: Ensure a Firebolt engine is available for loading operations
- Database: Create the target database
AWS S3 Requirements
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.
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.
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.Orchestrator Configuration
When using the Wirekite Orchestrator, prefix parameters withmover., target.schema., target.data., or target.change..
Example orchestrator configuration for Firebolt target:
