Advanced Parameters
This section covers advanced configuration options for FastBCP.
Run ID
The Run ID parameter --runid is a unique identifier for the current export operation. It can be used for tracking, logging, and monitoring purposes.
If not specified, FastBCP will generate a unique Run ID automatically.
If possible, inject the RunId provided by the caller (e.g., SSIS, Airflow, or any scheduler that supports a run identifier). This will greatly facilitate log correlation and troubleshooting.
./FastBCP \
...
--runid "export-2024-01-09-001" \
...
Syntax:
- Long form only:
--runid "<unique_identifier>"
Log Level
The Log Level parameter --loglevel controls the verbosity of logging output during export operations.
Available values:
Information(default): Standard logging with key operation detailsDebug: Verbose logging with detailed diagnostic information
./FastBCP \
...
--loglevel "Debug" \
...
Syntax:
- Long form only:
--loglevel "<Information|Debug>"
If a settings file is specified with --settingsfile, the log level defined in the settings file takes precedence unless overridden by the command-line parameter.
See Logging Overview for detailed information about logging configuration and output.
Settings File
The Settings File parameter --settingsfile allows you to store all FastBCP parameters in a configuration file, making it easier to manage complex exports and reuse configurations.
./FastBCP \
...
--settingsfile "/path/to/config/export-config.json" \
...
Syntax:
- Long form only:
--settingsfile "<path_to_json_file>"
See Logging Overview for examples of settings file configuration.
Config File
The Config File parameter --config allows you to define all FastBCP parameters in a YAML configuration file. This provides a more structured and readable way to manage export configurations compared to JSON settings files.
- Windows
- Linux
.\FastBCP.exe --config samples\sample_mssql_to_csv.yaml
./FastBCP --config samples/sample_mssql_to_csv.yaml
Syntax:
- Long form only:
--config "<path_to_yaml_file>"
YAML Configuration Example
Here's a complete example of a YAML configuration file:
# FastBCP – MSSQL to CSV using RangeId parallel method
#
# Usage:
# .\FastBCP.exe --config samples\sample_mssql_to_csv.yaml
connection:
type: mssql
server: localhost
database: tpch10_collation_bin2
trusted: true
source:
schema: dbo
table: orders
output:
file: "mssql_orders_{startdate}.csv"
directory: 'D:\temp\{database}\{schema}\{table}\full\'
delimiter: "|"
decimal_separator: "."
date_format: "yyyy-MM-dd HH:mm:ss"
encoding: UTF-8
performance:
method: RangeId
degree: -2
distribute_key_column: o_orderkey
merge: false
logging:
run_id: mssql_to_csv_parallel-2_rangeid
- Structured and readable: YAML format is more human-friendly than JSON
- Comments support: Add documentation directly in your configuration files
- Reusable configurations: Version control your export settings
- Simplified command-line: Reduce complex exports to a single
--configparameter
No Banner
Disable the FastBCP banner display in the command line output. This is useful for scripting or when you want cleaner output in automated processes.
Example:
./FastBCP \
...
--nobanner \
...
Syntax:
- Long form:
--nobanner
Using --nobanner is recommended when running FastBCP from scripts or CI/CD pipelines where you want to minimize console output or parse the results programmatically.
Complete Example
Here's a complete example using advanced parameters:
- Windows
- Linux
.\FastBCP.exe `
--connectiontype "oraodp" `
--server "localhost:1521/OraService" `
--database "tpch" `
--user "FastUser" `
--password "FastPassword" `
--sourceschema "TPCH" `
--sourcetable "ORDERS" `
--directory "D:\temp" `
--fileoutput "orders.xlsx" `
--encoding "UTF-8" `
--parallelmethod RowId `
--paralleldegree 7 `
--merge false `
--loglevel "Debug" `
--runid "oracle_to_excel_parallel_rowid" `
--settingsfile "C:\config\oracle-export.json" `
--nobanner
./FastBCP \
--connectiontype "oraodp" \
--server "localhost:1521/OraService" \
--database "tpch" \
--user "FastUser" \
--password "FastPassword" \
--sourceschema "TPCH" \
--sourcetable "ORDERS" \
--directory "/temp" \
--fileoutput "orders.xlsx" \
--encoding "UTF-8" \
--parallelmethod RowId \
--paralleldegree 7 \
--merge false \
--loglevel "Debug" \
--runid "oracle_to_excel_parallel_rowid" \
--settingsfile "/config/oracle-export.json" \
--nobanner
This example:
- Connects to an Oracle database using the RowId parallel method
- Exports ORDERS table to Excel format with UTF-8 encoding
- Uses 7 parallel threads with separate files (merge=false)
- Enables Debug logging for detailed diagnostics
- Uses a custom Run ID for tracking
- Loads additional configuration from a settings file
- Disables the banner for cleaner output