side inputs per window 再び, 用語の統一, Partial Group By Key with Combine Function
今週も 12 個ほどコミットがありました。そのなかから主要そうなものをピックアップします。
side inputs per window 再び
先週 32d07db でコミットされた side inputs の windowing 対応ですが、その後 90c811a で一旦 revert され、その後 Makes side inputs per window. · GoogleCloudPlatform/DataflowJavaSDK@67e99cc で再度適用されています。 sdk/src/main/java/com/google/cloud/dataflow/sdk/transforms/GroupByKey.java の変更が消されているようですね。 context.sideInput() は startBundle() や finishBundle() では呼び出せないようになって、現在処理中の入力の PCollection の window と同じ window のデータのみ取得できるようになるそうです。
Windows support 再び
Updated TestFileBasedSourceTest to use File.separator instead of "/". · GoogleCloudPlatform/DataflowJavaSDK@4d7ae28 は特に大きな変更ではなくて、テストでファイルの separator を "/" と書いていたのをポータビリティのため File.separator が利用されるように変えていて、ここでも Windows でテストされている感が出ています。
用語の統一 (shard -> bundle, fork -> dynamic split)
Renaming shard => bundle in the Java custom source API. · GoogleCloudPlatform/DataflowJavaSDK@2a8d571 や Renames fork => dynamic split in the Dataflow Java SDK. · GoogleCloudPlatform/DataflowJavaSDK@7cbc12a はそれぞれ shard を bundle (データを処理単位に分割したもののことだと思います)、fork を dynamic split (データを複数の worker に分散させることのことかなと思います)と用語を整理しています。まだアルファということもあってこのような用語の統一のために API の互換性も壊しても一貫性を保つようにしているようです。
Partial Group By Key with Combine Function
Modify the Dataflow Java SDK to support the combining function in Partia... · GoogleCloudPlatform/DataflowJavaSDK@b426cbd PartialGroupByKeyOperation で Combine も同時に適用できるようにしています。 Partial Group By Key という処理がいまいちよくわからないのですが、グループ分け後の値の集合について Conbine 関数を適用して集計処理を同時に実施できるようにしています。