はじめに
この投稿はSalesforce Advent Calendar 2022の18日目の記事です。
昨年に続き、今年も投稿させていただきます。
以前までは、データローダで、Salesforceにデータの連携をしてきました。
しかし最近は、TalendでSalesforceとのデータを連携することが多いです。
せっかくなので、Talendで簡単なジョブを作成しSalesforceへデータをインポートする流れを、記事にしてみようと思います。
Talendってなに?
公式サイトでは、下記のように説明されています。
Talendは、データ統合、データ整合性、データガバナンス、リアルタイムデータ配信のための単一の統合プラットフォームを提供します。
- あらゆるデータソースからあらゆるデータデスティネーションに接続
- クラウド、オンプレミス、ハイブリッド構成でのデプロイ
- データ統合コストの削減
- データガバナンスのコンプライアンスにかかる時間を短縮
要するに、汎用性の高いETLツールです。
ETLツールとは、データを「Extract(抽出)」し、「Transform(加工)」したうえで、「Load(書き出し)」できるツールのカテゴリーの一つを指します。3つの頭文字を略して、ETL(イー・ティー・エル)と称します。
- Extract:抽出
- Transform:加工
- Load:書き出し
Talendは、GUI操作で直感的にわかり易くジョブを作って、データの連携ができる特徴があります。
OSS版の、Talend Open Studioであれば無償で利用可能なので、ETLツールを試してみたい方にもおすすめです。私も無償版ですが、Salesforceとのデータ連携においては十分に重宝しております。必要に応じて、自分でJavaを書いてルーチンを用意しておくことも可能です。
Talendの環境構築
Oracleのサイトから、ダウンロード&インストールします。
JDK
Talendのサイトからダウンロード&インストールします。
Talend Open Studio
Salesforce組織を用意
今回は、デモ用のTrailhead Playgroundでテストしていきます。
Trailhead Playgroundを新しく作成して、パスワードのリセットをします。
今回はSalesforceへデータをインポートする、一連の流れを解説します。
Talendでプロジェクトを作成
Talendが起動したら、「新規プロジェクトを作成」で任意の名前で作成します。
新規プロジェクトが作成されたら、画面下側の「Start now!」をクリックします。
Talendを操作してみる
ここから実際の作業解説です。ぜひデータ連携をお時間あるときにご自身の環境でもお試しください。
今回はシンプルに、Salesforceに、取引先をインポートしてみたいと思います。
Talendに慣れていない方は、少しづつ進めてみてください。
逆に、Talendや他のETLツールに慣れている方には、簡単に思えるかもしれません。
ジョブを作成する
最初に、画面左の「ジョブ」から、「ジョブの作成」を開きます。
Excelファイルを用意する
下記のような、インポート用のExcelファイルを用意します。
画面左のメタデータ>Excelファイルから、「Excelファイルの作成」を開きます。
ステップ1of4はそのまま「Next」をクリックして、ステップ2of4に進みます。
ファイルを「参照」して、先程のExcelを選択します。
ステップ2of4「Next」をクリックして、ステップ3of4に進みます。
プレビューで、「最初の行をカラム名として設定」にチェックを入れます。
ステップ3of4「Next」をクリック、そのままステップ4of4に進んで「Finish」をクリックします。
画面左のメタデータ>Excelファイルに、「inAccount 0.1」が作成されます。
「inAccount 0.1」を、中央のデザイナー画面にドラッグ&ドロップして配置します。
[tFileInputExcel]コンポーネントを選択します。
移行元データを抽出するコンポーネントが、下記の[tFileInputExcel]コンポーネントです。
tMapコンポーネントを配置する
次に、中央のデザイナー画面で、「tmap」とタイピングして、[tMap]を選択します。
「tMap」は、先程の[tFileInputExcel]の連携するデータの、中間役になるコンポーネントです。
[tFileInputExcel]を右クリックして、「ロウ」>「メイン」を選択します。
デフォルトで「row1」というルートができるので、マウスで[tMap]に接続します。
この接続で、データをコンポーネントから他のコンポーネントに渡せます。
右上の緑+ボタンをクリックして、New outputを作成します。名前は任意です。
左側に「row1」のカラムから、「Name」を右側の「out1」にドラッグ&ドロップします。
同じく「Phone」も右側の「out1」にドラッグ&ドロップして、下記のように接続します。
tSalesforceOutputコンポーネントを配置する
最後に、アウトプット用のコンポーネントを作成します。
画面左のメタデータ>Salesforcec>「Salesforce接続」を開きます。
「Salesforce接続設定」の名前は任意で、該当組織のユーザIDとパスワードを入力します。
今回はデモ用のTrailhead Playgroundでパスワードリセットを使用してます。
詳細は下記をご参照ください。
送信されたパスワードリセットから、Playgroundで再ログインをしたら、下記手順でセキュリティトークンのリセットを行います。
-個人設定から、[クイック検索] ボックスに「リセット」と入力し、[私のセキュリティトークンのリセット] を選択します。
-[セキュリティトークンのリセット] をクリックします。Salesforce 個人設定のメールアドレスに新しいセキュリティトークンがメールで送信されます。
詳細は下記をご参照ください。
「Salesforce接続設定」の右側下「セキュリティトークン」に送信された新しいセキュリティトークンを入力します。
「Test connection」を押下して、接続テストをします。
「Next」で、デフォルトのまま「Finish」をクリックします。
画面右側の「Salesforce」の下に「Salesforce 0.1」が作成されます。
「Salesforce 0.1」を、中央のデザイナー画面の[tMap]の右側にドラッグ&ドロップして配置します。
[tSalesforceOutput]コンポーネントを選択します。
[tSalesforceOutput]を右クリックして、「ロウ」>「out1」を選択します。
先程作成した「out1」というルートができるので、マウスで[tSalesforceOutput]に接続します。
[tSalesforceOutput]コンポーネントの、スキーマの編集を開きます。
[tSalesforceOutput]コンポーネントの、モジュール名をクリックして、「取引先」にチェックを入れます。
下記のように、モジュール名に"Account"が表示されていることを確認します。
[tSalesforceOutput]コンポーネントで、「実行」をクリックします。
「実行」をクリックした後、下記のように表示されたら成功です。
ジョブ~~~を~~~で開始します。
ジョブ~~~が~~~で終了しました。 [終了コード = 0]
Salesforce組織を確認すると、無事にデータがインポートされました。
まとめ
ここまで読んでいただき、ありがとうございます!
今回は、初めてTalendに触れる方でも分かりやすいよう、3件の取引先をインポートしました。
もしかしたら、準備や作業手順が多くて面倒に思った方もいるかも知れません。
しかし、データが10,000件、100,000件と増えて、作業の繰り返しが多くなると、ETLツールの効果を実感されると思います。
特に、Talendのデータ連携は、Salesforceでデータが多くなったり、マッピング項目・参照関係が増えて複雑になっても、対応可能範囲が広いですし、慣れてしまえばマッピング作業も楽になります。
今までETLツールを使ったことがなかったという方は、ぜひお試ししてみてください!