Informatica
Informatica シーケンスジェネレーター
マッピング内で PowerCenter による予測可能なサロゲートキーが必要なときは、シーケンスジェネレーターを使いましょう。
その役割
- ソースシステムに依存せず、マッピング内で数値を生成する。
- 通常はディメンション、ステージングテーブル、行レベル ID にサロゲートキーを供給する。
- 2 つのポートを公開:NEXTVAL は次の生成値、CURRVAL は現在の値を取得する。
主要ポート
| 要素 | 意味 | 典型的な用途 |
|---|---|---|
| NEXTVAL | シーケンスの次の生成値。 | 新しいサロゲートキーを書き込む。 |
| CURRVAL | NEXTVAL 進捗後の現在値。 | 下流で同じ生成キーを再利用する。 |
| 開始値 | 最初に出力される値。 | ロードの最初のキーを設定する。 |
| 増分値 | 値の間のステップ幅。 | キーの間隔や分割を制御する。 |
基本フロー
- 1マッピングにシーケンスジェネレーター変換を追加する。
- 2開始値、増分値、ポートの使い方を設定する。
- 3新しい識別子が必要なターゲットのキー列に NEXTVAL を接続する。
- 4同じ生成値をマッピング内で複数回使う場合のみ CURRVAL を使用する。
コード
典型的なサロゲートキーのパターン
SRC_CUSTOMER -> EXP_CLEAN -> SEQ_CUSTOMER_KEY.NEXTVAL -> TGT_DIM_CUSTOMER.CUSTOMER_KEYFAQ
CURRVAL はいつ使う?
1 つの生成キーを同じマッピング内の複数フィールドへ供給するときに使う。
なぜソースキーではなくシーケンスジェネレーターを使う?
ソースキーはシステム間で衝突したり、ディメンションモデルに対して安定性が不足しがちなため。
シーケンスジェネレーターはサロゲートキーの欠番なしを保証する?
保証しない。セッション失敗や行拒否後に値はロールバックされないため、ETL ワークフローでの欠番は正常な挙動。
1 つのジェネレーターを複数ターゲットテーブルで共用できる?
技術的には可能だが非推奨。共用するとキー範囲が交錯し、各テーブルのキー範囲が把握しにくくなる。キーの分離を明確にするため、ターゲットテーブルごとに個別のジェネレーターを使うこと。
関連リンク