CData Software Blog

クラウド連携のCData Software の技術ブログです。

企業内検索エンジンサービスの Neuron に Salesforce のデータを取り込んで検索する方法:CData JDBC Driver

f:id:sugimomoto:20200702152844p:plain

こんにちは。CData Software Japan リードエンジニアの杉本です。

今回は企業内検索エンジンサービスのNeuronとCData JDBC Driver を組み合わせ、Salesforceデータを Neuron上で検索できるようにする方法をご紹介します。

Neuron とは?

先端OSS技術(Apache Solr)を活用したエンタープライズサーチ(企業内検索エンジン)サービスです。

Apache Solrのみですと、エンタープライズサーチのメカニズムをAPIとして提供するのみですが、NeuronはApache Solrをベースにしながら、企業ユーザーがデータを探索するためのシンプルかつ使いやすいユーザーインターフェースと管理画面・運用機能を提供してくれます。

https://www.brains-tech.co.jp/neuron/

f:id:sugimomoto:20200702152813p:plain

以下のような普段から馴染みのある検索画面を提供しているので、エンドユーザーでも気軽にエンタープライズ検索を実施できます。

f:id:sugimomoto:20200702152819p:plain

設定がしやすい管理画面も提供されており、ファイルやデータのクローリング設定がUI上から簡単に行なえます。

f:id:sugimomoto:20200702152825p:plain

本記事のシナリオ

本記事では CRMSFAクラウドサービスであるSalesforceのデータをNeuronに取り込み、エンタープライズサーチが実施できるようにするための手順を紹介します。

通常 Neuron はFileSystemやSharePoint、Notesといったファイル・ドキュメント管理サービス、もしくはWebクローラーJDBC経由でのRDB接続で取得したデータのみを検索の対象としています。

f:id:sugimomoto:20200702152831p:plain

Apache Solrの仕組みを利用して、プログラムでデータを取得して登録することもできますが、様々なAPIへの連携実装や保守・メンテナンスのコストが多くかかってしまいます。

そこで本記事ではNeuronがもともと備えているJDBCのインターフェースを利用することでこのボトルネックを解消します。

CData Software Japan では SalesforceやKintone、JIRAなどに接続することができる各種JDBC Driverを200種類ほど提供しています。

https://www.cdata.com/jp/jdbc/#drivers

f:id:sugimomoto:20200702152837p:plain

この各種JDBC Driverを用いることで、NeuronからシームレスにWeb APIアクセスが可能となり、GUIからの設定のみで各種クラウドサービス・SaaSのデータをクローリングし収集することができるようになります。

これでユーザーは Neuron という共通インターフェースを使いながら、クラウドサービス横断的にエンタープライズ検索を実施することができるようになります。

f:id:sugimomoto:20200702152844p:plain

手順

それでは実際に Neuron から Salesforce に接続し、データを収集する方法を紹介したいと思います。

必要なもの

なお、今回はWindows Server 2016 に予めNeuronをインストールしています。

Salesforce JDBC Driver のインストール

まず、CData Salesforce JDBC Driver をインストールします。トライアルは以下のURLから入手できます。

https://www.cdata.com/jp/drivers/salesforce/jdbc/

f:id:sugimomoto:20200116122206p:plain

ダウンロード後、exeファイルを実行し、セットアップを進めます。

f:id:sugimomoto:20200116122213p:plain

JDBC Driver を Neuron のlibフォルダに配置

CData Salesforce JDBC Driver のインストールが完了すると、以下のフォルダにJDBC Driverの本体であるjarファイルが生成されます。

C:\Program Files\CData\CData JDBC Driver for Salesforce 2019J\lib

f:id:sugimomoto:20200702152855p:plain

この「cdata.jdbc.salesforce.jar」ファイルとライセンスファイルである「cdata.jdbc.salesforce.lic」をNeuronの以下のフォルダに配置します。

  • C:\APP\ncf\lib

f:id:sugimomoto:20200702152900p:plain

リポジトリの作成

続いて、Neuron CFでクローラーの設定を進めます。

まずはJDBC Driverを読み取るためのリポジトリ情報を構成しましょう。

