INFORMATICA 変換のチュートリアルとフィルター変換

⚡ スマートサマリー

Informaticaにおける変換は地図ですping ターゲットに向けてデータを作成、変更、または渡すオブジェクトであり、フィルタ変換は、単一のフィルタ条件を満たさないすべての行を削除するアクティブなオブジェクトです。

  • 🔗 接続: 接続された変換はパイプライン内に配置され、接続されていない変換は別の変換の内部から呼び出されます。
  • 🔁 行数: アクティブな変換は行数を変更しますが、パッシブな変換は行内の値のみを変更します。
  • 🎯 フィルターの基本: ある条件によってどの行が処理を継続するかが決定され、それ以外の行はすべてパイプラインから除外される。
  • 🧪 実例: 条件 deptno=10 は、部門番号 10 のレコードのみを EMP_TARGET にロードします。
  • 📄 セッションログ: FALSEと評価された行は破棄され、セッションログに記録されます。
  • 配置: キーping ソースに近いフィルターは、破棄された行が後続の変換処理に渡るのを防ぎます。

Informaticaの変換機能とフィルタ変換機能

変革とは何ですか?

Informaticaにおける変換とは、定義されたターゲット構造(テーブル、ファイル、またはその他のターゲット)に対してデータを作成、変更、または渡すオブジェクトのことです。

Informaticaにおけるデータ変換の目的は、ターゲットシステムの要件に合わせてソースデータを変更することです。また、ターゲットシステムにロードされるデータの品質を保証する役割も果たします。

Informatica は、特定の機能を実行するためのさまざまな変換を提供します。

例えば、ソースデータに基づいた税額計算、データクレンジング処理などを行う場合、変換処理では、データを渡すためのポートを接続し、変換処理は出力ポートを通して出力結果を返します。

変換の分類

変換は、接続性に基づくものと行数の変化に基づくものの2つのカテゴリに分類されます。まず、接続性に基づく変換について見ていきましょう。

接続性に基づく変換の種類

  • 接続された変換
  • 接続されていない変換

Informaticaでは、マップ中にping他の変換と関連付けられている変換は、関連付けられた変換と呼ばれます。

たとえば、 ソース修飾子の変換 ソーステーブルEMPは、部門の従業員をフィルタリングするためのフィルタ変換に接続されています。

他の変換に接続されていない変換は、未接続変換と呼ばれます。

これらの機能は、式変換などの他の変換内で呼び出すことによって使用されます。これらの変換はパイプラインの一部ではありません。

接続された変換は、入力行ごとに変換が呼び出されるか、または変換が値を返すことが期待される場合に推奨されます。たとえば、各行の郵便番号に対して、都市名を返す変換などがこれに該当します。

独立した変換処理は、その機能が定期的に、または特定の条件に基づいてのみ必要とされる場合に役立ちます。たとえば、税額が不明な場合に税額の詳細を計算する場合などです。

下の図は、これら2つのカテゴリーのペアを並べて表示したものです。

接続性および行数の変化によって分類されたInformatica変換

行数の変化に基づく変換の種類

  • アクティブな変換
  • 受動的変換

アクティブ変換とは、入力データ行と入力行数を変更する変換のことです。例えば、入力として10行を受け取り、出力として15行を返す変換は、アクティブ変換です。アクティブ変換では、行内のデータも変更されます。

パッシブ変換とは、入力行数を変更しない変換のことです。パッシブ変換では、入力行数と出力行数は同じままで、行レベルでデータのみが変更されます。

パッシブ変換では、新しい行は作成されず、既存の行も削除されません。

以下はInformaticaの変換リストです

フィルター変換とは何ですか?

フィルタ変換は、レコード数を変更するため、アクティブな変換です。

フィルタ変換を使用すると、フィルタ条件に基づいてレコードをフィルタリングできます。

例えば、部署番号が10の従業員レコードのみを読み込むには、マップにフィルタ変換を配置すればよい。ping フィルタ条件として deptno=10 を指定します。つまり、deptno=10 のレコードのみがフィルタ変換を通過し、残りのレコードは破棄されます。

デフォルトのフィルタ条件はTRUEなので、新しく作成されたフィルタ変換では、条件が入力されるまで全ての行が処理されます。FALSEを返す行は破棄され、セッションログにメッセージが書き込まれます。

フィルター変換の使い方

ステップ1) 作る 地図ping ソース「EMP」とターゲット「EMP_TARGET」を持つ。

地図ping EMPソースとEMP_TARGETターゲットをマップで開いた状態でping デザイナー

ステップ2) 次に地図上でping:

  1. 変形メニューを選択します
  2. 「作成」オプションを選択します。

マップの変換メニューから選択した作成オプションping デザイナー

ステップ3) 次に、[変換の作成] ウィンドウで:

  1. リストからフィルター変換を選択します
  2. 変換名「fltr_deptno_10」を入力してください。
  3. 「作成」オプションを選択します。

フィルタ変換と名前fltr_deptno_10を使用して変換ウィンドウを作成します。

ステップ4) フィルター変換が作成されます。「変換の作成」ウィンドウで「完了」ボタンを選択してください。

新しいfltr_deptno_10変換がマップ上に配置されましたping キャンバス

