BI Publisher Data Extraction: Tips to Fetch All Rows While Honoring Oracle Constraints

Modified on Thu, 6 Aug at 10:46 AM

COMMENT: Need help navigating the support articles? Go to Get Started
COMMENT: Before publishing, (1) verify Oracle's current BI Publisher guardrail figures (timeout / rows-per-fetch / output size) against the latest Oracle docs, and (2) wire the red placeholder links in the "What would you like to do next?" table.

Many teams hesitate to use Oracle Fusion BI Publisher for data extraction after reading Oracle's guidance that flags it as an anti-pattern. That guidance is easy to misread. Oracle is not saying never use BI Publisher to extract data. It is saying that a specific way of using it puts the platform under strain.


This article explains that nuance and shows how BI Connector lets you extract all the data you need, without row limits, while staying fully within Oracle's guidance.


The concern: is BI Publisher an anti-pattern for data extraction?

Oracle's A-Team article on synchronous BI Publisher extraction is often quoted as a blanket warning. Read closely, it targets how BI Publisher is used, not the module itself. Oracle flags three usage patterns as problematic:

  • Extracting a large volume of data in a single fetch
  • Synchronous fetches that hold the connection open until all rows return
  • Firing a large number of concurrent requests at the platform
Reference — Oracle A-Team, Using Synchronous BIP for Extracting Data? Don't. The point is about volume-per-fetch, synchronicity, and concurrency, not about avoiding BI Publisher altogether.

 

How BI Connector aligns with Oracle's guidance

BI Connector is designed around exactly these three points. It fetches all the data you need, with no row limits, by turning one risky pattern into three safe ones:

In short —
  • Optimal-volume extraction — large datasets are fetched in automatically sized batches, never in one giant pull.
  • Asynchronous fetch — data is pulled on a schedule you control, using incremental loads.
  • Controlled concurrency — simultaneous requests are capped and spread out.

 

1. Optimal-volume extraction through automatic chunking

The most common worry is: "We need to extract a large volume of data through BI Publisher, but Oracle advises against it." The nuance usually missed is volume per fetch, not total volume. If a Data Model returns 10 million rows, it is pulling all 10 million in one go that Oracle warns against, not the fact that you need them.


BI Connector's chunking engine handles this automatically. It breaks the extraction into manageable batches and makes as many round-trips as needed to fetch every row, so a large dataset is retrieved as a series of small, server-friendly fetches rather than a single heavy request.

The numbers back this up. One customer's initial full load pulled 170M+ rows across 200+ Fusion base tables in about 1.5 days; the largest table held 60M+ rows. Those tables now refresh incrementally twice a day, each run completing in 3 to 4 hours.

 

2. Asynchronous, scheduled data fetch

BI Connector extracts data asynchronously. You schedule a refresh and the data is pulled in the background on your cadence.

For Fusion raw tables, the standard approach is the incremental load: the full table is pulled only once, for the initial load. Every run after that pulls only new or changed rows, tracked by an id column or a date column such as last_updated_date, typically once or twice a day.

What actually is the anti-pattern — A real-time or always-live connection, data kept perpetually fresh, a full reload every time, or a refresh every minute. That pattern loads the server, which is what Oracle warns against; Fusion BI Publisher's cloud guardrails exist to protect every customer's SLA.
Oracle's platform guardrails (illustrative). Oracle enforces limits on BI Publisher, for example a request timeout (around 5 minutes), a per-fetch row ceiling (about 1 million rows), and an output size limit (around 5 GB). Exact values are set by Oracle and can change, so confirm against current documentation.

 

3. Controlled number of concurrent requests

For data pipelines

BI Connector's pre-built pipeline templates for Microsoft Fabric and ADF / Azure Synapse are configured to control the number of concurrent requests automatically, so you stay within safe concurrency without manual tuning.


For Power BI and Tableau refreshes

Here you set the cadence, so schedule with concurrency in mind:

  • Make full use of the incremental load option instead of full refreshes.
  • Schedule the majority of report refreshes during non-peak hours.
  • During peak hours, keep scheduled refreshes low and limited to critical reports only (preferably incremental), so people reading reports directly in BI Publisher and the background Power BI / Tableau refresh jobs do not compete for the same resources.
  • Refresh only when needed. A month-end report only needs to run near month-end. Use the options in Power BI or Tableau to maximise the time between refreshes while still meeting user needs.
Tip — Add parameters when connecting to a BI Publisher Data Model. Filtering to just the rows you need makes each fetch finish faster and frees up Oracle resources sooner for the next refresh and for users working directly in BI Publisher.

 

Key takeaways

Bottom line — BI Publisher is not the problem; unbounded, synchronous, high-concurrency extraction is. BI Connector fetches all your data with no row limits by chunking large volumes into small batches, pulling asynchronously on an incremental schedule, and keeping concurrency controlled — precisely what Oracle recommends.

 

What would you like to do next?

Next stepGo to
Get started with BI Publisher Data Models in BI ConnectorSet Up a BI Connector Data Source