Apache Solr にJDBC-ODBC Bridge のデータをインポートする方法

Jerod Johnson
Jerod Johnson
Senior Technology Evangelist
CData JDBC Driver for JDBC-ODBC Bridge をData Import Handler で使用して、JDBC-ODBC Bridge のデータをApache Solr エンタープライズサーチプラットフォームに自動インポートできます。

Apache Solr は、Apache Lucene 上に構築された人気のある高速なオープンソースのエンタープライズサーチソリューションです。

Apache Solr には、データベースやXML、CSV、JSON ファイルからデータをインポートできるData Import Handler(DIH)が搭載されています。CData JDBC Driver for JDBC-ODBC Bridge と組み合わせることで、JDBC-ODBC Bridge のデータを簡単にApache Solr にインポートできます。この記事では、CData JDBC Driver をApache Solr のData Import Handler で使用し、エンタープライズサーチ用にJDBC-ODBC Bridge のデータをインポートする方法をステップバイステップで解説します。

JDBC-ODBC Bridge インポート用のApache Solr コアとスキーマを作成する

  1. Apache Solr を起動し、コアを作成します。
    > solr create -c CDataCore
    この記事では、Solr はローカル環境でスタンドアロンインスタンスとして実行されており、次のURL でコアにアクセスできます:http://localhost:8983/solr/#/CDataCore/core-overview
  2. インポートするJDBC-ODBC Bridge のデータのカラムを表す「field」オブジェクトと、エンティティの一意キーで構成されるスキーマを作成します。JDBC-ODBC Bridge にLastModifiedDate が存在する場合は、増分更新に使用されます。存在しない場合は、後述のdeltaquery を実行できません。スキーマはApache Solr が作成したmanaged-schema ファイルに保存します。
  3. 	JDBCODBCUniqueKey
    	
    	
    	
    	
    	
    	
    	
    	
    	
  4. CData JDBC-ODBC Bridge JDBC Driver をインストールします。JAR ファイルとライセンスファイル(cdata.jdbcodbc.jarcdata.jdbc.jdbcodbc.lic)をSolr ディレクトリにコピーします。
    • CData JDBC JAR ファイル:C:\Program Files\CData\CData JDBC Driver for JDBC-ODBC Bridge ####\lib
    • Apache Solr:solr-8.5.2\server\lib

これで、Solr でJDBC-ODBC Bridge のデータを使用する準備が整いました。

JDBC-ODBC Bridge からApache Solr へのインポートを定義する

このセクションでは、Data Import Handler の設定手順を説明します。

  1. 作成したコアのConfig ファイルを編集します。JAR ファイルの参照を追加し、DIH RequestHandler の定義を追加します。
    	
    
    	<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>
  2. 次に、同じ階層にsolr-data-config.xml を作成します。この記事ではJDBC-ODBC Bridge からテーブルを取得しますが、カスタムSQL クエリを使用してデータをリクエストすることもできます。Driver クラスとサンプルJDBC 接続文字列は以下のサンプルコードにあります。
    	
    	<dataConfig>
    		<dataSource driver="cdata.jdbc.jdbcodbc.JDBCODBCDriver" url="jdbc:jdbcodbc:Driver={ODBC_Driver_Name};Driver_Property1=Driver_Value1;Driver_Property2=Driver_Value2;...">
    		</dataSource>
    		<document>
    			<entity name="Account"
    				query="SELECT Id,JDBCODBCColumn1,JDBCODBCColumn2,JDBCODBCColumn3,JDBCODBCColumn4,JDBCODBCColumn5,JDBCODBCColumn6,JDBCODBCColumn7,LastModifiedDate FROM Account"
    				deltaQuery="SELECT Id FROM Account where LastModifiedDate >= '${dataimporter.last_index_time}'"
    				deltaImportQuery="SELECT Id,JDBCODBCColumn1,JDBCODBCColumn2,JDBCODBCColumn3,JDBCODBCColumn4,JDBCODBCColumn5,JDBCODBCColumn6,JDBCODBCColumn7,LastModifiedDate FROM Account where Id=${dataimporter.delta.Id}">
    				<field column="Id" name="Id" ></field>
    				<field column="JDBCODBCColumn1" name="JDBCODBCColumn1" ></field>
    				<field column="JDBCODBCColumn2" name="JDBCODBCColumn2" ></field>
    				<field column="JDBCODBCColumn3" name="JDBCODBCColumn3" ></field>
    				<field column="JDBCODBCColumn4" name="JDBCODBCColumn4" ></field>
    				<field column="JDBCODBCColumn5" name="JDBCODBCColumn5" ></field>
    				<field column="JDBCODBCColumn6" name="JDBCODBCColumn6" ></field>
    				<field column="JDBCODBCColumn7" name="JDBCODBCColumn7" ></field>
    				<field column="LastModifiedDate" name="LastModifiedDate" ></field>
    			</entity>
    		</document>
    	</dataConfig>
  3. query セクションで、JDBC-ODBC Bridge からデータを選択するSQL クエリを設定します。deltaQuerydeltaImportquery は、同じエンティティの2回目以降のインポートで増分更新を使用する際のID と条件を定義します。
  4. すべての設定が完了したら、Solr を再起動します。
    	> solr stop -all
    	> solr start
    	

JDBC-ODBC Bridge のデータのDataImport を実行する

  1. 以下のURL からDataImport を実行します:
    http://localhost:8983/solr/#/CDataCore/dataimport//dataimport
  2. 「full-import」コマンドを選択し、Entity からテーブルを選択して、「Execute」をクリックします。
  3. Query からインポート結果を確認します。
  4. deltaQuery を使用した増分更新を試してみましょう。元のJDBC-ODBC Bridge データセットのデータを変更します。DataImport ウィンドウから今度は「delta-import」コマンドを選択し、「Execute」をクリックします。
  5. 増分更新の結果を確認します。

CData JDBC Driver for JDBC-ODBC Bridge を使用することで、JDBC-ODBC Bridge のデータのApache Solr への自動インポートを作成できます。250+ のCData JDBC Driver の無料30日間トライアルをダウンロードして、今すぐ始めましょう。

はじめる準備はできましたか?

JDBC-ODBC Bridge の無料トライアルをダウンロードしてお試しください:

 ダウンロード

詳細:

ODBC Connectivity from Java Icon JDBC-ODBC Bridge Driver お問い合わせ

JDBC-ODBC Bridge は、あらゆるJava アプリからWindows、Linux、Mac 上のODBC データソースへのJDBC アクセスを提供します。CData JDBC-ODBC Bridge は、レポートや分析にJava ベースのツールを使用する場合でも、カスタムJava ソリューションを構築する場合でも、あらゆるODBC データソースに簡単に接続できます。