We are proud to share our inclusion in the 2024 Gartner Magic Quadrant for Data Integration Tools. We believe this recognition reflects the differentiated business outcomes CData delivers to our customers.
Get the Report →How to import NetSuite Data into Apache Solr
Use the CData JDBC Driver for NetSuite in Data Import Handler and create an automated import of NetSuite data to Apache Solr Enterprise Search platform.
The Apache Solr platform is a popular, blazing-fast, open source enterprise search solution built on Apache Lucene.
Apache Solr is equipped with the Data Import Handler (DIH), which can import data from databases and, XML, CSV, and JSON files. When paired with the CData JDBC Driver for NetSuite, you can easily import NetSuite data to Apache Solr. In this article, we show step-by-step how to use CData JDBC Driver in Apache Solr Data Import Handler and import NetSuite data for use in enterprise search.
About NetSuite Data Integration
CData provides the easiest way to access and integrate live data from Oracle NetSuite. Customers use CData connectivity to:
- Access all editions of NetSuite, including Standard, CRM, and OneWorld.
- Connect with all versions of the SuiteTalk API (SOAP-based) and SuiteQL, which functions like SQL, enabling easier data querying and manipulation.
- Access predefined and custom reports through support for Saved Searches.
- Securely authenticate with Token-based and OAuth 2.0, ensuring compatibility and security for all use cases.
- Use SQL stored procedures to perform functional actions like uploading or downloading files, attaching or detaching records or relationships, retrieving roles, getting extra table or column info, getting job results, and more.
Customers use CData solutions to access live NetSuite data from their preferred analytics tools, Power BI and Excel. They also use CData's solutions to integrate their NetSuite data into comprehensive databases and data warehouse using CData Sync directly or leveraging CData's compatibility with other applications like Azure Data Factory. CData also helps Oracle NetSuite customers easily write apps that can pull data from and push data to NetSuite, allowing organizations to integrate data from other sources with NetSuite.
For more information about our Oracle NetSuite solutions, read our blog: Drivers in Focus Part 2: Replicating and Consolidating ... NetSuite Accounting Data.
Getting Started
Create an Apache Solr Core and a Schema for Importing NetSuite
- Run Apache Solr and create a Core.
> solr create -c CDataCore
For this article, Solr is running as a standalone instance in the local environment and you can access the core at this URL: http://localhost:8983/solr/#/CDataCore/core-overview - Create a schema consisting of "field" objects to represent the columns of the NetSuite data to be imported and a unique key for the entity. LastModifiedDate, if it exists in NetSuite, is used for incremental updates. If it does not exist, you cannot do the deltaquery in the later section. Save the schema in the managed-schema file created by Apache Solr.
- Install the CData NetSuite JDBC Driver. Copy the JAR and license file (cdata.netsuite.jar and cdata.jdbc.netsuite.lic) to the Solr directory.
- CData JDBC JAR file: C:\Program Files\CData\CData JDBC Driver for NetSuite ####\lib
- Apache Solr: solr-8.5.2\server\lib
NetSuiteUniqueKey
Now we are ready to use NetSuite data in Solr.
Define an Import of NetSuite to Apache Solr
In this section, we walk through configuring the Data Import Handler.
- Modify the Config file of the created Core. Add the JAR file reference and add the DIH RequestHander definition.
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar" /> <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">solr-data-config.xml</str> </lst> </requestHandler>
- Next, create a solr-data-config.xml at the same level. In this article, we retrieve a table from NetSuite, but you can use a custom SQL query to request data as well. The Driver Class and a sample JDBC Connection string are in the sample code below.
<dataConfig> <dataSource driver="cdata.jdbc.netsuite.NetSuiteDriver" url="jdbc:netsuite:Account Id=XABC123456;Password=password;User=user;Role Id=3;Version=2013_1;"> </dataSource> <document> <entity name="SalesOrder" query="SELECT Id,NetSuiteColumn1,NetSuiteColumn2,NetSuiteColumn3,NetSuiteColumn4,NetSuiteColumn5,NetSuiteColumn6,NetSuiteColumn7,LastModifiedDate FROM SalesOrder" deltaQuery="SELECT Id FROM SalesOrder where LastModifiedDate >= '${dataimporter.last_index_time}'" deltaImportQuery="SELECT Id,NetSuiteColumn1,NetSuiteColumn2,NetSuiteColumn3,NetSuiteColumn4,NetSuiteColumn5,NetSuiteColumn6,NetSuiteColumn7,LastModifiedDate FROM SalesOrder where Id=${dataimporter.delta.Id}"> <field column="Id" name="Id" ></field> <field column="NetSuiteColumn1" name="NetSuiteColumn1" ></field> <field column="NetSuiteColumn2" name="NetSuiteColumn2" ></field> <field column="NetSuiteColumn3" name="NetSuiteColumn3" ></field> <field column="NetSuiteColumn4" name="NetSuiteColumn4" ></field> <field column="NetSuiteColumn5" name="NetSuiteColumn5" ></field> <field column="NetSuiteColumn6" name="NetSuiteColumn6" ></field> <field column="NetSuiteColumn7" name="NetSuiteColumn7" ></field> <field column="LastModifiedDate" name="LastModifiedDate" ></field> </entity> </document> </dataConfig>
- In the query section, set the SQL query that select the data from NetSuite. deltaQuery and deltaImportquery define the ID and the conditions when using incremental updates from the second import of the same entity.
- After all settings are done, restart Solr.
> solr stop -all > solr start
Run a DataImport of NetSuite Data.
- Execute DataImport from the URL below:
http://localhost:8983/solr/#/CDataCore/dataimport//dataimport - Select the "full-import" Command, choose the table from Entity, and click "Execute."
- Check the result of the import from the Query.
- Try an incremental update using deltaQuery. Modify some data in the original NetSuite data set. Select the "delta-import" command this time from DataImport window and click "Execute."
- Check the result of the incremental update.
Using the CData JDBC Driver for NetSuite you are able to create an automated import of NetSuite data into Apache Solr. Download a free, 30 day trial of any of the 200+ CData JDBC Drivers and get started today.