ETLBox.Cli
3.8.0
dotnet tool install --global ETLBox.Cli --version 3.8.0
dotnet new tool-manifest
dotnet tool install --local ETLBox.Cli --version 3.8.0
#tool dotnet:?package=ETLBox.Cli&version=3.8.0
nuke :add-package ETLBox.Cli --version 3.8.0
ETLBox CLI - Command-Line ETL and Data Integration for .NET
Get Started | Overview | Code Examples | Licensing | Free Trial
What is ETLBox CLI?
ETLBox CLI is the command-line runtime for ETLBox DirectSync jobs. It executes data integration pipelines from a JSON config file and supports database-to-database, file-to-database, database-to-file, and file-to-file scenarios.
Use it to run ETL jobs in:
- local automation scripts
- CI/CD pipelines
- scheduled server jobs
- containerized workloads
Install
As .NET tool (recommended)
dotnet tool install --global ETLBox.Cli
Update an existing installation:
dotnet tool update --global ETLBox.Cli
Usage
Show version:
etlrun version
Run a DirectSync job with a config file:
etlrun directsync --config "directsync.config.json"
Example config (CSV to JSON)
{
"Source": {
"Type": "CSV",
"FileOptions": {
"ResourceType": "File",
"FileOrFolder": "./source.csv"
}
},
"Target": {
"Type": "JSON",
"FileOptions": {
"ResourceType": "File",
"FileOrFolder": "./target.json"
}
},
"Mapping": {
"Pairs": [
{ "Index": 0, "Source": "Id", "Target": "Id" },
{ "Index": 1, "Source": "Name", "Target": "Name" }
]
}
}
This will transform a source.csv with this content:
Id,Name
1,A
2,B
3,C
into a target.json with this content:
[
{ "Id": 1, "Name": "A" },
{ "Id": 2, "Name": "B" },
{ "Id": 3, "Name": "C" }
]
Example config (Database to Database)
{
"Source": {
"Type": "Database",
"DbConnectionOptions": {
"ConnectionType": "SqlServer",
"ConnectionString": "Data Source=localhost;Initial Catalog=SourceDb;Integrated Security=true;TrustServerCertificate=true;"
},
"DbOptionsSource": {
"TableName": "dbo.SourceTable"
}
},
"Target": {
"Type": "Database",
"DbConnectionOptions": {
"ConnectionType": "SqlServer",
"ConnectionString": "Data Source=localhost;Initial Catalog=TargetDb;Integrated Security=true;TrustServerCertificate=true;"
},
"DbOptionsDestination": {
"TableName": "dbo.TargetTable",
"UseMerge": true
}
},
"Mapping": {
"Pairs": [
{ "Index": 0, "Source": "Id", "Target": "Id" },
{ "Index": 1, "Source": "Name", "Target": "FullName" }
]
},
"Execution": {
"ExecutionOptions": {
"Limit": 100000
}
}
}
Exit codes
0: success1: execution failed2: invalid/missing config or startup error130: cancelled
Licensing & Support
For tutorials, licensing information, and full ETLBox documentation visit: www.etlbox.net
For support and inquiries, contact: support@etlbox.net
Documentation Links
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
We are constantly improving ETLBox - adding new features, fixing bugs, and enhancing performance to make data integration even easier.
For the latest updates and detailed release notes, visit: https://www.etlbox.net/release-notes/