ブログ & リリース
2018/06/26
Apache Beam 2.5.0
Beamの新しい2.5.0リリースを発表できることを嬉しく思います。このリリースには、複数の修正と新機能が含まれています。
詳細については、詳細なリリースノートをご覧ください。
新機能 / 改善点
Go SDKサポート
Go SDKは、インキュベーション期間とコミュニティの努力を経て、正式にプロジェクトに採用されました。GoパイプラインはDataflowランナーで実行されます。詳細はこちらです。
Parquetサポート
Apache Parquetフォーマットのサポートが追加されました。AvroParquetWriterのAPI変更のおかげで、FileIO.Sink実装を可能にするParquet 1.10リリースを使用しています。
パフォーマンス/統合テスト
- 新しい統合テストを追加 - HCatalogIOIT (Hive), HBaseIOIT, ParquetIOIT (IO自体、ローカルファイルシステム、HDFS)
- HDFSでのテスト実行には、マルチノード(3データノード)HDFSクラスタが使用されます。
- パフォーマンステストの実行と結果分析に関するいくつかの改善。
- Kubernetesクラスタを1ノードから3ノードにスケールアップしました。
- Sparkストリーミングにメトリクスを追加しました。
内部ビルドシステム:Gradleに移行
数ヶ月にわたるコミュニティの努力を経て、Beamの内部ビルドがMavenからGradleに移行されました。新しいビルドシステムは、依存関係駆動型ビルドのサポート、増分ビルド/テスト、Java以外の言語のサポートのために選択されました。
Nexmarkの改善
- イベントと結果のソース/シンクとしてのKafkaのサポート。
- 一部のクエリのBeam SQLへの変換。
Beam SQL
- MAP、ROW、ARRAYデータ型のサポート
- 配列フィールドでのUNNESTのサポート
- 最適化の改善
- Calciteを1.16にアップグレード
- 自動変換によるPOJOでのSQLのサポート
- スキーマをコアBeamに移動
- UDAFはCombineFnの間接的なサブクラスにすることができます
- その他多数の小さなバグ修正
移植性
- ランナーのポータブル実行のサポートに関連する共通の共有コード。
- 移植性APIを介したサイド入力に対応したPython SDK。
ランナーに依存しない方法でメトリクスを抽出
メトリクスは、ランナーによって設定可能なシンクにプッシュされます(Http RESTシンクが利用可能です)。FlinkとSparkランナーではすでに有効になっており、Dataflowの作業は進行中です。
その他の修正
SDK
- Python SDKにHDFS FileSystemを実装しました。
- Python SDKは、ストリーミング実行のサイド入力をサポートしています。
ランナー
- SparkランナーをSparkバージョン2.3.1に更新しました
- 期限切れの固定ウィンドウにウィンドウ化された遅延要素がDirectRunnerでドロップされる問題を修正しました。
IO
- CassandraIOは、重複するリージョンに基づくより優れた分割アルゴリズムを獲得しました。
- ElasticsearchIOは部分更新をサポートしています。
- ElasticsearchIOでは、ドキュメントごとにID、タイプ、インデックスを渡すことができます。
- SolrIOは、より堅牢な書き込み再試行戦略をサポートしています。
- S3 FileSystemは暗号化(SSE-S3、SSE-C、SSE-KMS)をサポートしています。
- JdbcIOの接続管理を改善しました。
- Kafkaにパブリッシュする際の要素のタイムスタンプのサポートを追加しました。
その他
- 静的分析にJava ErrorProneを使用します。
貢献者一覧
git shortlogによると、以下の84人が2.5.0リリースに貢献しました。すべての貢献者に感謝します!
Ahmet Altay, Alan Myrvold, Alex Amato, Alex Van Boxel, Alexander Dejanovski, Alexey Romanenko, Aljoscha Krettek, ananvay, Andreas Ehrencrona, Andrew Pilloud, Ankur Goenka, Anton Kedin, arkash, Austin Bennett, Axel Magnuson, Ben Chambers, Ben Sidhom, Bill Neubauer, Boyuan Zhang, Braden Bassingthwaite, Cade Markegard, cclauss, Chamikara Jayalath, Charles Chen, Chuan Yu Foo, Cody Schroeder, Colm O hEigeartaigh, Daniel Oliveira, Dariusz Aniszewski, David Cavazos, Dawid Wysakowicz, Eric Roshan-Eisner, Etienne Chauchot, Eugene Kirpichov, Flavio Fiszman, Geet Kumar, GlennAmmons, Grzegorz Kołakowski, Henning Rohde, Innocent Djiofack, Ismaël Mejía, Jack Hsueh, Jason Kuster, Javier Antonio Gonzalez Trejo, Jean-Baptiste Onofré, Kai Jiang, Kamil Szewczyk, Katarzyna Kucharczyk, Kenneth Jung, Kenneth Knowles, Kevin Peterson, Lukasz Cwik, Łukasz Gajowy, Mairbek Khadikov, Manu Zhang, Maria Garcia Herrero, Marian Dvorsky, Mark Liu, Matthias Feys, Matthias Wessendorf, mingmxu, Nathan Howell, Pablo Estrada, Paul Gerver, Raghu Angadi, rarokni, Reuven Lax, Rezan Achmad, Robbe Sneyders, Robert Bradshaw, Robert Burke, Romain Manni-Bucau, Sam Waggoner, Sam Whittle, Scott Wegner, Stephan Hoyer, Thomas Groh, Thomas Weise, Tim Robertson, Udi Meiri, Valentyn Tymofieiev, XuMingmin, Yifan Zou, Yunqing Zhou