リリースノート: Cloud Dataflow SDK 2.x for Java

注: Apache Beam のダウンロード ページには、Apache Beam SDK リリースのリリースノートが用意されています。

注: Cloud Dataflow SDK 2.x リリースには、1.x シリーズ以降の重要な変更が多数含まれています。詳細については 1.x から 2.x への移行ガイドの変更点をご覧ください。

Google は 2016 年 1 月に、Cloud Dataflow SDK を Apache Beam プロジェクトの一環として Apache Software Foundation に贈与することを発表しました。Cloud Dataflow SDK は、Apache Beam ベースになりました。

Cloud Dataflow SDK for Java 2.0.0 は、Apache Beam のコードベースのサブセットに基づいた、Cloud Dataflow SDK for Java のバージョン 2.x の最初の安定版リリースです。Cloud Dataflow SDK for Java のバージョン 1.x については、Cloud Dataflow SDK 1.x for Java リリースノートをご覧ください。

SDK バージョンのサポート状況のページには、Cloud Dataflow SDK の各リリースのサポート状況に関する情報が記載されています。

Cloud Dataflow SDK をインストールして使用する方法については、Cloud Dataflow SDK インストール ガイドをご覧ください。

Cloud Dataflow SDK for Java 1.x からアップグレードするユーザーへの警告:
これは新しいメジャー バージョンであるため、次の注意点があります。
* 重要な変更点: Cloud Dataflow SDK 2.x for Java には、リリースの 1.x シリーズからの重要な変更が多数あります。詳しくは以下をご覧ください。
* 更新の非互換性: Cloud Dataflow SDK 2.x for Java は、Cloud Dataflow 1.x の更新と互換がありません。Cloud Dataflow 1.x SDK を使用したストリーミング ジョブを更新して、Cloud Dataflow 2.x SDK を使用するようにすることはできません。Cloud Dataflow 2.x のパイプラインは、SDK バージョン 2.0.0 以降のバージョン間でのみ更新できます。

Cloud Dataflow SDK ディストリビューションのコンテンツ

Cloud Dataflow SDK ディストリビューションには、Apache Beam エコシステムのサブセットが含まれています。このサブセットには、パイプラインを定義して、ローカルおよび Cloud Dataflow サービスでそのパイプラインを実行するのに必要な、次のようなコンポーネントが同梱されています。

  • Core SDK
  • DirectRunner と DataflowRunner
  • 他の Google Cloud Platform サービスの I/O コンポーネント
  • Apache Kafka

Cloud Dataflow SDK ディストリビューションには、次のような他の Beam コンポーネントは同梱されていません

  • 他の分散処理エンジンのランナー(Apache Spark や Apache Flink など)
  • 上記に明示されていない Cloud Platform 以外のサービスの I/O コンポーネント

同梱されていないコンポーネントがユースケースに必要な場合は、適切な Apache Beam モジュールを直接使用して、Cloud Dataflow サービスでパイプラインを実行することもできます。

リリースノート

このセクションでは、各バージョンで Cloud Dataflow のお客様に最も関係のある変更について説明します。

Apache Beam のダウンロード ページでは、Apache Beam SDK リリースのリリースノートもダウンロードできます。

2018 年 12 月 17 日

JSON-RPC および Global HTTP Batch Endpoints の廃止に伴い、2019 年 3 月 25 日に次の SDK のバージョンが廃止される予定です。この日を過ぎると、新しい Cloud Dataflow ジョブを送信したり、廃止された SDK を使用して実行中の Cloud Dataflow ジョブを更新したりすることはできなくなります。さらに、これらの SDK バージョンを使用する既存のストリーミング ジョブが失敗することがあります。

  • Apache Beam SDK for Java、バージョン 2.0.0~2.4.0
  • Apache Beam SDK for Python、バージョン 2.0.0~2.4.0
  • Cloud Dataflow SDK for Java、バージョン 2.0.0~2.4.0
  • Cloud Dataflow SDK for Python、バージョン 2.0.0~2.4.0

SDK サポート状況の詳細については、SDK バージョンのサポート状況のページをご覧ください。

2.5.0(2018 年 6 月 27 日)

今後のサポート終了の予告: Cloud Dataflow SDK 2.5.0 は、Java 用の最後の Cloud Dataflow SDK リリースとなります。Cloud Dataflow SDK リリースは Apache Beam SDK のリリースとは別個のものです。

バージョン 2.5.0 は、Apache Beam 2.5.0 のサブセットをベースにしています。変更情報の詳細については、Apache Beam 2.5.0 のリリース発表をご覧ください。

Cloud Dataflow SDK の一部として KafkaIO を追加しました。

バッチモードの読み込みジョブ用に別のプロジェクトを使用するために BigQueryIO が有効化されました。

SpannerIO のバッチ API を無効にする機能が追加されました。

BigQueryIO に優先度(INTERACTIVE または BATCH)を指定するための方法を提供するオプションが追加されました。

複数のタイマーが同じバンドルに設定されている場合に DirectRunner がハングするように修正しました。

