シーケンス Generator インフォマティカの変革
⚡ スマートサマリー
シーケンス Generator Informaticaにおける変換は、サロゲートキー列とプライマリキー列の数値シーケンスを生成し、NEXTVALとCURRVALという2つの固定出力ポートを介して各行に値を与える、受動的で接続されたオブジェクトです。

シーケンスとは Generator 変換?
シーケンス Generator 変換は受動的であるため、入力行数には影響しません。シーケンス Generator は主キー値を生成するために使用され、1、2、3、4、5などの数値シーケンス値を生成するために使用されます。
例えば、ソースレコードにシーケンス値を割り当てたい場合は、シーケンスを使用できます。 Generator生成されるシーケンス値は、変換の設定プロパティに応じて、5、10、15、20、25など、または10、20、30、40、50などになります。
ほとんどの変換とは異なり、この変換には入力ポートがまったくありません。入力行を読み取るのではなく、リンクされているポートに次の数値を渡すだけです。そのため、パイプラインの横に配置しても安全です。 地図ping.
ポートのシーケンス Generator 変換
シーケンス Generator 出力ポートが2つあります
- カーバル
- ネクストヴァル
CURRVALポートの値は常にNEXTVALにIncrement By値を加えた値なので、Increment Byがデフォルト値の1のままの場合のみNEXTVAL+1と読み取られます。
シーケンス番号を生成するには、常にNEXTVAL列を使用します。以下の表は、2つのポートの動作をまとめたものです。
| ポート | 返ってくるもの | いつ接続するか |
|---|---|---|
| ネクストヴァル | パイプラインを通過する各行に対応する、シーケンス内の次の番号。 | ほぼ常にそうです。これは、ターゲットのキー列にデータを供給するポートです。 |
| カーバル | NEXTVALに増分値を加えた値。 | NEXTVALと併用する場合のみ有効です。単独で接続した場合、すべての行に同じ定数値が渡されます。 |
どちらのポートも名前を変更したり削除したりすることはできず、3つ目のポートを追加することもできないため、生成される番号への変更はすべてポートではなくプロパティタブで行う必要があります。
シーケンスのプロパティ Generator 変換
- 開始値 – これは変換によって生成される最初の値であり、デフォルト値は 0 です。
- 増分 – これは、値を増分する数値です。 デフォルト値は 1 です。
- 終了値 – 変換によって生成される最大値です。
- サイクル – このオプションが設定されている場合、値の終わりに達した後、変換は開始値から再開されます。
さらに3つの設定項目が同じタブに表示され、変換結果が共有されたり、セッションが再実行されたりするとすぐに重要になります。
| プロパティ | 制御するもの | デフォルト |
|---|---|---|
| 現在の価値 | 次回のセッション実行の開始値。統合サービスは、行が生成されるたびにリポジトリ内のこの値を更新します。 | 1 |
| キャッシュされた値の数 | 同時実行されるセッションが同じ数値を二度割り当てることがないように、一度にメモリにいくつの値が確保されるか。 | 再利用不可の場合は0、再利用可能の場合は1000 |
| リセット | 継続するのではなく、各セッションを元の現在の値から開始します。再利用可能なシーケンスでは使用できません。 Generators. | 身体障がい者 |
| Tracレベル | セッションログに書き込まれる詳細度:簡潔、標準、詳細な初期化、または詳細なデータ。 | ノーマル |
シーケンスの使い方 Generator インフォマティカの変革
この例では、シーケンス番号を生成し、ターゲットに保存します。マップの以下の8つのステップを実行してください。ping デザイナー。
ステップ1) 次のスクリプトを使用してターゲット テーブルを作成します。
上記の emp_sequence.sql ファイルをダウンロードします。
ステップ2) Informaticaにターゲットテーブルとしてテーブルをインポートします。
ステップ3) 新しい地図を作成するping そして、EMPソーステーブルとEMP_SEQUENCEターゲットテーブルをインポートします。両方の定義がキャンバス上に表示されます(下図参照)。
ステップ4) マップに新しい変換を作成しますping
- タイプとしてシーケンス変換を選択します
- 変換名「seq_emp」を入力します
- 「作成」オプションを選択します
ステップ5) シーケンス Generator 変換が作成されますので、「完了」オプションを選択してください。seq_empオブジェクトが2つのポートとともにキャンバスに表示されます。
ステップ6) SequenceのNEXTVAL列をリンクします Generator ターゲットのSNO列へ。
ステップ7) 他の列をリンクする ソース修飾子 ターゲットテーブルへの変換。
ステップ8) Double シーケンスをクリックしてください Generator プロパティウィンドウを開いて、
- プロパティタブを選択します
- 開始値 = 1 でプロパティを入力し、残りのプロパティはデフォルトのままにします
- 「OK」ボタンを選択
これでマップを保存できますping 作成後に実行します セッション (NAIST) と ワークフロー.
ターゲットのsno列には、シーケンスによって生成されたシーケンス番号が含まれます。 Generator 変換。
この例では、シーケンスは 1 – スコット、2 – キング、3 – アダム、4 – ミラー、といったようになります。
再利用可能なシーケンスと再利用不可能なシーケンス Generators
上に構築された変革は、1つの地図の中に存在する。ping代わりに変換開発者で作成すると再利用性が向上し、複数のセッションが関係する場合、両者の動作が異なります。
| 比較のポイント | 再利用不可 | 再利用可能な |
|---|---|---|
| どこで作られるか | 単一の地図の中にping地図上でping デザイナー | 変換開発者で、任意の数のマップに追加しますpings |
| キャッシュされた値の数 | デフォルト値は0なので、値は事前に予約されません。 | デフォルト値は1000なので、各セッションは独自の数値ブロックを予約します。 |
| プロパティをリセットする | 利用可能で、元の現在の値からシーケンスを再開します。 | 利用できません。再起動すると、既に使用されている別のセッションの番号が配布されてしまうためです。 |
| 典型的な使用 | 1 つのマップに 1 つのターゲット キー カラムがあります。ping | 複数のマップ間で共有されるサロゲートキーping同じ次元をロードしています |
キャッシュは、同時実行されるセッションを分離する役割を果たします。各セッションは、最初に数値のブロックを取得します。つまり、数値は一意性を保ちますが、連続性は維持されません。セッション終了時に使用されなかった値は破棄され、その後に次のブロックが開始されます。
シーケンスのルールと制限 Generator 変換
これらのうちいくつかは地図が公開された後に初めて明らかになる。ping 既に稼働しているので、ポートがリンクされる前に知っておく方が費用が安く済みます。
- ポートは固定されています。 NEXTVALとCURRVALは編集または削除できず、変換にポートを追加することはできません。
- CURRVAL関数単体では定数を返します。 CURRVALは、下流にNEXTVALも接続されている場合にのみ接続してください。そうでない場合、すべての行が同じ値を受け取ります。
- 2つの標的が連続して装填される。 NEXTVALが2つのターゲットテーブルにデータを供給する場合、2番目のターゲットが開始される前に最初のターゲットに数値がロードされるため、2つのデータセットはインターリーブされません。
- 隙間があるのは正常です。 セッションで使用されないキャッシュ値は返されないため、セッションが失敗したり、セッションが短かったりすると、シーケンスに欠落が生じます。キー列は、欠落を許容できるように設計してください。
- サイクルは重複を作成する可能性があります。 サイクルが有効になっている場合、終了値に達すると番号付けは開始値から再開されますが、対象が許可しない限り、既存のキーと衝突します。
行を読み込むことがないため、この変換はセッションの実行時間にほとんど何も追加しません。そのため、処理中にボトルネックになることはほとんどありません。 性能調整キーがカウンターではなくデータ自体に依存する必要がある場合、 アグリゲーター or ジョイナ変換 その作業を行うのは、このオブジェクトではなく、オブジェクトです。






