MuleSoftで大量データをCSVに一括出力する方法

今回はMuleSoftを使って大量データをCSVに出力する方法をご紹介します。

はじめに

みなさんは、MuleSoftを利用したデータ連携開発を行ったことがありますか?
MuleSoftはリアルタイムでデータを連携することはもちろん、大量データをファイルにまとめて転送することも可能です。
今回は、MuleSoftがSalesforceに接続して取引先データをCSVで一括出力する方法をご紹介したいと思います。

Salesforceからデータの取得するための設定

・Salesforce側の準備
Salesforceに接続するため、認証が必要です。今回はSalesforceのセキュリティトークン、ユーザ名、パスワードの3つの情報で認証できる方式を採用します。
接続するSalesforceユーザの私の個人情報⇒私のセキュリティトークンのリセット画面からセキュリティトークンを発行します。

Salesforceのユーザのメールにセキュリティトークンが送信されたら、セキュリティトークンを控えておきます。
・Salesforceコネクタを使用
Salesforceに接続するためにSalesforeコネクタを使用します。

今回は取引先データを取得するため、Salesforceコネクタの「Query」コンポーネントを使用します。「Query」コンポーネントをHTTP Listenerの直後に挿入します。

Basic SettingsのConnector configurationを設定します。

Connector configurationにはSalesforceの接続情報を入力します。

接続情報を入力したら、「Test Connection」ボタンを押下し接続確認を行います。「Test connection successful」が表示されたら接続成功です。
「Query」コンポーネントの設定画面に、データ取得するためのSOQLを記載します。

これでデータ取得するための最低限の設定ができました。

取得したデータをCSVに変換

データ変換には「Transform Message」コンポーネントを使います。「Transform Message」コンポーネントを「Query」の直後に挿入します。

Input情報のPayloadにはQueryに設定したSOQLの取得項目が自動で設定されます。

Outputのpayloadを記載する言語は、DataWeaveと呼ばれます。DataWeaveの記載により、データの出力形式やデータ型、値を定義することができます。
DataWeaveの詳細は下記リンクをご確認ください。
今回は出力形式を「CSV」に変更します。

CSVの出力設定

ファイルの出力に関する設定はfileコネクタのwriteコンポーネントで行います。

今回は必要最小限の情報として出力パスのみ設定します。

※出力パスはご自身の環境にあわせて設定してください。

APIを実行し結果確認

以上で全ての設定が完了しました。APIを起動し、HTTPリクエストを送信すると、ファイルが出力されるのが確認できると思います。今回の実行結果は下記の通りです。

終わりに

いかがでしょうか。今回はシンプルにSalesforceの取引先の情報をCSVに一括出力してみましたが、DataWeaveを使ってcsvのフォーマットの変更や、出力データ値の加工もできますので、ぜひお試しください。