データ ウェアハウス内のレコードへのタイム スタンプの追加

データの品質を保証する便利な方法が、データ ウェアハウス内のレコードがロードされた日付に基づいてそれらのレコードにフラグを設定することです。ロード処理が完了していない場合や、データのロード後に問題に気付いた場合は、タイム スタンプ列により、どのレコードが影響を受けているかを容易に識別できます。その後、特定のフェーズで処理されたすべてのレコードを削除し、ロード前の状態に戻して、問題に対処したうえでデータのロードを再び試みることができます。SQL Command ステージを使用してファクト テーブルに load_date のような追加の列を設けることで、ロード操作にタイム スタンプを付与できます。

データ ウェアハウスの設定または更新時にデータフローによってタイム スタンプを追加するには:

  1. Enterprise Designer で、データ ウェアハウスを設定または更新するデータフローを次のようにして開きます。
  2. [Transformer] ステージをキャンバス上にドラッグし、このステージをデータフローの [Write to DB] ステージのすぐ前に接続します。

    例:



  3. [Transformer] ステージをダブルクリックします。
  4. [追加] をクリックします。
  5. [全般] の下で、[カスタム] を選択します。
  6. [Custom Transform 名] フィールドに、このトランスフォームの名前を入力します。任意の名前が使用できます。例えば、"Add Time Stamp" (タイム スタンプの追加) とします。
  7. [カスタム スクリプト] フィールドには、次のように入力します。
    data['<timestamp field>']=currentDateTime()

    ここで、<timestamp field> はタイム スタンプを格納するデータフロー フィールドの名前です。

    例えば、Timestamp という名前のデータフロー フィールドにタイム スタンプを設定する場合、カスタム スクリプトは次のようになります。

    data['Timestamp']=currentDateTime()
  8. ウィンドウの下部にある [追加] ボタンをクリックします。
  9. [閉じる] をクリックします。
  10. [OK] をクリックして [Transformer オプション] ウィンドウを閉じます。

これで、データフローによって現在の時刻が各レコード内のフィールドに追加され、各レコードのロード時点を示すタイム スタンプがデータ ウェアハウス内で実現されます。