Webブラウザからデータパイプライン構築!XplentyとSalesforceを連携させてみた
データパイプライン構築ツールであるXplentyはクラウドサービス間でのデータ連携が可能です。処理がWebブラウザ上で完結するため、素早く手軽に処理が可能なところも魅力的です。そんなわけで本エントリではXplentyとSalesforceを連携する方法をご紹介します。
もくじ
Xplentyとは
Xplentyはクラウド型のデータパイプライン構築ツールです。ETLやELTのデータ処理をブラウザよりGUIベースで構築可能で、クラウドサービス間でのデータ連携に強みを持っています。
以下URLより7日間の無料トライアルで実際に操作を試せます。
Salesforceとの連携方法
XplentyではSalesforceに接続するためのコネクタが標準で使用でき、簡単にデータ取得・書き出しが可能です。
Connectionを作成する
XplentyではConnectionという機能があり、Xplentyのアカウントがデータを読み書きできるデータリポジトリやサービスを定義します。まずはSalesforceに接続するためのConnectionを作成しましょう。左ペインのメニューからConnectionを選択し、「New Connection」をクリックします。
メニューよりSalesforceを選択します。
接続したい環境を選択し、「Authenticate」ボタンを押します。
「許可」をクリックするとSalesforceと連携されます。
Packageを作成する
Connectionを作成したことによりXplentyからSalesforceへの接続が可能となりましたので、Packageで前処理をしてみましょう。Packageとは、処理するデータ・データ操作・出力先のコンポーネントを使ってデータフローを作成するための機能です。
左メニュー上から二番目のPackageのアイコンをクリックし、「New Package」を選択します。
Packageに関する情報を入力します。今回は以下の通り選択しました。
項目 | 説明 |
---|---|
Name | Packageの名前(任意) |
Description | Packageに関する説明文(任意) |
Type | Dataflowを選択 |
Template | Blankを選択 |
「Create Package」をクリックすると、キャンバスのような画面が表示されます。ここにコンポーネントを追加していきます。今回はSalesforceからデータを取得し、S3にデータを格納する処理を実施します。
コンポーネント配置後のPackageは以下の通り。
「Add component」より、Salesforceを選択します。
ドロップダウンリストから先ほど設定したSalesforceのConnectionを選択します。
Source PropatiesではSalesforceから取得するソースオブジェクトを定義します。
項目 | 説明 |
---|---|
Access Mode | Object オブジェクトを全体を取得(今回はこちらを選びました)Query SOQLを記述してデータ取得 |
Source Object | Salesforce上のオブジェクト(今回はLeadのデータを取得します) |
where clause | Where句を記述(オプション) |
Source action | bulk query アクティブなレコードを取得bulk query all 削除されたレコードを含めて取得 |
Select input fieldsでは、読み込む項目を選択できます。+ボタンで必要な項目を右側に移動させます。今回は全項目を取得したいため、select allで全件右側に移動させています。
プレビューで100件分のデータの確認も可能です。
Salesforceのデータ取得は上記で完了です。あとはお好みでデータを整形したり、他のデータソースからデータを取得したり、データウェアハウスに格納したりできます。Xplentyで用意されているコンポーネントは以下の通り。
Jobを実行する
Xplentyでは、Packageの実行はJobと呼ばれる単位で行います。データフローが完成したのですぐにでも実行したい!…という気持ちを一旦抑えて、Save and validateボタンを押してみましょう。Packageを保存し、エラーが無いかどうか実行前に確認できる機能です。
チェックが完了し、エラーが無い状態だと以下の通り表示されます。
エラーが無いことがわかったので安心して実行してみましょう。Run jobを選択し、New Clusterをクリックします。
実行のためのクラスターを指定します。Xplentyでは、Packageの実行はクラスターと呼ばれるユーザーに割り当てられたマシン(ノード)のグループで行われます。開発用途であればsandboxを無償で使用可能です。Jobの実行後にクラスターを終了させたい場合は「Automatically terminate clusters when jobs complete」にチェックを入れます。ドロップダウンリストより非アクティブ期間が選択でき、この期間の経過後にクラスターは終了されます。
余談ですが、sandboxを選択すると悲しそうな顔をしている猫も、Productionのクラスターを選択すると笑ってくれます。なんとノード数を増やせば増やすほど笑顔を見せてくれます。そんな現金な猫ちゃんもカワイイ!
クラスターを作成し、前の画面に戻って今回実行するPackageを選択します。VariablesではJobを実行する前に変数値を設定できますが、今回はそのまま実行します。
実行中のJobは右メニューのJobアイコンから確認可能です。
実行が完了すると、View Detailsからアウトプットプレビューがテーブル形式・ローデータ形式の両方の形で確認できます。エラーで終了した場合もView Detailsからエラーログを確認できます。
まとめ
Salesforceとの連携が数クリックででき、データの処理もブラウザ上から簡単に行える部分が魅力的に感じました。英語ではありますがドキュメントも充実していますので、他のデータソースとの連携も試してみたいと思います。冒頭でも紹介しましたが、7日間のトライアルも提供されていますので気になった方は試してみてください。