Improving Data Loading Performance from On-Premise Oracle to Fabric
Our team is currently working on a project that involves loading a substantial amount of data from an on-premise Oracle database to Fabric. During this process, we encountered performance issues related to the Oracle ODBC driver.
To ensure that the Oracle ODBC driver can meet our required performance levels, we conducted a series of tests focused on loading data to a parquet file. Our goal was to investigate the driver's capabilities rather than developing a production-ready solution.
After several attempts with various implementations and libraries, we successfully loaded the same dataset to a parquet file on the gateway server in approximately 120 seconds, using the ODBC2Parquet tool written in Rust.
However, when the load is initiated from Fabric, the same process takes between 300 seconds (with optimization of the fetch buffer size) and significantly longer without optimization. This performance discrepancy is a concern, given the substantial amount of data we need to load from our on-premise Oracle database to Fabric.
It is important to note that there is a difference between the array size and the fetch buffer size. The array size refers to the number of rows that can be returned in a single fetch operation, while the fetch buffer size determines the amount of memory allocated for storing the fetched rows. We believe that the array size, which can be set using the ODBC API function "SQLSetStmtAttr" with the attribute "SQL_ATTR_ROW_ARRAY_SIZE", plays a crucial role in the performance difference.
To rule out any potential bottlenecks, we conducted tests on the connection between the gateway server and Fabric and found no issues. Furthermore, the performance difference was also observed when loading the same table from the Oracle database to a local parquet file on the gateway server, with and without the array size parameter set. This confirms that the performance issue is related to the Oracle ODBC driver and the array size parameter, rather than any network or connectivity constraints.
Interestingly, we observed a similar performance improvement when working with the native Oracle driver. Although the method for setting the value differs, increasing the fetch buffer size resulted in a substantial performance boost.
We kindly request that this information be forwarded to your development team for evaluation. It would be highly beneficial if a feature could be implemented in the data gateway to set this attribute, potentially leading to significant performance improvements in our data loading processes from on-premise Oracle to Fabric.
1 Comment
- fbcideas_migusrNew MemberStatus added:New
Recent ideas
Add standard ADBC search paths for ADBC drivers in Power BI
Considering the benefits of using ADBC drivers for data intensive operations, it would be nice to allow ADBC drivers to be used that are not necessarily packaged with Power BI installations. To mitig...hsadlier-pdx1 hour agoNew MemberNew4Views0likes0CommentsPower BI Subscriptions: Suppress OOO Replies and Improve Sender & Management Options
With the recent changes to Power BI subscription email delivery, Out of Office and other automatic replies can be returned to the individual subscription owner. For automated subscriptions sent to l...svcrowell2 hours agoNew MemberNew14Views2likes0CommentsAbility to change the hover text on the new List filter
It would nice to be able to change the hover / tooltip text on the new List filter (preview) visual. For example, currently if you have more items selected than can fit in the available space it say...EHA_SD7 hours agoAdvocate IVNew4Views0likes0CommentsDisplay the associated Power Automate flow in Power BI
When using a Power Automate visual in Power BI, it is not easy to identify which flow is currently associated with the button. Expected improvement: Display directly in the visual properties: Flo...Olivier-R357 hours agoNew MemberNew4Views0likes0CommentsAdd a built-in “Allow Direct Manager Access” option for RLS
Hello, Please consider adding a built-in RLS option in Power BI / Fabric to allow direct manager access based on the existing organizational hierarchy in Microsoft Entra ID / Azure AD. This is a ve...Haroldhngn7 hours agoAdvocate INew3Views0likes0Comments