Release Notes 1.5
Your SQL Server backups are now a data source. FastBCP 1.5 reads tables straight
from .bak files and exports them to Parquet — no restore, no SQL Server instance, no extra disk space.
Point FastBCP at a backup directory. No server to provision, no credentials, no restore window.
Faster than reading the live database: 1.5× adbc_mssql, 3.6× mssql.
The backup is read in place, out of core, and never loaded in memory.
What's New: At a Glance
| New source | --connectiontype backup_mssql: export tables from SQL Server full backups (.bak), striped or not, compressed or not | |
| Doc Wizard | backup_mssql in the ADBC connectors, and → to accept a suggested value | |
| Licence | A licence file is now always required, the 30-day trial included — see what changes | |
| Faster drivers | ArpeMSSQL 4-way parallel reads up to 2× faster, faster Oracle NUMBER reads |
SQL Server Backup Files — --connectiontype backup_mssql
Need the data of a production database for analytics, an audit or a migration, but don't want to touch the production server — or restore a multi-terabyte backup first? FastBCP now reads full backups directly through the embedded ArpeMSBackup ADBC driver.
--serveris the directory holding the backups.--databaseis the backup file, or a pattern matching it.- That's it: no user, no password, no SQL Server.
- Windows
- Linux
.\FastBCP.exe `
--connectiontype backup_mssql `
--server "D:\Backups\MSSQL" `
--database "tpch_full.bak" `
--sourceschema "dbo" `
--sourcetable "orders" `
--directory "D:\export\orders" `
--fileoutput "orders.parquet" `
--parallelmethod Physical `
--paralleldegree 8
./FastBCP \
--connectiontype backup_mssql \
--server "/var/opt/mssql/backup" \
--database "tpch_*.bak" \
--sourceschema "dbo" \
--sourcetable "orders" \
--directory "/export/orders" \
--fileoutput "orders.parquet" \
--parallelmethod Physical \
--paralleldegree 8
Faster Than the Live Database
FastBCP to Parquet, degree 8, TPC-H.
| Table | Source | Throughput | |
|---|---|---|---|
orders (15 M rows) | backup_mssql, uncompressed backup | ≈ 5 M rows/s | |
backup_mssql, MS_XPRESS / ZSTD backup | 2.1 – 2.6 M rows/s | ||
adbc_mssql on the live database | 3.3 M rows/s | ||
mssql on the live database | 1.4 M rows/s | ||
lineitem clustered columnstore (60 M rows) | backup_mssql | 2.8 M rows/s | |
adbc_mssql on the live database | 2.4 M rows/s |
What It Reads
| Supported | ||
|---|---|---|
| SQL Server versions | 2017, 2019, 2022 and 2025, on Windows or Linux | |
| Backup types | Full and copy-only full backups, uncompressed or compressed with MS_XPRESS or ZSTD, any BLOCKSIZE / MAXTRANSFERSIZE | |
| Striped backups | TO DISK = a, DISK = b, …: a pattern (--database "tpch_*.bak") or a ;-separated list, in any order | |
| Several backups in one file | WITH NOINIT: the last full backup of the file is read | |
| Database layout | Several data files and filegroups | |
| Rowstore tables | Heaps, clustered indexes, partitions, ROW / PAGE compression | |
| Columnstore tables | Clustered columnstore, archive compression and open delta store included | |
| Data types | Every SQL Server type: LOBs and row-overflow, xml, sparse columns, persisted computed columns, sql_variant (as text) — see the datatypes mapping |
- Parquet output only, on Windows x64 and Linux x64.
--parallelmethodacceptsNoneandPhysical(which resolves to the new Pages method).--queryacceptsSELECT * | col1, col2, … FROM [schema.]table.- Refused with a clear message: TDE databases and encrypted backups (
WITH ENCRYPTION), which cannot be read without the server certificate; files without a full backup; incomplete stripe sets or stripes from different backups.
See also: SQL Server backup files · Examples
Doc Wizard
- The Doc Wizard offers
backup_mssqlin the ADBC (High Performance) connectors. The server field becomes the backup directory (Windows or Linux path, following the chosen platform), the database field the backup file, and onlyNoneandPhysicalare offered as parallel methods. - Type less: in an empty field, the → (right arrow) key takes the suggested value.
Licence
A licence file is now always required, including for the free 30-day trial: request your trial licence at arpe.io. The build-date trial and the trial token embedded for the ADBC drivers are gone. --help and --version still run without a licence.
- Lookup order: the default
FastBCP.licis searched in the current directory, then next to the executable. - One file for everything: a licence file can hold several blocks (FastBCP, ADBC drivers, other products) in any order.
- ADBC drivers: the licence is passed to the drivers automatically (internal improvement). A driver licence of your own (
--sourceconnectstring,ARPEIO_ADBC_LICENCE/ARPEIO_ADBC_LICENCE_FILE) wins, and a damaged ADBC block is reported as such. - Exit code 99: an
adbc_*orbackup_mssqlrun with no ADBC driver block (and noARPEIO_ADBC_LICENCE/ARPEIO_ADBC_LICENCE_FILE) now stops with exit code 99 instead of falling back to a trial token.
See License.
Driver Improvements
- ArpeMSSQL 0.7.8 — up to 2× faster parallel reads on 4-way parallel exports (internal improvement). Also fixes a crash when the thread that loaded the driver exits.
- ArpeOracle 0.4.3 — faster
NUMBERto float64 reads, and choice of the Native Network Encryption integrity algorithm withadbc.arpeoracle.data_integrity_types. - ArpeTeradata 0.3.5 —
uriand ADO.NETconnection_stringare parsed, like the other drivers.
Dependencies
| Component | Version |
|---|---|
| ArpeMSBackup ADBC driver | 0.1.6 (new) |
| ArpeMSSQL ADBC driver | 0.7.8 |
| ArpeOracle ADBC driver | 0.4.3 |
| ArpeNetezza ADBC driver | 0.3.8 (no driver code change) |
| ArpeTeradata ADBC driver | 0.3.5 |
| AdbcFileExport | 0.5.5 (arpemsbackup driver profile) |
The other components are unchanged since 1.4.
Documentation
- Connection Parameters:
backup_mssqlconnection type. - Parallel Parameters:
Physicalresolves toPageson SQL Server backup files. - Datatypes conversion: SQL Server backup files → Parquet.
- Examples: exports from backup files, striped backups.
- License: lookup order, trial licence, exit codes.