シーケンス Generator インフォマティカの変革

⚡ スマートサマリー

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

  • 🔢 固定ポート2つ: NEXTVALには生成された数値が格納され、CURRVALはNEXTVALに増分値を加えた値を返します。
  • ⚙️ 4つの主要特性: 開始値、増分値、終了値、およびサイクルによって、生成されるすべてのシーケンスの形状が決まります。
  • 🧪 実例: 8番目の地図ping 設計手順では、生成された数値をEMP_SEQUENCEターゲットのSNO列にロードします。
  • ♻️ 再利用可能なオプション: 再利用可能なシーケンス Generator 複数のマップで共有されていますpingデフォルトでは1,000個の値をキャッシュします。
  • 🔒 ポートは固定されています。 ポートは追加、編集、削除できないため、すべての動作は「プロパティ」タブから制御されます。
  • 🗝️ サロゲートキー: ウェアハウスのディメンションテーブルは、ソースシステムからの自然キーではなく、生成されたキーを使用します。

シーケンス Generator インフォマティカの変革

シーケンスとは 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ターゲットテーブルをインポートします。両方の定義がキャンバス上に表示されます(下図参照)。

地図ping EMPソースとEMP_SEQUENCEターゲット定義をインポートしたデザイナー

ステップ4) マップに新しい変換を作成しますping

  1. タイプとしてシーケンス変換を選択します
  2. 変換名「seq_emp」を入力します
  3. 「作成」オプションを選択します

シーケンスを使用して変換ウィンドウを作成します Generator 選択され、seq_empという名前が入力されました

ステップ5) シーケンス Generator 変換が作成されますので、「完了」オプションを選択してください。seq_empオブジェクトが2つのポートとともにキャンバスに表示されます。

シーケンス Generator マップ上に作成された変換seq_empping キャンバス

ステップ6) SequenceのNEXTVAL列をリンクします Generator ターゲットのSNO列へ。

seq_empのNEXTVALポートはEMP_SEQUENCEターゲットのSNO列にリンクされています。

ステップ7) 他の列をリンクする ソース修飾子 ターゲットテーブルへの変換。

EMP_SEQUENCEターゲットテーブルにリンクされている残りのソース修飾子列

ステップ8) Double シーケンスをクリックしてください Generator プロパティウィンドウを開いて、

  1. プロパティタブを選択します
  2. 開始値 = 1 でプロパティを入力し、残りのプロパティはデフォルトのままにします
  3. 「OK」ボタンを選択

シーケンスのプロパティタブ Generator 開始値を1に設定した変換

これでマップを保存できます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 ジョイナ変換 その作業を行うのは、このオブジェクトではなく、オブジェクトです。

よくあるご質問

サロゲートキーとは、ソースシステムの識別子の代わりに倉庫の行を識別するための、意味のない数値です。ソースがコードを変更してもサロゲートキーは安定しており、生成シーケンスを使用するのが最も簡単な方法です。

なぜなら番号は地図上に存在するからであるping 単一のデータベースではなく、複数のターゲットにデータを格納できます。フラットファイルやその他の非リレーショナルなターゲットも同様の方法でキーを取得し、同じ再利用可能なオブジェクトを使用して、テーブルごとにデータベースオブジェクトを作成することなく、複数のターゲットに番号を付けることができます。

終了値は、符号付き64ビット整数の最大値である9,223,372,036,854,775,807まで受け入れます。この値に達すると、オーバーフローエラーが発生してセッションが終了します。ただし、サイクルが有効になっている場合は、番号付けが開始値から再開されます。

はい。NEXTVALは、複合キーを作成する式や、キーが既に存在するかどうかを確認するルックアップなど、あらゆる下流の変換処理に接続されます。生成された数値は、行とともに次の処理に渡されます。

はい、ただし、まずは対象を確認してください。ライブキー列の開始値または現在の値を編集すると、対象が既に保持している数値が返される可能性があるため、値を下げるのではなく、最も高いキーよりも高い値に上げてください。

かろうじて。行の読み込みもキャッシュファイルの作成も行わないため、コストは行ごとのカウンター更新のみとなる。大量のデータ処理は、番号付けが問題になるずっと前に、リーダーとライターによって制限される。

AIプロファイラは、ソース列をスキャンして、真に一意な組み合わせを提案し、ヌル値や重複を含む候補キーにフラグを立て、ロード間のずれを検出します。また、機械学習に基づくマッチングにより、異なる識別子で同じエンティティを記述しているレコードをリンクします。

コパイロットは同等のものを書いている SQL シーケンスまたはID定義、およびキーが重複していないことを証明する照合クエリ。リポジトリの値は参照できないため、ロード前に変換処理自体で現在の値を確認してください。