レジリエンシに対応した設計

回復可能な統合を設計する際は、次のベスト・プラクティスを使用します。

再開可能性の設計

一部の統合プロセスは非常に複雑で、他のプロセスとの依存関係を持つ場合があります。最終的にデータが最終的に最終的にターゲット・システムにロードされる前に、多数のステージに進むことができます。ステージング表に追加の列を追加して、現在のロードの識別子(load_idまたはload_date)や、このロードを一意に識別する任意の項目を追跡するという、再開可能性を高めるため。これにより、トレース機能が向上し、クリーン・アップ・プロシージャの設計が容易になります。

Oracle Data Integratorの意味は何ですか。

  • 変数を使用して、ロードするプロセスの識別子を追跡し、可能な場合は中間データ・ステージ(ステージング表の追加列)にこれらの値を追加します。
  • これらの変数を使用して、シナリオ実行ごとに異なるセッション名(SESS_NAME)を設定できます。これにより、演算子は、どこで検索するかが正確にわからないプロセスをすぐに識別できます。シナリオ・セッションの一意の名前または動的名の使用を参照してください。
  • 前述の例を使用して同一プロセスで何百ものファイルをロードする場合は、すべてのファイルに同じ汎用ジョブ名を指定するよりも、処理対象のファイルの後に指定したジョブの方が効率的です。

停止の影響を制限する設計

事前定義された時刻に大規模抽出を実行すると、インフラストラクチャ全体に大きな影響があります。

次に例を示します。

  • ソース・システムは、リクエストを処理する必要があるため影響を受けます。
  • 帯域幅がリクエストのサービスに縮小されるため、ネットワークに影響があります。
  • 全体統合ジョブは、処理する必要がある大量のデータのために実行に時間がかかります。
  • 統合時にネットワーク内で小さいblipまたは停電が発生すると、統合タスクに大きな影響を及ぼします。

統合ジョブはバッチまたはリアルタイムである必要はありません。これらは両方とも考えられます。最終的なロードをバッチ操作にする必要がある場合(データがインスタンスに対して統合または集計されているため)、抽出および事前統合処理をよりリアルタイムに実行できます。これにより、インフラストラクチャ全体の負荷が減少し、統合時にソース・システムにアクセスしようとしたときに停止する影響が制限されます。データが抽出され、ストリーミング方式で準備されている場合、最終的な統合に備えてソース・システムにアクセスする必要はありません。

Oracle Data Integratorには、新規データが使用可能であることを検出するためにパッケージを作成する際に使用できる多数のツールが用意されています。リストについては、「イベント駆動型ツールの使用」を参照してください。

実際のリアルタイム・レプリケーションとの統合のために、Oracle Data Integratorでは、前述のapiを利用して、変更の使用を可能にするインフラストラクチャを作成できます。

データの挿入およびマージから選択

INSERTおよびMERGEアプローチとデータ・ロードの間にはトレードオフがあります。統合方針を超えて、部分的にロードが失敗した場合に何が起こるかを考慮する必要がある場合があります。

ターゲット・システムへのデータのロード方法によっては、正しくロードされたものと失敗したものを区別したり、部分ロードの要素を識別することがかなり複雑な場合があります。設計の観点からは、実行しているすべてのデータをターゲット・システムに追加することもできますが、リカバリ可能性の観点からは、ターゲット・システムにすでに存在するデータを使用して受信データをマージするという利点を考慮すると便利です。

このアプローチを選択する場合は、この戦略がロードのパフォーマンスに与える影響を再確認します。ただし、失敗した完全に最適化されたINSERTロードは、成功した効率的なMERGEよりも高速ではないことに注意してください。

Oracle Data Integratorの観点では、INSERT戦略からMERGE戦略への変更は非常に単純な操作です。統合戦略を変更して、適切なナレッジ・モジュールを選択するのみです。このように、多数のマッピングに関するナレッジ・モジュールの変更は大変なタスクになります。Oracle Data Integrator SDKを使用してこのようなタスクを自動化できます。

計画停止を制限する設計

通常、計画停止はパッチ適用やアップグレードに必要になります。

パッチ適用とアップグレードがよりシームレスに実行されるクラウド環境では、統合プロセスのコードにパッチを適用しているため、最後に停止状態にしておく必要があります。これは、パッチ適用は、停止を最小限に抑えるために、継続的に開発計画の一部である必要があることを意味します。

Oracle Data Integratorの実行ユニットはシナリオです。シナリオが生成されると、バージョン番号(001で始まる)に関連付けられます。シナリオは、再生成(現行バージョンを上書き)するか、または新規バージョンを生成(002、003など)できます。

シナリオを起動する場合、Oracleでは常にバージョン番号-1を指定することが推奨されます。これには、次の2つのメリットがあります。

  • Oracle Data Integratorではシナリオの最新バージョンが常に使用されます。新しいバージョンを生成する際に、これらのシナリオの起動方法を変更する必要はありません。
  • シナリオの新規バージョンを作成するとすぐに、これがOracle Data Integratorで実行されるバージョンとなります。潜在的な遅延の制御方法は、エージェント・ブループリントのキャッシュ・タイムアウトの構成を参照してください。Oracle Data Integratorに最新バージョンの統合シナリオを使用させるために、Oracle Data Integratorを停止して再起動したり、使用している外部オーケストレーション・ツールを再起動する必要はありません

注意:この方法は、Oracle Data Integratorに無限ループがない場合にのみ使用できます。Oracle Data Integratorでは、無限ループは推奨されません(実際は逆パターンと見なされます)。

  • Oracle Data Integratorログを閉じます。ログ・パージは実行中のジョブには影響しません。対応するログをパージできないため、無限ループは常に実行中です。
  • これらはシナリオのライブ・パッチ適用を防止します。ODIが新しいバージョンのシナリオを取得するためには、そのシナリオを開始する機会が必要になります。無限ループは終了しないため、再開することができません。
  • 無限ループを使用するのではなく、同じシナリオを非同期に起動することでシナリオを終了できます。