はじめに
CData Japan技術ディレクターの桑島です。RapidMinerは、ノーコード でデータ加工から可視化、モデル作成、その評価・運用まで一つのプラットフォームで行うことができる統合データサイエンスプラットフォームです。RipidMinerは、データソースとして、JDBCドライバが利用できるので、本記事では、CData JDBC Driver for Salesforceを使って、Salesforce内に蓄積されている取引先(Account)データをRapidMinerにインポートしてクラスタリング分析を行う手順をご紹介します。

前提
本記事は以下の環境で確認しました。MacOSでの確認となりますが、RapidMinerおよびCData JDBC Driverは、macOS、および、Windows、両OSをサポートしているので、Windows環境でも一部、インストールパスが異なりますが)同様の手順でご確認いただけます。
- OS: macOS Catalina 10.15.1
- Salesforce SalesCloud
- RapidMiner V9.5 macOS版 評価版
- CData JDBC Driver for Salesforce Version: 19.0.7236
手順
CData JDBC Driver for Salesforce のインストール
CData Software 社のサイトから CData JDBC Driver for Salesforceをダウンロードします(30日の無償評価版あり)。

ダウンロードしたsetup.zipに含まれるsetup.jarをRapidMinerのマシンで実行してインストールします。
(注意)RapidMinerのマシンがプロキシ内に設置されていてCDataのアクティベーションサーバに接続できない場合はオフラインでのアクティベーションが必要となります。
RapidMiner Studioからの利用
RapidMiner Studioを起動します。今回は、Auto Modelを使って進めますので、Auto Model Viewに切り替えます。

ウィザードが起動するので、「IMPORT NEW DATA」>「Database」をクリックします。

「New Connection」をクリックします。

「Create New Connection」ダイアログが起動するので「Connection Name」に任意の名称(本例では、「cdataSalesforce」)を付与して「Create」をクリックします。

「Setup」タブを開き、「Configure URL manually」のURLにJDBCの接続文字列を登録します。Salesforceの場合は、User、Passwordに加えてSecurityTokenが必要となります(※OAuthでのログインも可能です)。詳細は、CData製品マニュアル - 接続の確立をご覧ください。
jdbc:salesforce:User=XXXX@cdata.com;Password=XXXX;SecurityToken=XXXXXX;

続いて「Driver」タブを開き、「JDBC driver Jar file」右フォルダアイコンをクリックして、JDBCドライバの.jarファイルを選択して「Open」します。「JDBC Driver class」が読み込まれれば成功です。

JDBCドライバのデフォルトインストールパスは以下の通りです。
| OS | パス |
|---|---|
| macOS | /Applications/CData/CData JDBC Driver for Salesforce 2019J/lib/cdata.jdbc.salesforce.jar |
| Windows | C:\Program Files\CData\CData JDBC Driver for Salesforce 2019J\lib\cdata.jdbc.salesforce.jar |
「Edit connection」ダイアログ右下の「Test Connection」ボタンをクリックして「Test Successful」メッセージが表示されれば、RapidMinerからSalesforceへの接続ができたことになります。作成したConnection情報を「Save」します。

「ImportData」ダイアログに戻りConnectionが追加されたのを確認して「Next」で進みます。

Build a query to a data table.画面に移り、TableやAttributeの一覧が表示されませんが、下ペインにSQLを直接記述できるので、Salesforceの取引先を全て取得する以下のSQLを記述して「Next」で次に進みます。
select * from Account

Dataに任意の名称(本例では「SalesforceAccount」)を付与して、「Finish」ボタンをクリックします。

AutoModelのウィザードに戻り、「LoadData」から「Select Task」のステップに移り、Salesforceの取引先データがプレビューできることを確認します。確認できたら、「Clusters」ボタンをクリックして活性となった右上の「Next」ボタンをクリックします。

取引先をクラスタリングする際の説明変数を選択します。今回は、「年度収益(AnuualRevenue)」と「従業員数(NumberOfEmployees)」を選択します。選択したら「Next」で次に進みます。

k-Means法で作成するクラスタ数をデフォルトの2から4に変更して「Run」ボタンをクリックしてモデルを実行します。

処理が完了すると「ke-Means > Summary」でクラスタのサマリが確認できます。

「Cluster Tree」を確認します。

実際にどの取引先がどのクラスタに分類されたかは、「ClusteredData」にて確認できます。ここからデータのエクスポートも可能です。

「Open Process」ボタンをクリックすると「Design」Viewでプロセスの内容を確認できます。

まとめ
いかがでしたでしょうか。今回は、Salesforceの取引先データを利用してRapidMinerでクラスタリングしてみましたが、CData Sostwareでは、Dynamics365、Hubspot、SugarCRM、Zoho、kintone、Sansanなど他のCRM/SFAアプリケーションのJDBCドライバを提供しているので同じ手順で取引先のクラスタリング分析を行うことができます。また、本手順のシナリオとは異なりますが、BigqueryやMongoDBといったクラウドデータウェアハウス、NoSQLのデータをRapidMinerに取り込み分析することも可能ですので是非気になるデータソースがあればお試しください。

CData Software Japan - JDBC Drivers