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サービストランスフォーメーション

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

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

フレーム

フレーム

フレームは、現在の行に対する相対的な位置に基づいて、現在の入力行の計算に含まれる行を決定します。集計関数をウィンドウ関数として使用する場合は、フレームを構成します。
開始オフセットと終了オフセットは、現在の入力行の前後に表示される行の数を表します。オフセット「0」は、現在の入力行を表します。例えば開始オフセットが-3で終了オフセットが0の場合は、現在の入力行と現在の行より前の3つの行を含むフレームを表します。
次の図は、開始オフセットが-1で終了オフセットが1のフレームを示しています。
 Sports行が現在の入力行です。Arcade、Sports、およびAdventureの各行がウィンドウに含まれ、対応する収益は1000、2000、および3000です。
すべての入力行に対して、関数はフレーム内の行に対して集計操作を実行します。前図のフレームに対してSUMのような集計式を構成する場合、式はフレーム内の値の合計を計算し、入力行に対して値6000を返します。
現在の入力行を含まないフレームを指定することもできます。例えば開始オフセットが10で終了オフセットが15の場合は、現在の入力行より後の10番目の行から15番目の行までの合計6行が含まれるフレームを表します。
[前のすべての行]
および
[後のすべての行]
というオフセットは、パーティションの最初の行とパーティションの最後の行を表します。例えば、開始オフセットが[前のすべての行]で終了オフセットが-1の場合、フレームには現在の行より前の1行と、それより前のすべての行が含まれます。
次の図は、開始オフセットが0で終了オフセットが[後のすべての行]のフレームを示しています。
現在の入力行はCountryです。[後のすべての行]には、行Country、Ethnic、Pop、Rock、Classical、EDM、Hip Hop、Punkが含まれます。
フレームオフセットがパーティション外部である場合、集計関数はこのフレームを無視します。フレームのオフセットがパーティションまたはテーブルの内部でない場合、集計関数はパーティション内の行のみを処理します。集計関数により、スキップされた行がログファイルに一覧表示されます。この関数は、スキップされた行に対して、デフォルト値のERROR('トランスフォーメーションエラー')、NULL、または事前定義された定数のいずれかの応答を返します。
例えば、テーブルを販売者ID別、オーダーを数量別のパーティションに分けるとします。開始オフセットを-3に設定し、終了オフセットを4に設定します。
次の図に、現在の入力行のパーティションとフレームを示します。
 販売者IDが3で数量が15の行が現在の入力行です。販売者IDが3で数量が10、15、20、30の行がウィンドウに含まれます。販売者IDが2、3、4の行がフレームに含まれます。
このフレームには、合計8行が含まれますが、計算はパーティション内に留まります。このフレームを使用してAVG関数を定義した場合、この関数はパーティション内の数量の平均を計算し、18.75を返します。
フレームを定義する場合、以下のルールとガイドラインを考慮します。
  • LEADおよびLAGでは、関数の引数で指定するフレームが使用され、
    [ウィンドウ]
    タブで設定するフレームは無視されます。
  • 開始オフセットは、終了オフセット以下でなければなりません。