Skip to main content

FastBCP 1.2: Oracle ADBC Export and RAC Scaling

Romain Ferraton
Romain Ferraton, ARPE.IO CEO
2026-09-23 · 12 min · Release · FastBCP

FastBCP 1.2 adds an Oracle export path backed by ArpeOracle, ARPE.IO's ADBC Driver for Oracle wire-protocol. The driver communicates through Oracle TNS and TTC and returns columnar Apache Arrow data to FastBCP for Parquet generation, without an Oracle client library in the path.

The release brings this path into the same parallel export model already used by FastBCP across different database engines and operating systems. Nine runs illustrate that range: Windows and Linux, standalone Oracle and Oracle RAC, SQL Server and PostgreSQL, narrow and wide tables, and degrees of parallelism from 1 to 64. On Oracle RAC, the measured export time fell from 27.7 seconds at DOP 1 to 4.8 seconds at DOP 8.

What changed in FastBCP 1.2

This article focuses on the integrated Oracle ADBC export path. FastBCP 1.2 combines three parts of the ARPE.IO data stack:

  • ArpeOracle connects to Oracle through its TNS and TTC wire protocols, without OCI or Oracle Instant Client.
  • Apache Arrow Database Connectivity (ADBC) supplies a columnar interface between the database driver and FastBCP.
  • FastBCP partitions the source workload, runs multiple extraction sessions, and writes the resulting Arrow batches to Parquet.

In FastBCP 1.2.0.0 a new Oracle connection path is possible using the ArpeOracle ADBC driver, selected with --connectiontype "adbc_oracle".

All nine results in this article use ARPE.IO ADBC Drivers. The performance chart does not mix ADBC measurements with FastBCP's existing native or vendor-driver paths:

SourceARPE.IO ADBC DriverWire protocolParallel method shown
OracleArpeOracleTNS + TTCRowid
SQL ServerArpeMSSQLMS-TDS 7.4RangeId
PostgreSQLArpePgSQLFrontend/Backend v3Ctid

ADBC complements FastBCP's existing drivers

The ADBC paths extend FastBCP's connectivity; they do not replace the native and vendor drivers already embedded in the product. Those established drivers remain available for database extraction to CSV, JSON, XLSX, and Parquet.

This gives FastBCP two complementary connection strategies:

  • use an ARPE.IO ADBC Driver for the high-performance Arrow-to-Parquet path when one is available for the source;
  • use the existing native or vendor driver for CSV, JSON, XLSX, or Parquet, including databases for which an ADBC path is not yet available.

The command-line workflow, parallel extraction methods, output naming, and destination handling remain part of FastBCP in both cases. Teams can therefore adopt the ADBC path where it adds value without losing the broader source and file-format coverage already available in FastBCP.

How parallel Oracle export works

For Oracle, FastBCP can divide a table into independent ranges. At DOP 8, the measured run executed eight range queries and wrote eight Parquet chunks in parallel.

On a standalone database, the sessions use one Oracle instance. With Oracle RAC and an appropriately configured service, Oracle can distribute new connections across the instances offering that service. FastBCP supplies the concurrent extraction sessions; RAC connection load balancing supplies the multi-instance routing. This makes the two parallel models complementary for large export workloads.

A sanitized version of the measured DOP 8 command is:

.\FastBCP.exe `
--connectiontype "adbc_oracle" `
--server "[ORACLE_SCAN_OR_HOST]:1521/[SERVICE_NAME]" `
--user "[USER]" `
--password "[PASSWORD]" `
--sourceschema "[SCHEMA]" `
--sourcetable "[TABLE]" `
--fileoutput "{sourcetable}.parquet" `
--directory "[OUTPUT_DIRECTORY]" `
--parquetcompression "Zstd" `
--parallelmethod "Rowid" `
--paralleldegree 8 `
--merge false

Use a secret store or environment-based credential injection in automation rather than placing the password in shell history.

Oracle RAC: DOP 1 versus DOP 8

The two RAC logs use the same FastBCP version, Windows build, Oracle 19c source, table, row and column counts, Zstd compression, output location, and reported output size. The parallel method changes from None at DOP 1 to Rowid at DOP 8.

MetricDOP 1DOP 8Observed change
FastBCP version1.2.0.01.2.0.0Same
Client OSMicrosoft Windows 10.0.20348Microsoft Windows 10.0.20348Same
SourceOracle 19c RACOracle 19c RACSame
Rows14,945,67914,945,679Same
Columns4444Same
Parquet compressionZstdZstdSame
Output size694.69 MB694.69 MBSame
Total elapsed time27.695 s4.851 s82.5% lower
Final throughput539,643 rows/s3,080,788 rows/s5.71×
Final cell throughput23,744,327 cells/s135,554,707 cells/s5.71×
Reported disk write throughput25.10 MB/s143.78 MB/s5.73×

Oracle RAC export at DOP 1 and DOP 8, comparing total elapsed time and final cell throughput

The DOP 8 run completed in approximately one-sixth of the DOP 1 time. Final throughput increased from 539,643 to 3,080,788 rows/s while the reported Parquet output size remained identical. The measured 5.71× acceleration covers the complete path from Oracle reads through Arrow batches, Zstd compression, and local Parquet writes.

FastBCP 1.2 across engines, platforms, and workloads

