各製品の資料を入手。
詳細はこちら →オープンソースのBIツール Metabase のデータソースをCData Connect で拡張:Salesforce 編
こんにちは。CData Software Japanリードエンジニアの杉本です。
今回は オープンソースのBIツール Metabase と CData Connect を組み合わせてネイティブにサポートされていないデータソースを追加し、分析に活用する方法を紹介します。
CData Connect とは?
CData Connect は、SaaS ベースで提供されるデータハブサービスです。Salesforce、NetSuite、Dynamics、Marketo、kintone など多様なSaaS にBI、アナリティクス、iPaaS、ノーコード開発プラットフォームからアクセスするための仮想エンドポイントです。連携方法が異なるSaaS をMySQL、SQL Server、OData の3種類のインターフェースに仮想化することで、データ連携をシンプルに実現します。
"SQL as a Service" といっていいかもしれません。
Metabase へのSaaS データ連携
Metabase は、各種クラウドDB、BigQuery、Redshift などのクラウドデータストレージをサポートしています。
- BigQuery
- Druid
- Google Analytics
- H2
- MongoDB (version 3.6 or higher)
- MySQL (version 5.7 or higher, as well as MariaDB version 10.2 or higher)
- Oracle
- PostgreSQL
- Presto
- Redshift (Amazon Web Services)
- Snowflake
- SparkSQL
- SQL Server
- SQLite
- Vertica
(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 のアイコンをクリックします。
データソース接続画面が開くので、データソース毎の認証情報を入力します。Salesforce の場合はUser、Password、Security Token を入力することでデータにアクセスすることができます。
次に「ENDPOINTS」タブで、このデータをどのインターフェースのエンドポイントして公開するかを選択します。デフォルトで、OData、MySQL wire protocol、TDS(SQL Server) wire Protocol がすべて有効になっています。
必要があればアクセスを許可する信頼されたIP アドレスを指定することも可能です。
最後に公開したデータにアクセスできるユーザーとトークンを作成します。「USERS」タブからユーザーを作成するとトークンが生成されます。
これでCData Connect でSalesforce データを扱う準備ができました。
Metabase にデータベースを追加
続いてMetabase側の手順です。
Metabaseはクラウド版と独自ホスティングを行うオンプレミス版がありますが、今回はクラウド版のトライアルを利用しました。
トライアル環境構成後、Metabase管理画面に移動して、CData Connectの接続を追加しましょう。
「データベース」タブから「データベースを追加」をクリックします。
データベースのタイプから「MySQL」を選択して、以下のように接続情報を入力します。
プロパティ名 | 値 | 備考 |
---|---|---|
データベースのタイプ | MySQL | |
名前 | 例)CData Connect | 任意の名称を指定します。 |
ホスト | 例)xxxx.cdatacloud.net | 事前に作成したMySQL のエンドポイントを指定します。 |
ポート | 3306 | |
データベース名 | 例)Salesforce1 | 対象となるCData Connectのデータソースを指定します。 |
ユーザー名 | 例)admin | CData Connectで登録したユーザーのIDを指定します。 |
パスワード | 例)YOUR_PASSWORD | CData Connectで登録したユーザーのPasswordを指定します。 |
セキュア接続を使用しますか? | TRUE |
入力後設定を保存することで、CData Connect経由でSalesforceへの接続が確立されます。
Metabase でSalesforceデータをクエリする
それでは実際に Metabase から Salesforce のデータを取得してみましょう。
クエリエディタを使って、SQLを記述します。
今回はSalesforceの取引先情報を取得してみます。
以下のようなSQLを記述することで、CData Connectを経由し、MetabaseにSalesforceのデータをロードできました。
SELECT * FROM Account
あとは、「ビジュアライゼーション」の画面に移動して、取得したSalesforceのデータを元にグラフを作成できます。
以下のようにビジュアライズができました。
おわりに
今回は Salesforce を接続先のリソースとしましたが、外にも様々なリソースをMySQLインターフェースとして扱うことができます。
Metabase と併せて、是非色々と活用してみてください 。