安定性、パフォーマンス、ドキュメントに関するいくつかの問題を改善しました。

2.4.0(2018 年 3 月 30 日)

バージョン 2.4.0 は、Apache Beam 2.4.0 のサブセットをベースにしています。変更情報の詳細については、Apache Beam 2.4.0 のリリース発表をご覧ください。

変換の汎用順序付けを可能にする新しい Wait.on() 変換が追加されました。Wait.on() は、バッチ パイプラインとストリーミング パイプラインの両方で使用できます。

TextIO.read().watchForNewFiles() などの I/O 変換を使用して新しいファイルを監視するスケーラビリティが向上しました。テストでは最大 100 万件のファイルを正常に読み取りました。

BigQueryIO.write() では、履歴データを時間分割テーブルに安価で高速に読み込みできる、列ベースのパーティショニングがサポートされるようになりました。列ベースのパーティショニングでは、パーティションごとに 1 つの読み込みジョブを使用する代わりに全体で 1 つの読み込みジョブを使用します。

Cloud Spanner の BatchQuery API を使用するように SpannerIO が更新されました。Cloud Dataflow Connector の使用に関する詳細は、Cloud Spanner のドキュメントに記載されています。

Java Cryptography Extension(JCE)無制限ポリシーをサポートするように Cloud Dataflow コンテナが更新されました。

非推奨のメソッド WindowedValue.valueInEmptyWindows() が削除されました。

ApproximateUnique の早すぎるデータ破棄の問題を修正しました。

安定性、パフォーマンス、ドキュメントに関するいくつかの問題を改善しました。

2.3.0(2018 年 2 月 28 日)

バージョン 2.3.0 は、Apache Beam 2.3.0 のサブセットをベースにしています。変更情報の詳細については、Apache Beam 2.3.0 のリリース発表をご覧ください。

Java 7 のサポートが削除されました。

BigtableIOテンプレートのサポートValueProvider パラメータ)が追加されました。

ファイルに書き込むための新しい汎用の使用しやすい API(FileIO.write()FileIO.writeDynamic())が追加されました。TextIOAvroIODynamicDestinations API は非推奨となりました。

MapElementsFlatMapElements は副入力をサポートするようになりました。

パーティション デコレータを使用してテーブルに書き込むときの BigQueryIO の問題が修正されました。

2.2.0(2017 年 12 月 8 日)

バージョン 2.2.0 は、Apache Beam 2.2.0 のサブセットがベースになっています。詳細な変更情報については、Apache Beam 2.2.0 のリリースノートをご覧ください。

問題

既知の問題: バッチモードで実行すると、ゲージ指標が報告されません。

既知の問題: SQL のサポートは試験運用版であり、Cloud Dataflow ではテストされていないため、このリリースには含まれていません。SQL の使用はおすすめしません。

更新/改善ポイント

DataflowPipelineOptions でジョブラベルを設定する機能を追加しました。

BigQueryIO による Avro GenericRecords の読み取りのサポートを追加しました。

TextIO にマルチバイトのカスタム区切り文字のサポートを追加しました。

TextIO に新しいファイルの監視機能(TextIO.watchForNewFiles)のサポートを追加しました。

TextIOAvroIO にファイル名の PCollection の読み取り(ReadAll)のサポートを追加しました。

BigtableIO.write() で検証を無効にできるようになりました。

BigQueryIO.write()setTimePartitioning メソッドを使用できるようになりました。

安定性、パフォーマンス、ドキュメントに関するいくつかの問題を改善しました。

2.1.0(2017 年 9 月 1 日)

バージョン 2.1.0 は、Apache Beam 2.1.0 のサブセットがベースになっています。詳細な変更情報については、Apache Beam 2.1.0 のリリースノートをご参照ください。

問題

既知の問題: バッチモードで実行すると、ゲージ指標が報告されません。

更新/改善ポイント

問題が発生している可能性のあるコードが検出されるようになりました。このようなコードが検出されると、Processing lulls ログにエントリが記録されます。

ストリーミング モードでの DataflowRunner の指標がサポートされるようになりました。

ON_TIME のペインの出力を制御するために、OnTimeBehaviorWindowinStrategy に追加されました。

ウィンドウ処理されるファイル FileBasedSink のデフォルトのファイル名ポリシーが追加されました。このファイルは、ウィンドウ処理された入力を使用します。

期限切れのウィンドウの処理時間タイマーが無視される問題が修正されました。

Datastore の応答が遅いときに DatastoreIO が行われなかった問題が修正されました。

bzip2 のファイルが部分的にしか読み取られていなかった問題が修正されました。連結された bzip2 のファイルがサポートされるようになりました。

安定性、パフォーマンス、ドキュメントに関するいくつかの問題を改善しました。

2.0.0(2017 年 5 月 23 日)

バージョン 2.0.0 は、Apache Beam 2.0.0 のサブセットがベースになっています。詳細な変更情報については、Apache Beam 2.0.0 のリリースノートをご参照ください。

問題

確認された問題: ストリーミング モードで実行している場合、Cloud Dataflow の UI に指標が報告されません。

