Google DataflowにApache Beam SDKを使用する一連のトランザクションから日次の残高を計算したいと考えています。目的の結果セットは次のようになりApache Beamを使用した合計の計算方法
John, 2017-12-01, 100
John, 2017-12-01, 200
Jane, 2017-12-01, 150
John, 2017-12-02, -100
John, 2017-12-02, 300
:
例のデータセットは、受取人の名前、取引日付、金額でこのように見えるかもしれ
John, 2017-12-01, 300 (100 + 200)
Jane, 2017-12-01, 150
John, 2017-12-02, 500 (300 + -100 + 300)
I BigDecimal
の合計を計算したが、前日の期末残高を翌日の開始残高として考慮していないCombine.perKey
関数を持つKV<Pair, BigDecimal>
を使用してみました。
お返事ありがとうございます。私が記述しているプロセスはバウンド・バッチ・プロセスです。これは、随時スケジュールでBigtableテーブルからデータを読み込み、日々の残高を計算し、別のBigtableテーブルに結果を書き込んでいます。ウィンドウ処理に関しては、コレクション要素のタイムスタンプに関連したものであり、任意のデータ要素ではないという印象を受けました。このプロセスは、過去の日付のデータ要素に対して今日処理されている可能性があります。 –
https://beam.apache.org/documentation/programming-guide/#adding-timestamps-to-a-pcollections-elements に記載されているように、要素にタイムスタンプを手動で割り当てる必要があると思われるかもしれません。 SumTotals()クラス、具体的に拡張または実装するもの、およびそのシグネチャを拡張できますか?私はコンパイルするソリューションに着陸することはできません。 –