Neuron の管理画面(ローカルホストの場合は:http://localhost:7983/ncf-crawler-ui/)にアクセスし、リポジトリコレクション一覧に移動して「新規」をクリックします。

f:id:sugimomoto:20200702152906p:plain

任意のリポジトリ名を入力し、タイプから「JDBC」を選択して、次へ移動します。

f:id:sugimomoto:20200702152912p:plain

続いて、ドライバのクラス名とSalesforce へ接続するための接続文字列を設定します。接続文字列にはSalesforce へのログインユーザーID・PWと共にSalesforce から取得できるセキュリティトークンを指定します。(詳しい設定値はこちらを参照してください)

  • ドライバクラス名:cdata.jdbc.salesforce.SalesforceDriver
  • 接続文字列:jdbc:salesforce:User=XXX@XXXX.com;Password=XXXX;Security Token=XXXX;

f:id:sugimomoto:20200702152917p:plain

あとは「更新」をクリックすると、リポジトリコレクションが作成されます。

ジョブの構成

続いて実際にどのようにデータクローリングするのか? の定義であるジョブを構成します。

ジョブ一覧画面に移動して「新規」をクリックします。

f:id:sugimomoto:20200702152922p:plain

任意のジョブ名称を入力し、出力先としてSolr、リポジトリに先程作成したリポジトリコレクションを指定します。

f:id:sugimomoto:20200702152930p:plain

ジョブは定期的に実行するように構成することが可能です。今回は確認のため手動実行ジョブとしていますが、もし定期的にデータを取得する場合は、以下の基本タブでそれぞれ任意の構成を行ってください。

f:id:sugimomoto:20200702152935p:plain

SQLタブでは、取得する先のテーブルをSQLや各種フィールドを指定します。今回は以下のようにAccountデータを取得するSQL文を構成しました。タイトルカラムや検索対象カラムは任意のカラムを指定してください。

  • SQL文:SELECT Id, Name, CreatedDate, LastModifiedDate FROM Account
  • キーカラム:Id
  • 検索対象カラム:Id,Name
  • タイトルカラム:Name
  • タイムスタンプカラム:LastModifiedDate

(各プロパティの詳細な仕様はNeuronのリファレンスを参照してみてください。)

f:id:sugimomoto:20200702152942p:plain

リクエストパラメータは、検索結果で表示されるリンクを定義することができます。

今回Neuronの検索結果からSalesforce の画面にスムーズに移動できるように、各レコードのリンクを構成するように設定しました。[Id]部分にそれぞれのレコードIDが入力されることで、リンクとして機能するようになります。

f:id:sugimomoto:20200702152947p:plain

取得元では、ラベルとしてSalesforce を指定しました。

f:id:sugimomoto:20200702152952p:plain

あとは「更新」をクリックすることでジョブが作成されます。

これでクローラーの設定は完了です。

ジョブの手動実行

それでは実際にジョブを実行してみましょう。

「状態とジョブ管理」画面に移動し、作成したジョブの「Start」をクリックします。

f:id:sugimomoto:20200702152957p:plain

一定時間経過すると、ジョブが完了します。正常にジョブが完了すると、以下のように状態が「Done」で表示されます。今回は12件レコードが登録されました。

f:id:sugimomoto:20200702153004p:plain

Neuron 上で検索の実施

実際にNeuron 上で検索ができるか確認してみます。

部分一致で検索をかけてみると、以下のようにデータを取得できました。またリンクをクリックすることで

f:id:sugimomoto:20200702153011p:plain

Salesforce 上の画面にも移動できました。

f:id:sugimomoto:20200702153018p:plain

おわりに

とても手軽に Neuron で Salesforce のデータを扱えることがイメージできたのではないかと思います。

CData では Salesforce 以外にも数多くの JDBC Driver を提供しています。

kintone や Sansan といった日本のクラウドサービスや JIRA、Gmail などKBやナレッジが非定形で蓄積されているようなデータソースにも対応しているので、エンタープライズ検索の対象とすることでより業務効率化やコラボレーションの強化に活かせるのではないかと思います。

https://www.cdata.com/jp/jdbc/

f:id:sugimomoto:20200116122333p:plain

すべて30日間のトライアルがあるので、是非一度試してみてください。