Hi, I'm Ask INFA!
What would you like to know?
ASK INFAPreview
Please to access Ask INFA.

目次

Search

  1. はじめに
  2. トランスフォーメーション
  3. ソーストランスフォーメーション
  4. ターゲットトランスフォーメーション
  5. アクセスポリシートランスフォーメーション
  6. アグリゲータトランスフォーメーション
  7. B2Bトランスフォーメーション
  8. チャンキングトランスフォーメーション
  9. クレンジングトランスフォーメーション
  10. データマスキングトランスフォーメーション
  11. データサービストランスフォーメーション
  12. 重複排除トランスフォーメーション
  13. 式トランスフォーメーション
  14. フィルタトランスフォーメーション
  15. 階層ビルダートランスフォーメーション
  16. 階層パーサートランスフォーメーション
  17. 階層プロセッサトランスフォーメーション
  18. 入力トランスフォーメーション
  19. Javaトランスフォーメーション
  20. JavaトランスフォーメーションAPIリファレンス
  21. ジョイナトランスフォーメーション
  22. ラベラトランスフォーメーション
  23. ルックアップトランスフォーメーション
  24. 機械学習トランスフォーメーション
  25. マップレットトランスフォーメーション
  26. ノーマライザトランスフォーメーション
  27. 出力トランスフォーメーション
  28. 解析トランスフォーメーション
  29. Pythonトランスフォーメーション
  30. ランクトランスフォーメーション
  31. ルータトランスフォーメーション
  32. ルール仕様トランスフォーメーション
  33. シーケンストランスフォーメーション
  34. ソータートランスフォーメーション
  35. SQLトランスフォーメーション
  36. 構造パーサートランスフォーメーション
  37. トランザクション制御トランスフォーメーション
  38. 共有体トランスフォーメーション
  39. ベクトル埋め込みトランスフォーメーション
  40. Velocityトランスフォーメーション
  41. ベリファイヤトランスフォーメーション
  42. Webサービストランスフォーメーション

トランスフォーメーション

トランスフォーメーション

例: ウィンドウを使用したGPS pingのフラグ付け

例: ウィンドウを使用したGPS pingのフラグ付け

あなたの組織はトリップID、イベントID、およびタイムスタンプを含む車両からのGPS pingを受信します。各ping間の時間差を計算し、前の行との時間差が60秒未満である場合、行にスキップとのフラグを付けようとしています。
イベントを時系列で順序付け、イベントをトリップ別にパーティション化します。前の行のイベント時刻にアクセスするウィンドウ関数を定義し、ADD_TO_DATE関数を使用して、2つのイベント間の時間差を計算します。

ウィンドウプロパティ

[ウィンドウ]
タブで、次のウィンドウプロパティを定義します。
プロパティ
説明
フレーム
指定されていません
ウィンドウ関数は、オフセット引数に基づいて行にアクセスし、フレームを無視します。
パーティションキー
trip_id
行をトリップID別にグループ化し、計算が同じトリップからのイベントに基づくようにします。
オーダーキー
_event_id昇順
イベントIDの昇順で、データを時系列に配置します。

ウィンドウ関数

前の行からイベント時刻を取得する次のLAG関数を定義します。
LAG ( _event_time, 1, NULL )
LAG関数の詳細については、『
関数リファレンス
』を参照してください。
2つの日付間の時間を計算する次のDATE_DIFF関数を定義します。
DATE_DIFF ( _event_time, LAG ( _event_time, 1, NULL ), 'ss' )
DATE_DIFFが60秒未満の場合、または_event_timeがNULLの場合、行にスキップとのフラグを付けます。
IIF ( DATE_DIFF < 60 or ISNULL ( _event_time ), 'Skip', 'Valid' )

出力

トランスフォーメーションは、次の出力を生成します。
Trip ID
Event ID
Event Time
Time Difference
Flag
101
1
2017-05-03 12:00:00
NULL*
Skip
101
2
2017-05-03 12:00:34
34
Skip
101
3
2017-05-03 12:02:00
86
Valid
101
4
2017-05-03 12:02:23
23
Skip
102
1
2017-05-03 12:00:00
NULL*
Skip
102
2
2017-05-03 12:01:56
116
Valid
102
3
2017-05-03 12:02:00
4
Skip
102
4
2017-05-03 13:00:00
3480
Valid
103
1
2017-05-03 12:00:00
NULL*
Skip
103
2
2017-05-03 12:00:12
12
Skip
103
3
2017-05-03 12:01:12
60
Valid
*これらの行の前の行は、パーティションの境界外であるため、LAG関数はNULL値を生成します。