CData Software Blog

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

オープンソースのBIツール Metabase のデータソースをCData Connect で拡張:Salesforce 編

f:id:sugimomoto:20210421095752p:plain

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

今回は オープンソースのBIツール Metabase と CData Connect を組み合わせてネイティブにサポートされていないデータソースを追加し、分析に活用する方法を紹介します。

CData Connect とは?

CData Connect は、SaaS ベースで提供されるデータハブサービスです。Salesforce、NetSuite、Dynamics、Marketo、kintone など多様なSaaS にBI、アナリティクス、iPaaS、ノーコード開発プラットフォームからアクセスするための仮想エンドポイントです。連携方法が異なるSaaSMySQLSQL Server、OData の3種類のインターフェースに仮想化することで、データ連携をシンプルに実現します。

"SQL as a Service" といっていいかもしれません。

Metabase へのSaaS データ連携

Metabase は、各種クラウドDB、BigQuery、Redshift などのクラウドデータストレージをサポートしています。

www.metabase.com

(2021/04/21時点でのデータソース一覧)

しかしながら様々なクラウドサービスを各社で扱っている昨今では、デフォルトでサポートされていない Salesforce や Kintone などのSaaS データを扱いたいケースが多く存在すると思います。

その場合、一般的にはバッチプログラムなどのAPI連携を行うための仕組みを構築しなければいけませんが、CData Connect を使うことで、Metabase に kintone や Salesforce をはじめとして多様なSaaS データをシームレスに連携することができます。

そこで今回は Metabase から CData Connectを経由して、Salesforce のデータを取り込む方法を紹介したいと思います。

接続手順

CData Connect にSalesforce データを接続

まず CData Connect (旧CloudHub) のアカウントを取得します。CData Connect はSaaS ですので、アカウントを取得したらインストールやホスティングなどなく、ブラウザからログインすることですぐに使用開始です。

早速ブラウザからCData Connect にログインします。「DATABASE」タブから仮想データベースを設定していきます。まずは接続するデータソースであるSalesforce のアイコンをクリックします。

f:id:cdatasoftware:20201016155823p:plain

データソース接続画面が開くので、データソース毎の認証情報を入力します。Salesforce の場合はUser、Password、Security Token を入力することでデータにアクセスすることができます。

f:id:cdatasoftware:20201016155923p:plain

次に「ENDPOINTS」タブで、このデータをどのインターフェースのエンドポイントして公開するかを選択します。デフォルトで、OData、MySQL wire protocol、TDS(SQL Server) wire Protocol がすべて有効になっています。

必要があればアクセスを許可する信頼されたIP アドレスを指定することも可能です。

f:id:cdatasoftware:20201014212922p:plain

最後に公開したデータにアクセスできるユーザーとトークンを作成します。「USERS」タブからユーザーを作成するとトークンが生成されます。

f:id:cdatasoftware:20201014212650p:plain

これでCData Connect でSalesforce データを扱う準備ができました。

Metabase にデータベースを追加

続いてMetabase側の手順です。

Metabaseはクラウド版と独自ホスティングを行うオンプレミス版がありますが、今回はクラウド版のトライアルを利用しました。

www.metabase.com

f:id:sugimomoto:20210421100747p:plain

トライアル環境構成後、Metabase管理画面に移動して、CData Connectの接続を追加しましょう。

「データベース」タブから「データベースを追加」をクリックします。

f:id:sugimomoto:20210421095934p:plain

データベースのタイプから「MySQL」を選択して、以下のように接続情報を入力します。

プロパティ名 備考
データベースのタイプ MySQL
名前 例)CData Connect 任意の名称を指定します。
ホスト 例)xxxx.cdatacloud.net 事前に作成したMySQL のエンドポイントを指定します。
ポート 3306
データベース名 例)Salesforce1 対象となるCData Connectのデータソースを指定します。
ユーザー名 例)admin CData Connectで登録したユーザーのIDを指定します。
パスワード 例)YOUR_PASSWORD CData Connectで登録したユーザーのPasswordを指定します。
セキュア接続を使用しますか? TRUE

f:id:sugimomoto:20210421095940p:plain

入力後設定を保存することで、CData Connect経由でSalesforceへの接続が確立されます。

f:id:sugimomoto:20210421095947p:plain

Metabase でSalesforceデータをクエリする

それでは実際に Metabase から Salesforce のデータを取得してみましょう。

クエリエディタを使って、SQLを記述します。

f:id:sugimomoto:20210421095953p:plain

今回はSalesforceの取引先情報を取得してみます。

以下のようなSQLを記述することで、CData Connectを経由し、MetabaseにSalesforceのデータをロードできました。

SELECT * FROM Account

f:id:sugimomoto:20210421095958p:plain

あとは、「ビジュアライゼーション」の画面に移動して、取得したSalesforceのデータを元にグラフを作成できます。

f:id:sugimomoto:20210421100003p:plain

以下のようにビジュアライズができました。

f:id:sugimomoto:20210421100008p:plain

おわりに

今回は Salesforce を接続先のリソースとしましたが、外にも様々なリソースをMySQLインターフェースとして扱うことができます。

www.cdata.com

f:id:sugimomoto:20210324152403p:plain

Metabase と併せて、是非色々と活用してみてください 。