データの品質を保証する便利な方法が、データ ウェアハウス内のレコードがロードされた日付に基づいてそれらのレコードにフラグを設定することです。ロード処理が完了していない場合や、データのロード後に問題に気付いた場合は、タイム スタンプ列により、どのレコードが影響を受けているかを容易に識別できます。その後、特定のフェーズで処理されたすべてのレコードを削除し、ロード前の状態に戻して、問題に対処したうえでデータのロードを再び試みることができます。SQL Command ステージを使用してファクト テーブルに load_date のような追加の列を設けることで、ロード操作にタイム スタンプを付与できます。
データ ウェアハウスの設定または更新時にデータフローによってタイム スタンプを追加するには:
-
Enterprise Designer で、データ ウェアハウスを設定または更新するデータフローを次のようにして開きます。
-
[Transformer] ステージをキャンバス上にドラッグし、このステージをデータフローの [Write to DB] ステージのすぐ前に接続します。
例:
-
[Transformer] ステージをダブルクリックします。
-
[追加] をクリックします。
-
[全般] の下で、[カスタム] を選択します。
-
[Custom Transform 名] フィールドに、このトランスフォームの名前を入力します。任意の名前が使用できます。例えば、"Add Time Stamp" (タイム スタンプの追加) とします。
-
[カスタム スクリプト] フィールドには、次のように入力します。
data['<timestamp field>']=currentDateTime()
ここで、<timestamp field>
はタイム スタンプを格納するデータフロー フィールドの名前です。
例えば、Timestamp
という名前のデータフロー フィールドにタイム スタンプを設定する場合、カスタム スクリプトは次のようになります。
data['Timestamp']=currentDateTime()
-
ウィンドウの下部にある [追加] ボタンをクリックします。
-
[閉じる] をクリックします。
-
[OK] をクリックして [Transformer オプション] ウィンドウを閉じます。
これで、データフローによって現在の時刻が各レコード内のフィールドに追加され、各レコードのロード時点を示すタイム スタンプがデータ ウェアハウス内で実現されます。