ステップ5) 地図上でping:

  1. ソース修飾子列をすべてフィルター変換にドラッグアンドドロップします。
  2. フィルタ変換の列をターゲットテーブルにリンクする

ソース修飾子ポートはフィルタ変換にリンクされ、EMP_TARGETへと接続されます。

ステップ6) Double-フィルター変換をクリックしてプロパティを開き、次に:

  1. プロパティタブを選択します。
  2. フィルター条件エディターをクリックします。

フィルタ変換のプロパティタブにフィルタ条件行を表示

ステップ7) 次に、フィルタ条件式エディタで:

  1. フィルタ条件を入力してください – deptno=10
  2. OKボタンを選択してください

フィルタ条件 deptno=10 が入力され、検証された式エディタ

ステップ8) 再び「変換の編集」ウィンドウを開き、「プロパティ」タブにフィルター条件が表示されます。「OK」ボタンを選択してください。

フィルタ条件 deptno=10 がフィルタ条件プロパティに対して表示されます

これでマップを保存できますping 作成後に実行します セッション (NAIST) と ワークフロー対象テーブルでは、deptno=10 のレコードのみがロードされます。

このようにして、フィルタ変換を使用してソースレコードをフィルタリングできます。

フィルタ vs ルーター vs ソース修飾フィルタ

Informaticaには不要な行を削除できるオブジェクトが3つあり、間違ったオブジェクトを選択すると、パフォーマンスの低下、または削除されたデータの可視性の低下のいずれかが発生します。

オブジェクト 行の削除方法 いつ選ぶか
フィルタ変換 変換ごとに条件は1つです。FALSEを返す行は削除され、セッションログに記録されます。 マップ内に適用される単一のシンプルなルールping.
ルーター変換 複数のグループ条件を一度に処理します。どのグループにも一致しない行は、デフォルトグループに送られます。 行を複数のストリームに分割するか、拒否された行を捕捉する必要があります。
ソース修飾子 filter その条件は、リレーショナルデータベースから読み取られたSQLのWHERE句の一部となる。 ソースはリレーショナルデータベースであり、不要な行がデータベースから削除されることは決してあってはなりません。

単一のルーターは受信データを一度読み取りますが、同じ入力をテストする複数のフィルター変換により、統合サービスはそれぞれのデータに対して再度処理を行います。ソース修飾フィルターは、外部のデータを制限します。tracソースから送信されるものを制限するのに対し、フィルタ変換はターゲットに送信されるものを制限します。

フィルター変換のパフォーマンスを向上させるためのヒント

フィルタ条件は変換に到達するすべての行に対して評価されるため、オブジェクトがマップ内のどこにあるかによって決まります。ping セッション時間に直接的な影響を与える。

  • フィルタ変換はできるだけソースに近い場所に配置し、不要な行が後続の変換を通過しないようにしてください。
  • ソースがリレーショナルデータベースの場合は、データベースが統合サービスよりも高速に行をフィルタリングするため、条件をソース修飾子にプッシュしてください。
  • 条件はシンプルに保ちましょう。複雑な式は式変換に移動して、フィルタがテストする単一のフラグポートに簡略化できます。
  • 同じ入力をテストする複数のフィルタ変換の代わりに、1つのルーターを使用することで、受信データが一度だけ読み込まれるようにします。
  • デフォルトの条件はTRUEであることに注意してください。そのため、フィルターが設定されていない場合、すべてが通過し、エラーが隠蔽されます。

削除された行はすべてセッションログにメッセージとして書き込まれるため、予期せずターゲットが空になった場合は、マップを再実行するのではなく、そのログを読むことで原因が特定できることが多い。ping.

よくあるご質問

1つだけです。式はANDとORを使用して複数のテストを組み合わせることができますが、変換では入力行ごとにTRUEまたはFALSEを返す単一の式が評価されます。

null の結果は FALSE として扱われるため、行は削除されます。ping ISNULLまたはIIFのポートは意図を明確にし、明らかな理由なく行が消えるのを防ぎます。

はい。文字列比較では大文字と小文字が区別されるため、「SALES」のような値は「Sales」とは一致しません。ポートにUPPERまたはLOWERを適用することで、ソースデータに一貫性がない場合でもテストの信頼性を維持できます。

活動的なもの。 ノーマライザー は、列が重複する単一のレコードを複数の行に変換し、Union はパイプラインをマージします。パッシブ オブジェクトは常に同じ行数を返します。

パイプラインにリンクがないため、データ行は何も供給されません。別の変換処理が引数付きで名前を指定して呼び出し、1つの戻り値を受け取り、オブジェクトはその呼び出しに対してのみ実行されます。

はい。再利用可能なオブジェクトはTransformation Developerで作成され、リポジトリに保存されるため、1つの定義を複数のオブジェクトにドロップできます。 地図pings そして、一箇所で編集されました。

最新の統合ツールにおける機械学習は、データソースのプロファイリングを行い、データクレンジングとマッチングのルールを提案し、値が変動する列にフラグを立てるため、設計者は白紙の状態から始めるのではなく、提案されたパイプラインから設計を開始できます。

Copilotは、平易な記述からIIF、ISNULL、DECODEなどの式構文を生成するため、条件記述が高速化されます。ただし、生成された各式は、Designer内で実際の行に対してテストする必要があります。