Interact イベント・パターン・レポート用のストアード・プロシージャー

Interact イベント・パターン・レポートは、ステージング・テーブルに格納されているデータを使用します。このデータは、ストアード・プロシージャーによって設定されます。ストアード・プロシージャーは、デルタ・リフレッシュ操作を実行します。

Interact イベント・パターン・レポートのデータは、次の 2 つのステップで処理されます。

  1. Interact ETL プロセスによってオーディエンス blob データが変換され、ETL データベース表に読み込まれます。
  2. レポート統合機能により、事前に構成された並列実行でデータがパターン・タイプごとに増分的に集計されます。これは、Interact レポート・パック固有の機能です。

この両方のプロセスは、UACI_ETLPATTERNSTATERUN テーブルに対するデータベース・トリガーと統合されています。このトリガーは ETL の実行が成功すると起動され、レポート・データを集計するデータベース・ジョブをサブミットします。

次の表には、ストアード・プロシージャーと、それによって実行されるタスクに関する情報が示されます。

表 1. Interact イベント・パターン・レポート用のストアード・プロシージャー
ストアード・プロシージャー タスク
SP_GENERATE_PATTERN_MATCHALL SP_POPULATE_PATTERN_MATCHALL プロシージャーによって内部的に呼び出されます。ストアード・プロシージャーの前回の実行以降に実行された「すべて一致」パターンのデータの取得を担当します。
SP_GENERATE_PATTERN_COUNTER SP_POPULATE_PATTERN_COUNTER プロシージャーによって内部的に呼び出されます。ストアード・プロシージャーの前回の実行以降に実行された「カウンター」パターンのデータの取得を担当します。
SP_GENERATE_PATTERN_WC SP_POPULATE_PATTERN_WC プロシージャーによって内部的に呼び出されます。ストアード・プロシージャーの前回の実行以降に実行された「重みづけカウンター」パターンのデータの取得を担当します。
SP_POPULATE_PATTERN_MATCHALL ストアード・プロシージャーの前回の実行以降に受信した「すべて一致パターン」タイプのデータを処理します。
SP_POPULATE_PATTERN_COUNTER ストアード・プロシージャーの前回の実行以降に受信した「カウンター・パターン」タイプのデータを処理します。
SP_POPULATE_PATTERN_WC ストアード・プロシージャーの前回の実行以降に受信した「重みづけカウンター・パターン」タイプのデータを処理します。
SP_UPDATE_UACI_TABLES_STATS トリガーによって呼び出され、データベース統計を更新し、レポート・データの集約のためのデータベース・ジョブをサブミットします。
以下の ETL テーブルの統計を更新します。
  • UACI_ETLPATTERNSTATE
  • UACI_ETLPATTERNSTATEITEM
  • UACI_ETLPATTERNEVENTINFO
SP_POPULATE_PATTERN_LOCK
(p_parallel_degree)
構成された並列実行の度合いで UARI_PATTERN_LOCK テーブルを更新します。

p_parallel_degree は、並列に実行される集計処理の度合いです。

SP_AGGR_RUN_STATUS 集計処理が始まる前に Interact ETL プロセスによって呼び出され、実行中のストアード・プロシージャーのロック状況を検査します。UARI_PATTERN_LOCK テーブルに対して実行されます。
SP_REFRESH_PATTERNINFO Oracle および DB2® の場合のみ

UARI_PATTERNSTATE_INFO テーブルをリフレッシュして、IC とカテゴリーの状態およびオーディエンス・レベル情報を取得します。

このプロシージャーは、集計プロシージャーが開始する前にトリガーによって呼び出されます。

Mviews は SQL Server ではサポートされないため、このプロシージャーは SQL Server には適用されません。

SP_UARI_REBIND_PACKAGES DB2 の場合のみ

集計トリガーおよびプロシージャーに関連付けられたパッケージを再バインドします。SP_UPDATE_UACI_TABLES_STATS プロシージャー呼び出しの後に、トリガーによって呼び出されます。

表 2. 以下でのデータベース・シーケンス: Oracle および DB2
ストアード・プロシージャー タスク
SQ_UARI_RUN 固有の実行 ID を作成します。実行 ID のリストは、UARI_RUNS テーブルに保管されます。

SQL Server では、RunId 列の IDENTITY プロパティーを使用して RunID が生成され、実行のたびに新しい ID が生成されます。

表 3. データベース・トリガー
ストアード・プロシージャー タスク
TR_AGGREGATE_DELTA_PATTERNS 値 3 で UACI_ETLPATTERNSTATERUN テーブルが更新された後、データ集計のストアード・プロシージャーを呼び出すジョブをサブミットすることにより、トリガーを起動します。

ETL プロセス

最初の実行時は、ETL は UARI_DELTA_PATTERNS テーブルのそれぞれの PatternID に対して何も値を挿入しません。すべてのパターンが新規またはデルタであるためです。レポート集計処理では、ETL テーブルからすべての PatternID が収集され、それらが UARI_DELTA_PATTERNS テーブルに挿入されます。

ETL プロセスは、SP_AGGR_RUN_STATUS プロシージャーを呼び出します。SP_AGGR_RUN_STATUS プロシージャーは、UARI_PATTERN_LOCK テーブルを検査して、次の JobID に基づいて実行中のジョブを調べます。

JobID 理由
Y ジョブは実行中。シナリオは実行中か失敗。
N 失敗したジョブ。

ETL プロセスは常に、サブミットされたジョブの状況を検査することにより、レポート集計の状況を検査します。ETL は、レポート集計が実行中であることを検出すると、実行を開始しません。スケジュールに従って ETL が再度開始されます。

ETL プロセスは、UARI_PATTERN_LOCK テーブルを検査して、値が Y の JobID の数を調べます。値が Y の JobID がまったくない場合のみ、ETL プロセスが開始されます。いずれかの JobID の値が Y であれば、ETL プロセスはスキップされ、スケジュールされた次の間隔で実行されます。ETL プロセスに関する詳細は、「IBM Interact 管理者ガイド」を参照してください。

2 回目の実行以降、ETL プロセスは、更新された PatternID について、UARI_DELTA_PATTERNS テーブルの更新フラグを更新します。

  • 更新されたデータの場合は、PatternIDU のマークが付けられます。
  • 削除されたデータの場合は、PatternIDD のマークが付けられます。
  • 新しく追加されたデータの場合、PatternID はレポート集計コードで識別され、P のマークが付けられます。

集計処理は、U フラグまたは D フラグのマークが付けられた PatternIDs のみを対象に実行されます。