メイン コンテンツをスキップする

各行でルックアップをリロードして詳細なマッピングを行う

次のシナリオでは、年齢の結合に基づいて、ルックアップデータベースから人の詳細を取得するジョブについて説明します。メインフローのソースデータは、people_ageというMySQLデータベーステーブルから読み取られます。これには、数値ID、英数字の姓と名、数値の年齢など、人の詳細が含まれます。人の年齢は40歳か60歳です。このテーブルのレコード数は、意図的に制限されています。

参照またはルックアップ情報は、large_data_volumeというMySQLデータベーステーブルにも保管されます。このルックアップテーブルには、メインフローの人が訪れた都市を含む多数のレコードが含まれています。わかりやすくするためにレコードの数は制限されていますが、通常の使用では、以下の例で説明する機能の有用性は、非常に大きな参照データボリュームの場合により明白になります。

パフォーマンスを最適化するために、ルックアップテーブルから行をロードするたびに実行しなくて済むように、データベース接続コンポーネントをジョブの最初に使って、ルックアップデータベーステーブルへの接続を開きます。

年齢が60または40の人からのデータのみを選択するために、このルックアップソースフローに式フィルターが適用されます。このようにして、ルックアップデータベーステーブルの関連する行のみがメインフローから各行にロードされます。

したがって、このジョブは、限られた数のメインフロー行から、式キーに一致する結果のみをロードするようにルックアップ結合を最適化する方法を示しています。

情報メモ注:

一般的に、ルックアップロードは各メインフロー行に対して実行されるため、このオプションは主に、限られた行数がメインフローで処理され、多数の参照行がルックアップされる場合に役立ちます。

結合はageフィールドで解決されます。次に、tMapコンポーネントエディターの関連するロードオプションを使って、ルックアップデータベース情報が各メインフローの受信行に対してロードされます。

このジョブでは、ソースコンポーネントと接続コンポーネントのメタデータが準備されています。データベース接続スキーマメタデータの設定方法は、データベースメタデータを一元管理をご覧ください。

このジョブは、5つのコンポーネント、4つのデータベースコンポーネント、およびマッピングコンポーネントで形成されます。

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。