Use the CData SSIS Components to Insert New or Update Existing Elasticsearch Records from SQL Server



Easily push SQL Server data to Elasticsearch using the CData SSIS Components. This example uses an SSIS workflow to either insert new records into Elasticsearch or update existing records with data from a SQL Server database.

SQL Server databases are commonly used to store enterprise records. It is often necessary to move this data to other locations. The CData SSIS Components for Elasticsearch allow you to easily transfer data from SQL Server to Elasticsearch.

This article demonstrates how to use the CData SSIS Components for Elasticsearch inside of a SQL Server Integration Services workflow to export data from SQL Server to Elasticsearch, utilizing a lookup component to find and update any existing records or insert new records.

About Elasticsearch Data Integration

Accessing and integrating live data from Elasticsearch has never been easier with CData. Customers rely on CData connectivity to:

  • Access both the SQL endpoints and REST endpoints, optimizing connectivity and offering more options when it comes to reading and writing Elasticsearch data.
  • Connect to virtually every Elasticsearch instance starting with v2.2 and Open Source Elasticsearch subscriptions.
  • Always receive a relevance score for the query results without explicitly requiring the SCORE() function, simplifying access from 3rd party tools and easily seeing how the query results rank in text relevance.
  • Search through multiple indices, relying on Elasticsearch to manage and process the query and results instead of the client machine.

Users frequently integrate Elasticsearch data with analytics tools such as Crystal Reports, Power BI, and Excel, and leverage our tools to enable a single, federated access layer to all of their data sources, including Elasticsearch.

For more information on CData's Elasticsearch solutions, check out our Knowledge Base article: CData Elasticsearch Driver Features & Differentiators.


Getting Started


Add the Components

To get started, add a new OLE DB source, CData Elasticsearch lookup, and two CData Elasticsearch destinations (one to handle a lookup with a match and one to handle a lookup without a match) to a new data flow task.

Configure the OLE DB Source

Follow the steps below to specify properties required to connect to the SQL Server instance.

  1. Open the OLE DB Source and add a new connection. Enter your server and database information here.
  2. In the Data access mode menu, select "Table or view" and select the table or view to export into Elasticsearch.
  3. Close the OLE DB Source wizard and connect it to the CData Elasticsearch Destination.

Create a New Connection Manager for Elasticsearch

Follow the steps below to save connection properties in the Connection Manager.

  1. Create a new Connection manager: In the Connection Manager window, right-click and then click New Connection. The Add SSIS Connection Manager dialog is displayed.
  2. In the Connection Manager type menu, select the CData Elasticsearch Connection Manager.
  3. Configure the connection properties. A typical Elasticsearch connection requires:
    • User
    • Password
    • AccessToken

Configure the Elasticsearch Lookup

In the lookup component Transform Editor, define mappings from the SQL Server source table into the Elasticsearch lookup table.

  1. Double-click the Elasticsearch lookup to open the lookup component editor.
  2. In the Connection tab, select the Connection manager previously created.
  3. On the Connection tab, specify the Connection manager (or create a new one) and the table into which the data will be upserted. In this case, you will transfer Account records.
  4. On the Columns tab, configure the mapping of the primary key from the input columns to the primary key of the lookup columns.

Configure the Elasticsearch Destinations

Using the lookup component, you know which entries from the data source already exist in Elasticsearch and which ones are new. Configure two Elasticsearch components to handle the situation where a match is found and a match is not found.

Lookup Match Destination

If the lookup component returns a match, update the existing record in Elasticsearch.

  1. Map the Lookup Match Output to a Elasticsearch destination component.
  2. Double-click the Elasticsearch destination to open the destination component editor.
  3. In the Connection Manager tab, select the Connection manager previously created.
  4. Specify the table which will be updated and set the Action to "Update."
  5. On the Column Mappings tab, configure the mappings from the input columns to the destination columns (be sure to map the SQL Server primary key column to the Elasticsearch primary key column).

Lookup No Match Destination

If the lookup component does not return a match, add a new record to Elasticsearch.

  1. Map the Lookup No Match Output to a Elasticsearch destination component.
  2. Double-click the Elasticsearch destination to open the destination component editor.
  3. In the Connection Manager tab, select the Connection manager previously created.
  4. Specify the table into which the new record will be inserted and set the Action to "Insert."
  5. On the Column Mappings tab, configure the mappings from the input columns to the destination columns.

Run the Project

You can now run the project. After the SSIS Task has finished executing, data from your SQL table will be exported to the chosen table.

Ready to get started?

Download a free trial of the Elasticsearch SSIS Component to get started:

 Download Now

Learn more:

Elasticsearch Icon Elasticsearch SSIS Components

Powerful SSIS Source & Destination Components that allows you to easily connect SQL Server with live Elasticsearch document databases through SSIS Workflows.

Use the Elasticsearch Data Flow Components to synchronize with Elasticsearch. Perfect for data synchronization, local back-ups, workflow automation, and more!