CData Software Blog

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

RapidMinerでSalesforceの取引先データをk-Means法を使ってクラスタリングしてみた

はじめに

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

f:id:kuwazzy:20191128111252p:plain

前提

本記事は以下の環境で確認しました。MacOSでの確認となりますが、RapidMinerおよびCData JDBC Driverは、macOS、および、Windows、両OSをサポートしているので、Windows環境でも一部、インストールパスが異なりますが)同様の手順でご確認いただけます。

手順

CData JDBC Driver for Salesforce のインストール

CData Software 社のサイトから CData JDBC Driver for Salesforceをダウンロードします(30日の無償評価版あり)。

f:id:kuwazzy:20191128112635p:plain

ダウンロードしたsetup.zipに含まれるsetup.jarをRapidMinerのマシンで実行してインストールします。

f:id:kuwazzy:20191128113018p:plain (注意)RapidMinerのマシンがプロキシ内に設置されていてCDataのアクティベーションサーバに接続できない場合はオフラインでのアクティベーションが必要となります。

RapidMiner Studioからの利用

RapidMiner Studioを起動します。今回は、Auto Modelを使って進めますので、Auto Model Viewに切り替えます。

f:id:kuwazzy:20191128113421p:plain

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

f:id:kuwazzy:20191128113553p:plain

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

f:id:kuwazzy:20191128113726p:plain

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

f:id:kuwazzy:20191128114035p:plain

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

jdbc:salesforce:User=XXXX@cdata.com;Password=XXXX;SecurityToken=XXXXXX;

f:id:kuwazzy:20191128121350p:plain

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

f:id:kuwazzy:20191128121945p:plain

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」します。

f:id:kuwazzy:20191128122431p:plain

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

f:id:kuwazzy:20191128122649p:plain

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

select * from Account

f:id:kuwazzy:20191128123442p:plain

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

f:id:kuwazzy:20191128123530p:plain

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

f:id:kuwazzy:20191128124015p:plain

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

f:id:kuwazzy:20191128124908p:plain

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

f:id:kuwazzy:20191128125046p:plain

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

f:id:kuwazzy:20191128125207p:plain

「Cluster Tree」を確認します。

f:id:kuwazzy:20191128125345p:plain

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

f:id:kuwazzy:20191128125448p:plain

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

f:id:kuwazzy:20191128125742p:plain

まとめ

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

f:id:kuwazzy:20191021211711p:plain

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

ご参考(CDataナレッジベース)