データ処理とデータ サイエンスのジョブを簡素化できるサーバーレス Spark が Google Cloud で利用可能に
Google Cloud Japan Team
※この投稿は米国時間 2022 年 2 月 4 日に、Google Cloud blog に投稿されたものの抄訳です。
現在、多くの企業が、データ エンジニアリング、データ探索、機械学習のユースケースに対応するために、高速かつシンプルで、プログラミング言語を柔軟に選べる Apache Spark を選択しています。しかし、クラスタの管理とインフラストラクチャの調整が非常に非効率的で、さまざまなユースケースへの対応が統合されていないため、生産性向上のメリットが十分に発揮されていません。また、ガバナンスのリスクも生じるため、Spark によって得られる可能性のある価値が損なわれています。
そしてこのたび、業界初の自動スケーリングに対応したサーバーレス Spark であるサーバーレス Spark が一般提供となりましたのでお知らせいたします。また、BigQuery を通じて Spark の限定公開プレビュー版をご利用いただけるようになりました。これは、BigQuery ユーザーがサーバーレス Spark を BigQuery SQL とともにデータ分析に活用できるようにすることを目的としています。これにより、ETL、データ サイエンス、データ分析のユースケースを大規模かつ簡単に強化できるようになります。
Spark 向け Dataproc Serverless(一般提供)
IDC によると、デベロッパーは 40% の時間をコードの記述に費やし、60% の時間をインフラストラクチャの調整とクラスタの管理に費やしています。さらに、Spark 担当のデベロッパーがインフラストラクチャの専門家であるとは限らないため、コストと生産性への影響が大きくなります。
このたび一般提供が開始されるサーバーレス Spark は以下の利点をもたらすことで、これらの問題を解決します。
デベロッパーはコードやロジックに集中できます。クラスタの管理やインフラストラクチャの調整は必要ありません。お好みのインターフェースから Spark ジョブを送信すれば、ジョブのニーズに合わせて自動スケーリングで処理されます。
データ エンジニアリング チームは、エンドユーザーのためにインフラストラクチャの管理やモニタリングを行う必要がなく、より重要なデータ エンジニアリングの作業に時間を費やすことができます。
インフラストラクチャの使用時間ではなく、ジョブにかかった時間にのみ料金が発生します。
OpenX によるサーバーレス Spark の活用: 手間のかかるクラスタ管理からサーバーレスに移行
パブリッシャーとデマンド パートナー向けに業界最大の独立系アド エクスチェンジ ネットワークを運営する OpenX は、古い MapReduce パイプラインからの移行に取り組んでいました。以前の MapReduce クラスタは複数のジョブで共有されていたため、クラスタサイズの頻繁な更新やオートスケーラーの管理、さらにはアップグレードやその他の修復不可能な理由によってクラスタの再構築がときどき必要でした。
OpenX は Google Cloud のサーバーレス Spark を使用してすべてのクラスタ リソースを抽象化し、ジョブ自体に集中できるようにしました。これにより、インフラストラクチャのコストを削減しながら、チームの生産性を大きく向上させることができました。OpenX にとって、サーバーレス Spark は、クラスタ ライフサイクル管理のメンテナンス費用はもちろんのこと、リソースの面でも費用の節減につながることがわかりました。
実装段階において、OpenX はまず既存パイプラインの特徴を評価しました。それは、1 時間あたり 1.7 TB から 2.8 TB までサイズにばらつきのある圧縮された Avro 入力による毎時のバッチ ワークロードでした。パイプラインが共有クラスタ上で他のジョブとともに実行され、データ シャッフルは不要でした。


フローを設定するために Airflow Kubernetes ワーカーが Workload Identity に割り当てられ、Workload Identity が Airflow のプラグイン DataprocCreateBatchOperator を使用して Dataproc のサーバーレス バッチ サービスにジョブを送信します。バッチジョブ自体は専用のサービス アカウントに割り当てられ、Spark アプリケーション jar が Google Cloud Storage にリリースされます。これは、Gradle プラグインを通じて行われ、Dataproc バッチがそこから直接 jar をロードできます。別のジョブ依存関係(Spark-Avro)はドライバまたはワーカー ファイルシステムから読み込まれます。次に、バッチジョブが初期サイズ 100 エグゼキュータ(1 vCPU + 4 GB RAM)で開始され、1 日の毎時データサイズに幅があるのでオートスケーラーが必要に応じてリソースを追加します。


BigQuery を介したサーバーレス Spark(プレビュー版)
データ アナリストによる SQL または PySpark の記述を可能にするための統合インターフェースを BigQuery に追加することは、NEXT でも発表したとおりです。このたび、プレビュー版の提供が開始され、お申し込みフォームからアクセスをリクエストできるようになりました。
PySpark コードを BigQuery エディタで記述でき、サーバーレス Spark を使用してシームレスに実行できます。インフラストラクチャのプロビジョニングは必要ありません。BigQuery は、サーバーレスでのデータ ウェアハウジングの先駆者です。サーバーレス Spark を新たにサポートし、Spark ベースの分析に対応するようになりました。


今後の予定
事前にインフラストラクチャをプロビジョニングせずに Spark を利用できるよう、さまざまなユーザーが使用するインターフェースにサーバーレス Spark を統合することに取り組んでいます。今後数か月以内に、データ サイエンティストは Vertex AI Workbench を通じ、データ アナリストは Dataplex を通じてサーバーレス Spark をご利用いただけるようになりますので、ご期待ください。ご興味がございましたら、同じお申し込みフォームにご記入ください。
サーバーレス Spark と BigQuery を介した Spark を今すぐ使ってみる
サーバーレス Spark は、こちらのチュートリアルまたは一般的な ETL タスク用のいずれかのテンプレートを使用してお試しいただけます。BigQuery を介した Spark(プレビュー版)のご利用のお申し込みは、こちらのフォームにご記入ください。
- OpenX データ プラットフォーム エンジニア Marek Wolczanski 氏