Informaticaトランスフォーメーションは、テーブル、ファイル、またはその他の必要なターゲットなど、定義されたターゲット構造にデータを読み取ったり、変更したり、渡したりできるリポジトリオブジェクトです。変換は基本的に、データフローとデータがターゲットにロードされる方法を定義する一連のルールを表すために使用されます。 Informatica PowerCenterは複数の変換を提供し、それぞれが特定の機能を提供します。さらに、Informaticaがデータ統合プラットフォームで今日の市場をリードしているため、InformaticaTransformationsは 。
Informaticaトランスフォーメーションをよりよく理解するために、最初にマッピングとは何かを理解しましょう。マッピングは、一連の変換によってリンクされたソースオブジェクトとターゲットオブジェクトのコレクションです。したがって、マッピングの変換は、ワークフローの実行中に統合サービスがデータに対して実行する操作を表します。ワークフローをよりよく理解するために、私たちのブログをチェックすることができます Informaticaチュートリアル:ワークフロー管理
さまざまなInformaticaトランスフォーメーションとは何ですか?
Informaticaトランスフォーメーションは、主に2つのカテゴリに分類できます。 1つは、変換の相互の接続性(マッピングでのリンク)に基づいており、2つ目は、ソースとターゲットの間の全体的な行数の変化に基づいています。まず、接続性に基づくInformaticaの変換を見てみましょう。
1)接続性に基づくInformaticaの変換のタイプ:
- 接続された変換。
- 接続されていない変換。
Informaticaでは、1つ以上の変換に接続されている変換は次のように呼ばれます。 接続された変換 。
接続された変換は、すべての入力行に対して変換が呼び出され、値を返すことが期待される場合に使用されます。たとえば、接続されたルックアップ変換を使用して、ルックアップ式で部門IDを指定することにより、特定の部門で働くすべての従業員の名前を知ることができます。
接続されている主要なInformaticaトランスフォーメーションには、アグリゲーター、ルーター、ジョイナー、ノーマライザーなどがあります。
他の変換に接続されていない変換は、 接続されていない変換 。それらの機能は、式変換などの他の変換内で呼び出すことによって使用されます。これらの変換は、マッピングパイプラインの一部ではありません。
接続されていない変換は、特定の条件に基づいてのみ機能が必要な場合に使用されます。たとえば、プログラマーとして、データに対して複雑な操作を実行したい場合、この操作を実行するために、式やフィルター変換などのInformatica変換を使用することは望ましくありません。このような場合、操作を実行するコードを使用して外部DLLまたはUNIX共有ライブラリを作成し、外部プロシージャトランスフォーメーションでそれらを呼び出すことができます。
3つのInformatica変換があります。有効なマッピング(Integration Serviceが実行できるマッピング)で接続を解除できる外部プロシージャ、ルックアップ、およびストアドプロシージャ。
2)行数の変化に基づくInformatica変換のタイプ
- アクティブトランスフォーメーション
- パッシブ変換
アクティブトランスフォーメーション :–アクティブな変換は、次のアクションのいずれかを実行できます。
- 変換を通過する行数を変更します。たとえば、フィルター変換は、フィルター条件を満たさない行を削除するため、アクティブです。
- トランザクション境界の変更:トランザクション境界は、コミットが呼び出される前、または2つのコミット呼び出しの間にすべてのトランザクションを囲む境界です。たとえば、トランザクション操作中に、ユーザーは特定のトランザクションの後にコミットが必要であると感じ、コミットコマンドを呼び出してセーブポイントを作成します。そうすることで、ユーザーはデフォルトのトランザクション境界を変更します。デフォルトでは、トランザクションの境界は、ファイルの開始から自動コミットポイントまたはEOFまでの間にあります。
- rowtype属性を変更します。Rowtype属性は、テーブル内の行を表すレコードタイプです。レコードは、テーブルから選択されたデータの行全体を格納することも、ポインターまたはポインター変数からフェッチすることもできます。たとえば、Update Strategyトランスフォーメーションは、rowstypeに値の挿入の場合は0、更新の場合は1、削除の場合は2、拒否の場合は3のフラグを立てます。
- アグリゲーター、フィルター、ジョイナー、ノーマライザーなどは、アクティブ変換のいくつかの例です。
受動的変換 :受動的変換は、これらすべての条件を満たすものです。
- 変換前後の行数は同じです。
- トランザクション境界を維持します。
- rowtype属性を維持します。
- 式、ExternalProcedure、HTTPなどは、パッシブ変換のいくつかの例です。
パッシブ変換では、新しい行は作成されないか、既存の行が削除されます。
C ++のソート関数
行数を変更しないのに、なぜパッシブ変換が使用されるのか疑問に思われるはずです。これらは通常、値を更新し、共有ライブラリから外部プロシージャを呼び出し、マップレットの入力と出力を定義するために使用されます。マップレットは、マッピングからの変換のみのコレクションです。たとえば、学生データベースの場合、マーク列の値をパーセンテージではなくパーセンタイルに更新したい場合、これは、値を変換し、行の総数を同じに保ちながら同じ列で更新する式変換を使用して行うことができます。変換後。
変換がパッシブ変換として使用されている場合、後でアクティブ変換として使用できないという制限はありません。同様に、接続されていない変換は、必要に応じて接続された変換として使用できます。これらのカテゴリ間で可能なすべての組み合わせを形成できます。これがInformatica変換の魔法です。変換が属する可能性のあるタイプについては、このブログの後半でより良いアイデアが得られます。
さまざまなタイプのInformatica変換について理解したので、それらの調査を開始しましょう。以下は、Informaticaトランスフォーメーションのいくつかの主要なタイプです。
変換 | タイプ | 説明 |
アグリゲーター | アクティブ接続 | 集計計算を実行します。 |
式 | パッシブ接続 | 値を計算します。 |
Java | アクティブ接続またはパッシブ接続 | Javaでコーディングされたユーザーロジックを実行します。ユーザーロジックのバイトコードはリポジトリに保存されます |
ジョイナー | アクティブ接続 | 異なるデータベースまたはフラットファイルシステムからのデータを結合します。 |
調べる | アクティブ接続またはパッシブ接続またはアクティブ非接続またはパッシブ非接続 | フラットファイル、リレーショナルテーブル、ビュー、またはシノニムからデータを検索して返します。 |
ノーマライザー | アクティブ接続 | パイプラインで使用され、リレーショナルまたはフラットファイルソースからのデータを正規化します。 |
ランク | アクティブ接続 | レコードを上限または下限の範囲に制限します。 |
ルーター | アクティブ接続 | グループの条件に基づいて、データを複数の変換にルーティングします。 |
SQL | アクティブ接続またはパッシブ接続 | データベースに対してSQLクエリを実行します。 |
連合 | アクティブ接続 | 異なるデータベースまたはフラットファイルシステムからのデータをマージします。 |
XMLジェネレーター | アクティブ接続 | 1つ以上の入力ポートからデータを読み取り、単一の出力ポートを介してXMLを出力します。 |
XMLパーサー | アクティブ接続 | 1つの入力ポートからXMLを読み取り、1つ以上の出力ポートにデータを出力します。 |
XMLソース修飾子 | アクティブ接続 | IntegrationServiceがセッションの実行時にXMLソースから読み取る行を表します。 |
それでは、変換を1つずつ見ていきましょう。
アグリゲーター変換
アグリゲータートランスフォーメーションは、アクティブで接続されたトランスフォーメーションです。このInformaticaトランスフォーメーションは、平均や合計などの計算を実行するのに役立ちます(主に複数の行またはグループで計算を実行するため)。たとえば、1日の総売上高を計算したり、月次または年次売上高の平均を計算したりします。 AVG、FIRST、COUNT、PERCENTILE、MAX、SUMなどの集計関数は、集計変換で使用できます。
ルックアップ変換
ルックアップ変換は、最も一般的で広く使用されているInformatica変換です。ユーザーの要件に基づいて、ルックアップトランスフォーメーションは、アクティブまたはパッシブトランスフォーメーションとして組み合わせて、接続または非接続トランスフォーメーションとして使用できます。 私tは、関連する必要なデータを取得するために、主にソース、ソース修飾子、またはターゲットから詳細を検索するために使用されます。 「フラットファイル」、「リレーショナルテーブル」、「ビュー」、「同義語」を検索することもできます。マッピングで複数のルックアップ変換を使用できます。
ルックアップ変換は、次のタイプのポート(情報転送の論理ポイント)を使用して作成されます。
- 入力ポート(I)
- 出力ポート(O)
- ポートを検索(L)
- リターンポート(R)(接続されていないルックアップの場合のみ)
接続されたルックアップ変換と接続されていないルックアップ変換の違い:
- 接続されたルックアップはマッピングパイプラインから直接入力値を受け取りますが、接続されていないルックアップはルックアップから値を受け取ります 別の変換からの表現。 Informaticaのマッピングには、ソース、トランスフォーメーション、およびターゲットが相互に接続されている場合があり、パイプラインと見なされます。
- 接続されたルックアップは、複数の戻りポートがあるため、同じ行から複数の列を返します。sUnConnectedルックアップにはリターンポートが1つだけあり、各行から1つの列を返します。たとえば、特定の部門IDの従業員データベースで接続されたルックアップをパラメータとして使用すると、名前、従業員ID番号、住所など、その部門の従業員に関連するすべての詳細を取得できます。接続されていないルックアップでは、名前や従業員ID番号、またはユーザーが指定した属性など、従業員の属性を1つだけ取得できます。
- 接続されたルックアップはすべてのルックアップ列をキャッシュしますが、接続されていないルックアップはルックアップ出力とルックアップ条件のみをキャッシュします。
- 接続されたルックアップはユーザー定義のデフォルト値をサポートしますが、接続されていないルックアップはユーザー定義の値をサポートしません。たとえば、ルックアップ後に特定の列のすべての値をNULLに変更する場合は、ルックアップ式でそれらの列のデフォルト値をNULLに設定できます。ただし、この機能は、接続されていないルックアップの場合は使用できません。
顧客データベースから、キャンセルされていない請求書を複数持っている顧客の詳細を知りたいとしましょう。このデータを取得するには、ルックアップ変換を使用できます。
手順は次のとおりです。
- まず、請求書テーブルをソースとしてマッピングデザイナにロードします。ソースデータをデザイナにロードする方法が明確でない場合は、 ここをクリック 。
- キャンセルされていない請求書を除外してみましょう。これを行うには、という名前の新しいフィルターを作成します fil_ODS_CUSTOMER_ACTIVE プロパティを持つソース修飾子に NOT(ISNULL(DATE_CLOSED))AND CANCELED = 0。
- 次に、以下に示すように、名前を次のようにデザイナーにルックアップ変換を追加します。 lkp_CUSTOMER :
- ルックアップテーブルを顧客テーブルとして指定します。
- のヘッダーをダブルクリックします lkp_CUSTOMER 編集メニューを開きます。 [条件]タブで、ルックアップ条件を次のように設定します CUST_ID = CUST_NO。
- [プロパティ]タブで、[接続情報]を次のように変更します。 $ Source をクリックします OK 変換を保存するには:
- リンクする lkp_CUSTOMER へのポート ODS_CUSTOMER_ACTIVE 必要な変換を完了するためのポート ODS_CUSTOMER_ACTIVE 必要なターゲットファイルは次のとおりです。
- ルックアップ変換を含む最終的な象徴的なマップは次のようになります。
式の変換
式の変換は、パッシブで接続されたInformatica変換です。式の変換は、行ごとの操作に使用されます。個々のレコードに対して実行する任意のタイプの操作には、式変換を使用します。式変換は、行ごとのデータを受け取り、それを操作して、ターゲットに渡します。たとえば、各製品の割引を計算したり、姓名を連結したり、日付を文字列フィールドに変換したりします。
ジョイナートランスフォーメーション
ジョイナトランスフォーメーションは、2つの異種ソースを結合するために使用されるアクティブで接続されたInformaticaトランスフォーメーションです。ジョイナトランスフォーメーションは、2つのソース間の1つ以上の列のペアに一致する指定された条件に基づいてソースを結合します。 2つの入力パイプラインには、マスターパイプラインと詳細パイプラインまたはブランチが含まれます。 3つ以上のソースを結合するには、joinerトランスフォーメーションの出力を別のソースと結合する必要があります。マッピングでn個のソースを結合するには、n-1個のジョイナー変換が必要です。ジョイナトランスフォーメーションは、次のタイプの結合をサポートします。- 正常
- マスターアウター
- 詳細アウター
- フルアウター
1つのジョイナを使用して3つ以上のソースを結合することはできません。 3つのソースを結合するには、2つの結合変換が必要です。
たとえば、Joinerを使用して、従業員、部門、場所の3つのテーブルを結合するとします。 2人のジョイナーが必要になります。 Joiner-1が参加し、Employees and DepartmentsとJoiner-2が参加し、Joiner-1とLocationsテーブルからの出力が表示されます。
手順は次のとおりです。
- 3つのソースをマッピングデザイナに取り込みます。
- ジョイナー-1を作成して、Department_IDを使用して従業員と部門を結合します。
- 次のジョイナー、Joiner-2を作成します。 Joiner-1からの出力とLocationsTableからのポートを取得し、Joiner-2に持ってきます。 Location_IDを使用して、これら2つのデータソースを結合します。
- 最後のステップは、必要なものを送信することですポートJoiner-2からターゲットへ、または式を介して変換ターゲットテーブルに。
ユニオントランスフォーメーション
ユニオントランスフォーメーションは、アクティブで接続されたInformaticaトランスフォーメーションです。さまざまなストリームまたはパイプラインからの複数のデータセットを1つのデータセットにマージするために使用されます。このInformaticaトランスフォーメーションは、SQLのUNION ALLコマンドと同様に機能しますが、重複する行は削除されません。アグリゲーターを使用して、ターゲットで予期されていない重複を削除することをお勧めします。
ノーマライザー変換
ノーマライザー トランスフォーメーションは、アクティブで接続されたInformaticaトランスフォーメーションです。これは、主にCOBOLソースで最も広く使用されているInformatica変換のひとつであり、ほとんどの場合、データは非正規化形式で保存されます。また、ノーマライザ変換を使用して、1行のデータから複数の行を作成できます。
フラットファイル/ COBOLソースからコンマ区切りのデータフラットファイルをロードしてみましょう。
手順は次のとおりです。
- ストア名と四半期収益をストア(フラットファイル)にロードすることから始めます。
- 名前の付いた新しいノーマライザトランスフォーメーションを作成します NRM_STORE_EXP 以下に示すように、2つのポートStoreとQuarter(4つの四半期のデータがあるため4回繰り返します)を使用します。
- [ポート]タブは次のようになります。
- 次の列をコピー/リンクして、ノーマライザー変換に接続します。
お店
四半期1
クォーター2
クォーター3
クォーター4
マッピングは次のようになります。 - を使用して新しい式変換を作成します exp_STORE 。次の列をコピー/リンクし、以下に示すように式変換に接続します。
お店
四半期
GK_QUARTER
GCID_QUARTER - 式を最終ターゲットにリンクして、正規化変換を使用してマッピングを完了します。
XML変換
XML変換は、アクティブで接続されたInformatica変換です。 Informaticaトランスフォーメーションでは、XMLトランスフォーメーションは主に、ソースファイルがXMLタイプであるか、データがXMLタイプである場合に使用されます。 XML変換は、主に3つの変換に分類できます。
- XMLソース修飾子の変換。
- XMLパーサー変換。
- XMLジェネレータ変換。
XMLソース修飾子 変換 :XMLソース修飾子は、アクティブで接続された変換です。 XMLソース修飾子は、XMLソース定義でのみ使用されます。これは、InformaticaサーバーがXMLソースとのセッションを実行するときに読み取るデータ要素を表します。 XMLソース修飾子には、ソースの列ごとに1つの入力ポートまたは出力ポートがあります。マッピングからXMLソース定義を削除すると、Designerは対応するXMLソース修飾子トランスフォーメーションも削除します。
XMLパーサー変換: XMLパーサートランスフォーメーションは、アクティブで接続されたトランスフォーメーションです。 XMLパーサー変換は、パイプライン内のXMLを抽出し、これをターゲットに渡すために使用されます。 XMLは、ファイルやデータベースなどのソースシステムから抽出されます。 XMLパーサートランスフォーメーションは、単一の入力ポートからXMLデータを読み取り、1つ以上の出力ポートにデータを書き込みます。
XMLジェネレーター変換: XML Generatorは、アクティブで接続された変換です。 XMLジェネレーター変換は、パイプライン内にXMLを作成するために使用されます。 XMLジェネレータトランスフォーメーションは、1つ以上の入力ポートからデータを読み取り、単一の出力ポートを介してXMLを出力します。
反復フィボナッチc ++
ランク変換
ランク変換は、アクティブで接続された変換です。これは、データの最上位または最下位のランクを選択するのに役立つInformatica変換です。たとえば、販売量が非常に多い上位10の地域を選択したり、最低価格の製品を10個選択したりします。
最初と最後のレコードを従業員データベースからターゲットテーブルにロードしたいとします。この背後にある考え方は、レコードにシーケンス番号を追加してから、レコードから上位1ランクと下位1ランクを取得することです。
- ポートをソース修飾子から2つのランク変換にドラッグアンドドロップします。
- 開始値が1の再利用可能なシーケンスジェネレーターを作成し、次の値を両方のランク変換に接続します。
- ランクプロパティを次のように設定します。新しく追加されたシーケンスポートをランクポートとして選択する必要があります。 Group by Port.Rank –1としてポートを選択する必要はありません。
- ランク– 2
- ターゲットの2つのインスタンスを作成します。出力ポートをターゲットに接続します。
ルーター変換
ルーターはアクティブで接続された変換です。これはフィルター変換に似ています。唯一の違いは、フィルター変換は条件を満たさないデータをドロップするのに対し、ルーターには条件を満たさないデータをキャプチャするオプションがあることです。複数の条件をテストすると便利です。入力、出力、デフォルトのグループがあります。
テーブルの奇数レコードと偶数レコードを分離したいとします。これは、ルーター変換を使用して実行できます。
レコードにシーケンス番号を追加してから、レコード番号を2で割るという考え方です。分割可能な場合は偶数ターゲットに移動し、分割できない場合は奇数ターゲットに移動します。
- ソースをドラッグして、式トランスフォーメーションに接続します。
- シーケンスジェネレータの次の値を式変換に追加します。
- 式変換では、2つのポートを作成します。1つは「奇数」で、もう1つは「偶数」です。
- 以下のように式を書いてください
- ルーター変換を式に接続します。
- ルーター変換の下で2つのグループを作成します。
- 以下の条件を与える
- 次に、2つのグループを異なるターゲットに送信します。これが全体の流れです。
このInformaticaTransformationブログが、さまざまなInformaticaトランスフォーメーションについての理解を深めるのに役立ち、Informaticaについてさらに学ぶのに十分な関心を集めたことを願っています。
このブログが役に立った場合は、Informaticaチュートリアルブログシリーズもご覧ください。 そして Informaticaチュートリアル:Informaticaの「裏返し」を理解する 。Informatica認定の詳細をお探しの場合は、ブログを確認してください。 Informatica認定:知っておくべきことはすべて 。
Informaticaをキャリアとして採用することをすでに決定している場合は、なぜ私たちを見ていないのかをお勧めします コースページ。 EdurekaでのInformatica認定トレーニングでは、インストラクター主導のライブセッションと実際のユースケースを使用した実践的なトレーニングを通じて、Informaticaのエキスパートになります。