Job name uniqueness, unlimit GCS filezise, Avro Source, Sharding BigQuery output
少々間があきましたが、着実に追い付いてきています。
Job name uniqueness
ジョブ名に自動的に日付や時刻を埋め込みがユニークになることを保証するようにしています。また同名のジョブを投入しようとした時のエラーメッセージも親切なものにしています。 Dataflow のジョブ管理まわりは割と適当でしたが、そろそろこのへんも実装の手が回りはじめたようですね。
unlimit GCS filezise
Turning off the 250Gb upload limit by default · GoogleCloudPlatform/DataflowJavaSDK@fc35bb5 · GitHub
GCS へアップロードするファイルサイズに 250GB の制限があったそうなのですがそれをデフォルトで off にしています。 そんな制限あるとは知らなかった。
Avro Source
入力 Source に io/AvroSource を追加して Avro 形式のファイルからの入力のサポートを追加しています。 Avro というのはオープンソースの data serialization system だそうで。 https://avro.apache.org/
Sharding BigQuery output
Support per-window tables in BigQueryIO · GoogleCloudPlatform/DataflowJavaSDK@ccad188 · GitHub
BigQuery への出力に BigQueryIO.Write.to() メソッドを追加して streaming モードで Window 毎に別のテーブルへの出力ができるように(BigQueryIO.Write.to() メソッドにテーブル名を返す SerializableFunction を渡せる)しています。おお、これは便利そうですね。テーブルも自動で作ってくれるそうです。