0
私は開始または停止できるサービスを持っています。各操作は、タイムスタンプと操作タイプのレコードを生成します。最終的に、私は一連のタイムスタンプの操作記録に終わります。今私は1日中のサービスの稼働時間を計算したいと思う。アイデアは簡単です。スタート/ストップレコードの各ペアについて、タイムスパンと合計を計算します。しかし、可能であれば、ハイブでそれを実装する方法はわかりません。このために中間結果を格納するためのテーブルを作成するのは問題ありません。これは主なブロッキングの問題であり、その他の小さな問題もあります。たとえば、開始/停止ペアの中には、1日にまたがるものがあります。どのようにこの小さな問題に対処するか考えても感謝します。Hiveスクリプトを使用して各開始/終了ペアの処理時間を設定します
サンプルデータ:
Timestamp Operation
... ...
2017-09-03 23:59:00 Start
2017-09-04 00:01:00 Stop
2017-09-04 06:50:00 Start
2017-09-04 07:00:00 Stop
2017-09-05 08:00:00 Start
... ...
サービスのアップタイム2017-09-04
が、その後1 + 10 = 11
分べきであるため。最初の時間間隔は09-03
と09-04
にわたっており、09-04
に含まれる部分だけがカウントされます。
あなたは、入力/出力に関するいくつかの例を与えることができますか? – hlagos
必要な結果を含むデータサンプル(〜10行)をテーブル形式で追加します。 –
@DuduMarkovitz例を追加しました。ありがとうございます。 – Lingxi