このシナリオでは、コンテキスト変数を追加し、実行時におけるユーザーデータのフィルタリングで使われる値が上書きされるようにします。
始める前に
-
ソースデータを保存するシステムへの接続が作成されていること。ここではテスト接続を使用します。
-
ソースデータを保管するデータセットが追加済みであること。
ここでは、ユーザー情報(名前、会社、メール、口座残高など)に関するデータを使います。詳細は、テストデータセットを作成をご覧ください。
- また、ログ出力を保存するデスティネーションのテストデータセットも作成されていること。
手順
-
[Pipelines] (パイプライン)ページで[Add pipeline] (パイプラインを追加)をクリックします。新しいパイプラインが開きます。
-
パイプラインに意味のある名前を付けます。
例
コンテキスト変数を使ったユーザー データのフィルタリング
-
[ADD SOURCE] (ソースを追加)をクリックすると、ソースデータ(ここではユーザーデータ)を選択できるパネルが開きます。
-
データセットを選択し、[Select] (選択)をクリックしてパイプラインに追加できるようにします。
必要であれば名前を変更します。
-
をクリックし、パイプラインにFilterプロセッサーを追加します。[Configuration] (設定)パネルが開きます。
-
プロセッサーに、意味のある名前(filter on balances >= $3,000など)を付けます。
-
[Filter] (フィルター)エリアで次の操作を行います。
-
ユーザーの口座残高に応じてレコードをフィルタリングする場合は、[Input] (入力)エリアで[.balance]を選択します。
-
口座残高が3,000ドル以上のユーザーをフィルタリングする場合は、[Optionally select a function to apply] (適用する機能をオプションとして選択)リストから[None] (なし)を選択し、[Operator] (オペレーター)リストで>=を選択して、[Value] (値)リストに$3,000と入力します。
-
[Save] (保存)をクリックして設定を保存します。
レコードがフィルタリングされ、定義した基準を満たしているレコードは4つのみであることがわかります。
-
パイプラインの[ADD DESTINATION] (デスティネーションを追加)項目をクリックしてパネルを開くと、フィルタリングされたデータを保持するデータセットを選択できます。
-
デスティネーションに、意味のある名前(log outputなど)を付けます。
-
デスティネーションデータセットの[Configuration] (設定)タブで[Log records to STDOUT] (レコードをSTDOUTに記録)オプションを有効にし、パイプライン実行ログの読み取りレコードを印刷します。
-
(オプション)この段階でパイプラインを実行すると、データプレビューで確認した4つのレコードが定義済みフィルターに従って渡されたことがログに表示されます。
-
Filterプロセッサーの[Configuration] (設定)タブに戻り、変数の追加と割り当てを行います。
-
[Value] (値)フィールドの横にあるアイコンをクリックし、[Assign a variable] (変数を割り当て)ウィンドウを開きます。
-
[Add variable] (変数を追加)をクリックします。
-
変数に名前(balance_amountなど)を付けます。
-
デフォルト値(ここでは$1,000)を上書きする変数値を入力します。
-
必要であれば説明を入力し、[Add] (追加)をクリックします。
-
これで変数が作成されます。リダイレクト先の[Assign a variable]ウィンドウに全コンテキスト変数がリスト表示されます。ユーザーを選択して[Assign] (割り当て)をクリックします。
自分の変数とその値がフィルターの
[Value] (値)フィールドに割り当てられるので、前に定義した$3,000という値が$1,000という値に上書きされます。
-
[Save] (保存)をクリックして設定を保存します。
-
Talend Cloud Pipeline Designerの上部ツールバーで[Run] (実行)ボタンをクリックするとパネルが開き、実行プロファイルを選択できるようになります。
-
リストで実行プロファイルを選択し(詳細は実行プロファイルをご覧ください)、[Run] (実行)をクリックしてパイプラインを実行します。
タスクの結果
パイプラインは実行中となり、データはフィルタリング値に割り当てたコンテキスト変数に従ってフィルタリングされます。パイプラインの実行ログは次のようになります。
- 実行時に使用されたコンテキスト変数の値
- 生成されたレコードの数(この場合は7つで、これは口座残高が1,000ドル以上であるユーザーレコードが7つ存在することを意味します)