CData Connect を使ってSalesforce データをMySQL に仮想化してWorkbench からCRUD 操作

by Jonathan Hikita | 2020年10月21日

CData Connect とは?

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

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

この記事では、Salesforce をMySQL エンドポイントに仮想化して、MySQL Workbench からリアルタイムSalesforce データをCRUD します。

f:id:cdatasoftware:20201021144124p:plain
CData Connect で、Salesforce データにMySQL Workbench からCRUD

CData Connect を使うポイント

  • クラウドサービスとして提供され、これ一つでSalesforce でもMarketo でもNetSuite でもCData Connect がサポートするコネクタに同じインターフェースでつなぐことができます。

  • MySQL ワイヤプロトコルに準拠。MySQL データベースにアクセスする方法でCData Connect 経由でSaaS にアクセス可能です。

  • CData Connect がSaaS データ(通常はJSON やXML)をカラムとレコードを持ったテーブルにモデル化。メタデータの検出・付与までを行います。Salesforce やkintone のようにカスタムオブジェクトを持つデータソースでもメタデータの動的検出を行います。

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 データを扱う準備ができました。

MySQL Workbench でCData Connect 経由でSalesforce をCRUD

MySQL Workbench からCData Connect に接続

Workbench にて新しいデータベース接続を作成します。ここにMySQL データベースとしてCData Connect のクレデンシャルを入力します。

  • Conection Name:任意

  • Connection Method: Standard (TCP/IP)

  • Hostname: CData Connect のMySQL エンドポイント xxxxx.cdatacloud.net

  • Port: 3306

  • Username: CData Connect のユーザー名

  • Password: CData Connect のパスワード

f:id:cdatasoftware:20201021145002p:plain
MySQL Workbench からCData Connect に接続

「Test Connection」で接続を確認します。接続の成功が確認できたらOK を押して接続を確立します。

f:id:cdatasoftware:20201021145411p:plain
CData Connect の接続確認(MySQL Workbench)

Salesforce データのSELECT

左のSCHEMAS ペインに、CData Connect で有効になっているエンドポイントが表示されます。今はDynamicsCRM1、Kintone1、Kintone2、Salesforce1のエンドポイントが表示されていますね。

Salesforce1 のエンドポイントを開くとTable としてSalesforce のオブジェクトがモデル化されて表示されます。

f:id:cdatasoftware:20201021145552p:plain
CData Connect をMySQL Workbench から参照

さっそく、「Account(取引先)」テーブルをSELECT してみます。通常のSQL でデータを操作することができます。

SELECT * FROM Salesforce1.Account;

SELECT 結果がグリッドで確認できます。実際のSalesforce のブラウザ画面で確認できる情報と同じ結果が返ってきました。

f:id:cdatasoftware:20201021145842p:plain

もちろんWHERE 句でのフィルタリングができます。

SELECT * FROM Salesforce1.Account WHERE Type = 'Customer - Direct';

f:id:cdatasoftware:20201021150105p:plain

集計関数でCOUNT したり、最大、最小、平均、合計を求めることもできます。

SELECT COUNT(*) FROM Salesforce1.Account WHERE Type = 'Customer - Direct';

f:id:cdatasoftware:20201021150212p:plain

並び替えも当然できます。

SELECT Name, NumberOfEmployees FROM Salesforce1.Account ORDER BY NumberOfEmployees DESC;

f:id:cdatasoftware:20201021150304p:plain

Salesforce のオブジェクト間のJOIN クエリも可能です。AccountとOpportunity をINNER JOIN してみます。

SELECT Account.Id, Account.Name, Account.Fax, Opportunity.AccountId, Opportunity.CloseDate
FROM Salesforce1.Account
INNER JOIN Opportunity
ON Account.Id = Opportunity.AccountId

f:id:cdatasoftware:20201021150425p:plain

このように多様なSQL をSalesforce データに対して発行することが可能です。

Salesforce にINSERT

書き込み系の処理も可能です。MySQL Workbench で以下のようにSalesforce のAccount(取引先)に対して、レコードのINSERT を実行します。

INSERT INTO Salesforce1.Account
(Name)
VALUES
('Test ssss')

f:id:cdatasoftware:20201021150727p:plain
MySQL Workbench からSalesforce にINSERT を実行

Salesforce の画面で確認するとたしかに新しい取引先が追加されました。 f:id:cdatasoftware:20201021150915p:plain

Salesforce データをUPDATE

今度はMySQL Workbench からSalesforce のデータをUPDATE します。これもSQL で処理を実行します。

UPDATE Salesforce1.Account
SET Name = 'Test pppp' 
WHERE Id = 0012r000005U9pUAAS

f:id:cdatasoftware:20201021151057p:plain

Salesforce 画面で確認するとレコードが更新されています。

f:id:cdatasoftware:20201021151210p:plain

Salesforce データをDELETE

最後にMySQL Workbench からSalesforce のデータをDELETE します。

DELETE FROM Salesforce1.Account 
WHERE Id = 0012r000005U9pUAAS

f:id:cdatasoftware:20201021151411p:plain

このように、MySQL データベースと同感覚でCData Connect を経由してSalesforce データをリアルタイムでCRUD することができました

CData Connect で何ができるの?

Salesforce などのSaaS データをCData Connect がMySQL に仮想化してくれると何ができのでしょうか?CData Connect を使うことで、MySQL インターフェースを持つあらゆるクラウド・オンプレアプリケーションからSalesforce などの多様なSaaS にSQL だけで接続を実現することができます。

例えば、Google Data Studio、Google Cloud Data Fusion、Tableau Online をはじめ多くのBI、アナリティクス、ETL ツールからネイティブでは接続できない多様なデータソースにシームレスにアクセスすることが可能になります。

以下にそれぞれのツールからのCData Connect の利用記事がありますので参考にしてください。

www.cdatablog.jp

www.cdatablog.jp

https://www.cdata.com/jp/blog/2020-10-14-215935

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。