Skip to main content
Version: 1.5

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.

0
SQL Server instance needed

Point FastBCP at a backup directory. No server to provision, no credentials, no restore window.

5 M rows/s
from an uncompressed backup

Faster than reading the live database: 1.5× adbc_mssql, 3.6× mssql.

128–256 MB
per thread

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 Wizardbackup_mssql in the ADBC connectors, and → to accept a suggested value
LicenceA licence file is now always required, the 30-day trial included — see what changes
Faster driversArpeMSSQL 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.

  • --server is the directory holding the backups.
  • --database is the backup file, or a pattern matching it.
  • That's it: no user, no password, no SQL Server.
.\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

Faster Than the Live Database​

FastBCP to Parquet, degree 8, TPC-H.

TableSourceThroughput
orders (15 M rows)backup_mssql, uncompressed backup≈ 5 M rows/s
backup_mssql, MS_XPRESS / ZSTD backup2.1 – 2.6 M rows/s
adbc_mssql on the live database3.3 M rows/s
mssql on the live database1.4 M rows/s
lineitem clustered columnstore (60 M rows)backup_mssql2.8 M rows/s
adbc_mssql on the live database2.4 M rows/s

What It Reads​

Supported
SQL Server versions2017, 2019, 2022 and 2025, on Windows or Linux
Backup typesFull and copy-only full backups, uncompressed or compressed with MS_XPRESS or ZSTD, any BLOCKSIZE / MAXTRANSFERSIZE
Striped backupsTO DISK = a, DISK = b, …: a pattern (--database "tpch_*.bak") or a ;-separated list, in any order
Several backups in one fileWITH NOINIT: the last full backup of the file is read
Database layoutSeveral data files and filegroups
Rowstore tablesHeaps, clustered indexes, partitions, ROW / PAGE compression
Columnstore tablesClustered columnstore, archive compression and open delta store included
Data typesEvery SQL Server type: LOBs and row-overflow, xml, sparse columns, persisted computed columns, sql_variant (as text) — see the datatypes mapping
Good to know
  • Parquet output only, on Windows x64 and Linux x64.
  • --parallelmethod accepts None and Physical (which resolves to the new Pages method).
  • --query accepts SELECT * | 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_mssql in 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 only None and Physical are offered as parallel methods.
  • Type less: in an empty field, the → (right arrow) key takes the suggested value.

Licence​

Action required for trial users

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.lic is 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_* or backup_mssql run with no ADBC driver block (and no ARPEIO_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 NUMBER to float64 reads, and choice of the Native Network Encryption integrity algorithm with adbc.arpeoracle.data_integrity_types.
  • ArpeTeradata 0.3.5 — uri and ADO.NET connection_string are parsed, like the other drivers.

Dependencies​

ComponentVersion
ArpeMSBackup ADBC driver0.1.6 (new)
ArpeMSSQL ADBC driver0.7.8
ArpeOracle ADBC driver0.4.3
ArpeNetezza ADBC driver0.3.8 (no driver code change)
ArpeTeradata ADBC driver0.3.5
AdbcFileExport0.5.5 (arpemsbackup driver profile)

The other components are unchanged since 1.4.

Documentation​

Copyright © 2026 Architecture & Performance.