前回はTalendにログインができたので、今回からいよいよ実践編。
まずは、Salesforceから。
Salesforceと接続する前にデモを確認
今回使用するのはTALEND PIPELINE DESIGNER(パイプラインデザイナー)。
データを取り込んで、取り込んだデータに対する処理フローをワークフローとして定義します。
ワークフローはデザイナー上で可視化しているので、ゴリゴリにコードを打ち込むことなくマウス操作をメインにフローが作成できます。
ちなみに、Talendではワークフローではなくパイプラインという名前で統一しているみたい。
まず、PIPELINE DESIGNERを起動。
実際に作る前にすでに作成済みのデモ版を確認。
なるほど、処理自体は視覚的に分かりやすいです。
Aircraftsデータ(JSON)を取り込んで、抽出や変換でデータを加工していき、最終的にはCSV形式のログに出すみたい。
パイプラインを構成するにあたり、基本的な流れとしては、
- データ取得
- 加工
- 出力
といった手順で処理していく感じになりそう。
Salesforceのデータを使用したパイプライン作成
デモ版を眺めたところで、Salesforceのデータを取り込んでパイプラインを作ってみます。
まずは左のメニューから[パイプライン]を選択し、[パイプラインの追加]を押しましょう。
Salesforceからデータを取り込む
パイプラインの名前はそれっぽく変えておいて、[ソースの追加]からデータの取り込みを定義します。
データセットを選択します…が、Salesforce系のデータセットがないので、新しく作りましょう。
[データセットの追加]を押します。
※今回はパイプラインから作成しましたが、直接左のデータセットメニューから作成してもOKです
データセットの作成画面へ。
データセット名は分かるような名前であればOK。
接続のところにSalesforceを選択したいところですが、こちらも接続を定義していないので、[接続を追加]でSalesforceとの接続情報を作ります。
最初から材料を揃えていればこんなことにはならないんですが、ゼロから作り始めると市役所現象(たらい回し)が起こります。。。
巡り巡って接続の追加へ。
接続タイプは「Salesforce」を選択、エンジンには唯一作成されている組織を選択。
スクロールしてユーザ名、パスワード、(あれば)セキュリティトークンを入れましょう。
URLはデフォルトの状態ですが、もしSalesforceに独自ドメインを適用している場合は適宜変えておきましょう。
必要情報を入力したら[テスト接続]。
おっと、エラーが発生。
Salesforce側でセキュリティトークンを発行するか、信頼済みIPアドレスを加えるかしましょう。
僕はセキュリティトークンの発行が面倒だったので、後者の方法を使用しています。
IPアドレスはユーザのログイン履歴に失敗した記録があります。
それを、ネットワークアクセスから信頼済みIP範囲に追加。
再度[テスト接続]をして、今後は成功!
接続が成功したら[検証]を押しましょう。
これで接続の設定はおしまい。
データセットの作成に戻ります。
Salesforceとの接続が確立されるので、[Type]に「モジュールの選択」を選んで、あとは取得したオプジェクトとカラムを選択。
条件はお好みで。
SOQLを熟知しているのであれば、[Type]の選択を「SOQLクエリ」にしてSOQLを打ち込んでもOK!
久しぶりにSOQL打ったなぁ。
データが正しく取り込まれているか確認するために、[サンプルを表示]で確認しましょう。
実際にデータが取得できれば成功!
データの取得も確認できたら[検証]を押してデータセットの作成は終了。
パイプラインにSalesforceのアイコンが付いてくるはず。
ふぅ、疲れた。
まだまだ前半だけど。
デスティネーションの追加
データの加工は置いといて、次にデスティネーションを追加します。
要は、受信側(保存先)をどうするかの設定です。
パイプライン上にある[デスティネーションの追加]をクリック。
今回はシンプルにログに出力してみます。
デフォルトである「Analysis Results Log」を選択。
[レコードをSTDOUTに記録]はONにしておきます。
これでシンプルですが、パイプラインは完成。
早速実行しましょう。
出力結果はちょっとわかりづらいけど、ここから確認。
パイプライン詳細はプロセッサー(パイプラインの処理部分)以外にマウスをクリックすれば出てきます。
レコードも表示されてるので、これでうまく取り込みと出力がされていますね。
あとは間の処理にフィルタを入れたり、データを変換したりする感じでSalesforceのデータを扱っていくことになります。
Salesforceはコネクタが用意されていることもあり、シンプルに接続と取り込みができたと思います。
次回はDynamicsの方で実験。
果たしてうまくいくのか!?
コメント