* この投稿は米国時間 3 月 15 日、Google Cloud Platform の Technical Lead である Sam McVeety によって投稿されたもの(投稿はこちら)の抄訳です。


このたびリリースされた Dataflow SDK Version 1.5.0では、Google BigQuery からデータを処理用に取り込む速度が大幅に向上しています。

Google の社内ベンチマークを見てみると、パイプラインにおいて BigQuery からデータを取り込むセグメントが従来よりも 10 倍高速に実行されていることがわかります。

下図に示すように、BigQuery からのエクスポート専用のパイプラインにおいて速度の向上が顕著です。


私たち Google のもとには、BigQuery からデータを取り込むセクションの高速化に関する質問が数多く寄せられていました。Dataflow SDK 1.5.0 がまさにそのための方法を提供することを、私たちはうれしく思います。

これまでその取り込み速度は、BigQuery からエクスポートするファイルのフォーマットに依存していました。

Dataflow SDK の従来バージョンの場合、テーブルとクエリは Dataflow に、JSON エンコードされた Google Cloud Storage オブジェクトとして提供されていました。それらのエントリがすべて同じスキーマを持つことを考えると、この表現はきわめて冗長です。基本的に、レコードごとにスキーマを文字列として複製することになるからです。

それに対して Dataflow SDK 1.5.0 では、Dataflow は Avro ファイル フォーマットを使用し、単一の共有スキーマに従って BigQuery データをバイナリ エンコードおよびデコードします。これにより、個々のレコード サイズが実際のフィールド値に応じて減少します。

こうした効率性が、私たち Google が Protocol Buffers (Apache Avro とよく似た多くのデータ シリアライズ システムの 1 つ)を非常に気に入っている理由の 1 つです。

当然のことながら、BigQuery シンクでも同様のパフォーマンス向上が得られます。Dataflow チームと BigQuery チームは Avro エンコーディングのサポートを予定しており、その実現を楽しみにしています。


- Posted by Sam McVeety, Technical Lead, Google Cloud Platform