Synchronizing a Synapse table from an on-premise Oracle table

pmscorca 1,052 Reputation points
2024-06-06T15:45:42.77+00:00

Hi,

I've a Synapse table on a dedicated SQL pool and I need to update it reading from an Oracle table.

I've already implemented a Self-hosted IR and I've already read from the Oracle table rightly with the Oracle connector.

The requirement from my customer is to synchronize the Synapse table when a data change occurs for the Oracle table.

So I cannot use a scheduled trigger for the ADF pipeline that reads from the Oracle table.

Now, any suggests to me to solve this issue, please? Does it exist any property for the Oracle connector in Synapse that could help me?

Thanks

Azure Synapse Analytics
Azure Synapse Analytics
An Azure analytics service that brings together data integration, enterprise data warehousing, and big data analytics. Previously known as Azure SQL Data Warehouse.
5,380 questions
Azure Data Factory
Azure Data Factory
An Azure service for ingesting, preparing, and transforming data at scale.
11,657 questions
{count} votes

Accepted answer
  1. phemanth 15,765 Reputation points Microsoft External Staff Moderator
    2024-06-06T16:54:35.7933333+00:00

    @pmscorca

    Thanks for using MS Q&A platform and posting your query.

    There are a couple of approaches you can take to synchronize the Synapse table with the Oracle table upon data changes in Oracle, without relying on scheduled triggers:

    1. Change Data Capture (CDC):

    • Oracle GoldenGate: If you're using Oracle GoldenGate for CDC in your Oracle environment, you can leverage it to capture changes in the Oracle table and replicate them to your Azure Synapse Analytics dedicated SQL pool. GoldenGate provides real-time or near real-time data integration capabilities.

    2. Azure Data Factory (ADF) with Triggers:

    • SQL Database triggers: While you can't use scheduled triggers in ADF, you can set up triggers directly on the Oracle table. These triggers can then call an ADF pipeline that reads the changed data and updates the Synapse table. This approach requires some development effort on the Oracle side to create the triggers.

    3. Azure Synapse Pipeline with Monitor:

    • Monitor existing data: You can create an ADF pipeline that monitors the Oracle table for changes. This pipeline could leverage tools like Azure Logic Apps or custom code to periodically check for updates in the Oracle table. However, this approach wouldn't be real-time and might introduce some latency in synchronization.

    Important points to consider:

    • Data volume and latency: Choose the approach that best suits your data volume and latency requirements. CDC solutions offer near real-time updates, while trigger-based approaches might have some delay.
    • Development effort: CDC tools and Oracle triggers require more development effort compared to a simple monitoring pipeline.
    • Cost: Evaluate the cost implications of each approach, including any licensing fees for third-party CDC tools.

    Oracle Connector Properties:

    Unfortunately, the Oracle connector in Azure Synapse doesn't have a built-in property for change data capture. However, you can leverage the connector to read data from the Oracle table within your chosen synchronization approach.

    Hope this helps. Do let us know if you any further queries.


0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.