ブログとリリース
2020/05/27
Apache Beam 2.21.0
Beamの新しい2.21.0リリースを発表できることを嬉しく思います。このリリースには、改善と新機能の両方が含まれています。このリリースのダウンロードページをご覧ください。
2.21.0の変更点の詳細については、詳細なリリースノートをご覧ください。
I/O
- Python:非推奨のモジュール `apache_beam.io.gcp.datastore.v1` は、使用しているクライアントが古く、Python 3をサポートしていないため削除されました(BEAM-9529)。コードを `apache_beam.io.gcp.datastore.v1new` を使用するように移行してください。更新されたapache_beam.io.gcp.datastore.**v1new**の使用例については、更新されたdatastore_wordcountを参照してください。
- Python SDK:Google Cloud Spanner変換の統合テストを追加し、バッチ書き込み機能を更新しました(BEAM-8949)。
新機能/改善点
Python SDKは、Python 3の型アノテーションをパイプラインの型ヒントとして使用するようになりました。(#10717)
この機能が原因でパイプラインが失敗していると思われる場合は、パイプラインを作成する前に `apache_beam.typehints.disable_type_annotations()` を呼び出すと完全に無効になり、特定の関数(`process()` など)に `@apache_beam.typehints.no_annotations` デコレータを付けると、その関数に対して無効になります。
詳細は、Pythonの型安全性の確保とPython SDKの型付け変更に関するブログ記事をご覧ください。
Java SDK:Beamスキーマにオプションの概念を導入しました。これらのオプションは、フィールドとスキーマに追加のコンテキストを追加します。これは、FieldTypeのみに存在する現在のBeamメタデータを置き換えるもので、オプションはフィールドと行スキーマで使用できます。スキーマオプションは完全に型指定されており、複雑な行を含むことができます。*注意:スキーマ対応はまだ実験段階です。*(BEAM-9035)
Java SDK:protobuf拡張機能は完全にスキーマに対応しており、protobufオプションからBeamスキーマオプションへの変換も含まれています。*注意:スキーマ対応はまだ実験段階です。*(BEAM-9044)
Avroファイルのロードを介してBigQueryに書き込む機能を追加しました(Python)(BEAM-8841)
デフォルトでは、ファイルのロードはJSONを使用して行われますが、`temp_file_format` パラメーターを指定してAVROでファイルエクスポートを実行することもできます。AVROベースのファイルロードは、Python型をAvro型にエクスポートすることで機能するため、AVROベースのロードに切り替えるには、データ型をJSON互換型(文字列型の `date` と `timestamp`、数値 `long` 値を文字列として)からAVROに書き込まれるPythonネイティブ型(Pythonの `date`、 `datetime` 型、 `decimal` など)に変更する必要があります。詳細については、https://cloud.google.com/bigquery/docs/loading-data-cloud-storage-avro#avro_conversionsを参照してください。
Java SDKとGoogle Cloud AI VideoIntelligenceサービスの統合を追加しました(BEAM-9147)
Java SDKとGoogle Cloud AI自然言語処理APIの統合を追加しました(BEAM-9634)
`docker-pull-licenses` タグが導入されました。`docker-pull-licenses` が設定されている場合、サードパーティの依存関係のライセンス/通知がDockerイメージに追加されます。ファイルは `/opt/apache/beam/third_party_licenses/` に追加されます。デフォルトでは、Dockerイメージにはライセンス/通知は追加されません。(BEAM-9136)
破壊的変更
- Dataflowランナーでは、環境にデフォルト値が設定されていない限り、`--region` オプションを設定する必要があります(BEAM-9199)。詳細については、こちらを参照してください。
- HBaseIO.ReadAllでは、HBaseQueryオブジェクトの代わりにHBaseIO.ReadオブジェクトのPCollectionが必要になりました(BEAM-9279)。
- ProcessContext.updateWatermarkは、WatermarkEstimatorを使用するために削除されました(BEAM-9430)。
- 行オブジェクトのPCollectionのCoder推論が無効になりました(BEAM-9569)。
- Go SDK Dockerイメージは、追って通知があるまでリリースされなくなりました。
非推奨
- Java SDK:Beam Schema FieldType.getMetadataは非推奨になり、Beam Schema Optionsに置き換えられました。バージョン`2.23.0`で削除されます。(BEAM-9704)
- Dataflowランナーの `--zone` オプションは非推奨になりました。代わりに `--worker_zone` を使用してください。(BEAM-9716)
貢献者一覧
git shortlogによると、以下の皆様が2.21.0リリースに貢献されました。すべての貢献者に感謝します!
Aaron Meihm, Adrian Eka, Ahmet Altay, AldairCoronel, Alex Van Boxel, Alexey Romanenko, Andrew Crites, Andrew Pilloud, Ankur Goenka, Badrul (Taki) Chowdhury, Bartok Jozsef, Boyuan Zhang, Brian Hulette, brucearctor, bumblebee-coming, Chad Dombrova, Chamikara Jayalath, Chie Hayashida, Chris Gorgolewski, Chuck Yang, Colm O hEigeartaigh, Curtis “Fjord” Hawthorne, Daniel Mills, Daniel Oliveira, David Yan, Elias Djurfeldt, Emiliano Capoccia, Etienne Chauchot, Fernando Diaz, Filipe Regadas, Gleb Kanterov, Hai Lu, Hannah Jiang, Harch Vardhan, Heejong Lee, Henry Suryawirawan, Hk-tang, Ismaël Mejía, Jacoby, Jan Lukavský, Jeroen Van Goey, jfarr, Jozef Vilcek, Kai Jiang, Kamil Wasilewski, Kenneth Knowles, KevinGG, Kyle Weaver, Kyoungha Min, Luke Cwik, Maximilian Michels, Michal Walenia, Ning Kang, Pablo Estrada, paul fisher, Piotr Szuberski, Reuven Lax, Robert Bradshaw, Robert Burke, Rose Nguyen, Rui Wang, Sam Rohde, Sam Whittle, Spoorti Kundargi, Steve Koonce, sunjincheng121, Ted Yun, Tesio, Thomas Weise, Tomo Suzuki, Udi Meiri, Valentyn Tymofieiev, Vasu Nori, Yichi Zhang, yoshiki.obata, Yueyang Qiu