Informatica 設定
Informatica シーケンスジェネレーター設定
設定上の問題の多くは開始値、増分ルール、再起動時の想定に起因します。まずこの3点を確認しましょう。
設定の優先事項
- 開始値はマッピング実行で最初に出力される数値を決める。
- 増分値は各行ごとにジェネレーターがどれだけ進むかを制御する。
- 再起動時の挙動は、ワークフローが障害や部分ロード後に再開される場合に重要になる。
確認すべき設定
| 設定 | 確認ポイント | 設定ミスのリスク |
|---|---|---|
| 開始値 | 次に未使用のキー範囲と一致しているか。 | ターゲットテーブルでキー重複が発生。 |
| 増分値 | 想定したステップ幅になっているか。 | 予期しない欠番や衝突が発生。 |
| 循環 | サロゲートキーでは通常オフ。 | 値が折り返して古いキー範囲を上書き。 |
| 復旧計画 | 再起動時にキーをどう再整合させるかを文書化。 | 部分ロードの整合性が崩れる。 |
安全な設定手順
- 1ターゲットテーブルの現在のサロゲートキー最大値を確認する。
- 2次回ロード前に、開始値をその最大値より上に設定する。
- 3文書化された複数ストリーム戦略がない限り、増分値は 1 にする。
- 4再起動経路をテストし、マッピングが書き込み済みキーを再利用しないことを確認する。
コード
ロード前のターゲット確認
SELECT COALESCE(MAX(customer_key), 0) AS current_max_key
FROM dim_customer;FAQ
循環を有効にすべき?
サロゲートキー生成では有効にしない。循環すると値の再利用が可能になり、キーの一意性が損なわれる。
再起動したワークフローで値が飛んだのはなぜ?
シーケンス系のジェネレーターは完全な連続性より一意性を優先するため、リトライ後の欠番は正常。
キャッシュ値はいくつに設定すべき?
既定のキャッシュサイズ(通常 1000)でほとんどのロードに対応できる。大量処理のマッピングでは増やして I/O オーバーヘッドを削減し、セッション再起動が多く欠番を小さくしたい場合は減らす。
関連リンク