CData Software Blog

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

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

CData Connect とは?

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

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

この記事では、SalesforceMySQL エンドポイントに仮想化して、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 データ(通常はJSONXML)をカラムとレコードを持ったテーブルにモデル化。メタデータの検出・付与までを行います。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 経由でSalesforceCRUD

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

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

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 などの多様なSaaSSQL だけで接続を実現することができます。

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

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

www.cdatablog.jp

www.cdatablog.jp

www.cdatablog.jp