The nine completed runs show how FastBCP adapts its export strategy to different environments:

  • from 7.7 million to 600 million rows;
  • from 9 to 181 columns;
  • Windows and Linux clients;
  • Oracle standalone, Oracle RAC, SQL Server, and PostgreSQL sources;
  • source-specific Rowid, RangeId, and Ctid partitioning;
  • DOP values from 1 to 64;
  • compressed and uncompressed Parquet output.
Source and workloadClient OSFastBCPDOP / methodShapeTotal timeFinal cells/s
Oracle 19c standalone, wide tableRed Hat Enterprise Linux 8.101.2.0.08 / Rowid7,704,183 × 1819.714 s143,548,077
Oracle 19c RAC, test tableMicrosoft Windows 10.0.203481.2.0.01 / None14,945,679 × 4427.695 s23,744,327
Oracle 19c RAC, test tableMicrosoft Windows 10.0.203481.2.0.08 / Rowid14,945,679 × 444.851 s135,554,707
Oracle 19c standalone, wide tableMicrosoft Windows 10.0.143931.2.0.04 / Rowid7,704,183 × 18133.519 s41,601,766
SQL Server 2022, TPC-H SF100 lineitem, uncompressedMicrosoft Windows 10.0.203481.2.0.064 / RangeId600,037,902 × 1719.879 s513,116,440
SQL Server 2022, TPC-H SF100 lineitem, ZstdMicrosoft Windows 10.0.203481.2.0.064 / RangeId600,037,902 × 1720.271 s503,197,062
SQL Server 2022, ordersMicrosoft Windows 10.0.262001.2.0.016 / RangeId15,000,000 × 92.498 s54,025,850
PostgreSQL 15.15, ordersLinux Mint 21.11.2.0.016 / Ctid15,000,000 × 93.691 s36,571,109
PostgreSQL 17.2, ordersMicrosoft Windows 10.0.262001.2.0.016 / Ctid15,000,000 × 113.210 s51,396,007

Raw final cell throughput from nine FastBCP 1.2 logs, labelled by source, operating system and DOP

The chart intentionally brings these different situations together. It is not a database-engine ranking: it shows that the same FastBCP release can apply a source-appropriate extraction method, scale the worker count, and produce Parquet across a broad range of workloads.

What these runs demonstrate

  • One export workflow across several databases. The same FastBCP CLI drives Oracle, SQL Server, and PostgreSQL exports.
  • Database-aware parallelism. Rowid partitions Oracle tables, RangeId divides suitable SQL Server keys, and Ctid partitions PostgreSQL heap storage.
  • Standalone and clustered sources. FastBCP can use one Oracle instance or open multiple sessions through an Oracle RAC service.
  • Windows and Linux execution. The supplied runs completed on both platforms with FastBCP 1.2.
  • Adaptation to row shape and volume. The examples range from 9-column analytical tables to a 181-column Oracle table, and up to 600,037,902 rows.
  • Configurable output trade-offs. The SQL Server SF100 pair shows the same workload written with uncompressed Parquet and Zstd using the same DOP 64 extraction plan.
About the measurements

These are raw single-run observations from different environments, included to show FastBCP's operating range. The Oracle RAC DOP 1 and DOP 8 pair is the direct scaling comparison; the other runs are practical capability examples rather than a controlled cross-engine benchmark.

Trying the Oracle ADBC path

  1. Confirm the binary reports FastBCP 1.2.0.0.
  2. Select the new path with --connectiontype "adbc_oracle".
  3. Use Rowid with a DOP appropriate for the source and client capacity.
  4. On Oracle RAC, connect through the service intended to distribute export sessions.
  5. Validate the reported row count and generated Parquet schema before moving the configuration into production.

Next on the ADBC roadmap

The 2026 roadmap includes additional ARPE.IO ADBC Drivers designed around direct database wire protocols:

  • an ADBC Driver for IBM Db2 for DB2 LUW, IBM i (iSeries), and z/OS (zSeries);
  • an ARPE.IO ADBC Driver for Teradata;
  • an ARPE.IO ADBC Driver for Netezza.

These planned drivers are intended to extend FastBCP's high-performance Parquet extraction path to more enterprise database platforms. They will complement the native and vendor drivers that FastBCP already provides for these sources.

We also plan to evaluate third-party ADBC integrations. The current ADBC driver ecosystem lists Driver Foundry implementations for Snowflake, Databricks, and Presto, along with a vendor-maintained Exasol driver. Their inclusion in FastBCP will depend on technical validation across packaging, authentication, type coverage, stability, and supported platforms.

Conclusion

FastBCP 1.2 brings ARPE.IO's ADBC driver for Oracle wire-protocol into the Parquet export pipeline. In the supplied Oracle RAC test, combining ArpeOracle with eight parallel sessions reduced total elapsed time from 27.7 seconds to 4.8 seconds for a 14.9-million-row, 44-column table.

The broader set of runs shows the larger design goal behind the release: one export tool that adapts to the database engine, operating system, table shape, output compression, and available parallelism. From a wide Oracle table on Linux to a 600-million-row SQL Server export on Windows, FastBCP keeps the workflow consistent while selecting source-specific extraction strategies.

FastBCP 1.2 is therefore both a concrete Oracle milestone and the foundation for broader ADBC coverage. The next step is to expand the high-performance Parquet path with additional ARPE.IO ADBC wire-protocol drivers for Db2, Teradata, and Netezza, while evaluating selected Driver Foundry and vendor ADBC Drivers for platforms such as Snowflake, Databricks, Presto, and Exasol.

Resources