確認された問題: バッチモードで実行している場合、ゲージ指標が報告されません。

更新/改善ポイント

Stackdriver Error Reporting インターフェースの使用のサポートを追加しました。

異なるスキーマを持つ可能性のある複数のテーブルをデータで指定したうえで書き込みを行うための新しい API が、BigQueryIO に追加されました。BigQueryIO.Write.to(SerializableFunction)BigQueryIO.Write.to(DynamicDestinations) をご覧ください。

TextIOAvroIO に、ウィンドウ処理された制限なしのコレクションを書き込むための新しい API を追加しました。例として、TextIO.Write.withWindowedWrites()TextIO.Write.withFilenamePolicy(FilenamePolicy) をご覧ください。

TensorFlow TFRecord ファイルを読み書きする TFRecordIO が追加されました。

デフォルトの CoderRegistryCoderProvider を自動的に登録する機能が追加されました。 CoderProvider は、ServiceLoader によって CoderProviderRegistrar の具象実装を介して登録されます。

Google API に新しい要件が追加され、Cloud Resource Manager API も有効にすることが必要になりました。

ParDo に副入力と副出力が加わったため、そのパラメータの順序が変更されました。

MapElements および FlatMapElements 変換に出力データ型パラメータを指定する際の順序が変更されました。

PubsubIO および KafkaIO においてカスタムデータ型を読み書きするためのパターンが変更されました。

TextIOAvroIOTFRecordIOKinesisIOBigQueryIO において読み書きする構文が変更されました。

Window 変換を使用して WindowFn 自体でないウィンドウ処理パラメータを設定する構文が変更されました。

XmlSourceXmlSinkXmlIO に統合されました。

CountingInput の名前が GenerateSequence に変更されたため、制限ありシーケンスを生成する構文と制限なしシーケンスを生成する構文が統一されました。

BoundedSource#splitIntoBundles の名前が #split に変更されました。

UnboundedSource#generateInitialSplits の名前が #split に変更されました。

@StartBundle からの出力が利用できなくなりました。このメソッドでは、PipelineOptions にアクセスするために、型 Context のパラメータを受け入れる代わりにオプションとして型 StartBundleContext の引数を受け入れることができます。

@FinishBundle からの出力には、常に明示的なタイムスタンプとウィンドウを指定する必要があります。このメソッドでは、PipelineOptions にアクセスするために、型 Context のパラメータを受け入れる代わりにオプションとして型 FinishBundleContext の引数を受け入れることができます。

XmlIO が SDK Core の一部ではなくなりました。このため、新しい xml-io パッケージを使用して手動で追加する必要があります。

ユーザー定義の指標 / カウンタを作成するための Aggregator API が新しい Metrics API に置き換えられました。


注: 2.0.00-beta 版はすべてサポートが終了されました

2.0.0-beta3(2017 年 3 月 17 日)

バージョン 2.0.0-beta3 は Apache Beam 0.6.0 のサブセットに基づいています。

TextIO が文字列のみに対して動作するように変更されました。

KafkaIO が型パラメータを明示的に指定するように変更されました。

ToString のファクトリ関数の名前が変更されました。

CountLatestSampleSortValues 変換が変更されました。

Write.Bound の名前が Write に変更されました。

Flatten 変換クラスの名前が変更されました。

GroupByKey.create メソッドが create メソッドと createWithFewKeys メソッドに分割されました。

2.0.0-beta2(2017 年 2 月 2 日)

バージョン 2.0.0-beta2 は Apache Beam 0.5.0 のサブセットに基づいています。

Read 変換と Write 変換が Cloud Pub/Sub のメッセージ属性にアクセスできるようにする PubsubIO 機能を追加しました。

新たな State API による、ステートフルなパイプラインのサポートを追加しました。

新しい Timer API によるタイマーのサポートを追加しました。この機能は、このリリースの DirectRunner に限ってサポートされます。

2.0.0-beta1(2017 年 1 月 7 日)

バージョン 2.0.0-beta1 は Apache Beam 0.4.0 のサブセットに基づいています。

圧縮の改善: CompressedSource によって、ZIP で圧縮されたファイルを読み取れるようになりました。TextIO.WriteAvroIO.Write により、圧縮された出力をサポートします。

AvroIO の機能強化: Write で、カスタムのユーザー メタデータを追加できるようになりました。

BigQueryIO の機能強化: Write が大規模な一括インポート(12 TiB を超えるもの)を複数の BigQuery の読み込みジョブに分割するため、非常に大きなデータセットを扱えるようになりました。

BigtableIO の機能強化: Write は、制限なしの PCollection をサポートします。DataflowRunner のストリーミング モードで使用できます。

詳しくは、Apache Beam 0.3.0-incubating0.4.00.5.0 のリリースノートをご覧ください。

対応するバージョンの他の Apache Beam のモジュールをこのリリースで使用できます。これには、Java Message Service(JMS)、Apache Kafka、Java Database Connectivity(JDBC)、MongoDB、Amazon Kinesis などの追加の I/O コネクタなどがあります。詳しくは、Apache Beam のサイトをご覧ください。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。