Google Cloud Next Tokyo:7/30、31 東京ビッグサイトにて開催!

Apache Spark とは

Apache Spark は、SQL、ストリーミング、機械学習、グラフ処理用の組み込みモジュールを備えた大規模なデータ処理のための統合分析エンジンです。Spark は、Kubernetes、スタンドアロン クラスタ、クラウドでネイティブに実行でき、さまざまなデータソースに対応します。Java、Scala、Python(PySpark)、R 向けに豊富な API を提供しているため、幅広いデベロッパーやデータ サイエンティストが利用できます。

Google Cloud では、Apache Spark は Managed Service for Apache Spark を使用して「データを AI につなげる」プラットフォームへと変わります。Google Cloud は、マネージド クラスタやサーバーレス Spark オプション、Lightning Engine といったパフォーマンスを強化する画期的な機能を活用することで、従来の Spark デプロイに伴う「チューニング税」を解消します。統合データ / AI プラットフォームへの深い統合により、ユーザーはこれまで以上に迅速に、元データを AI ドリブンなアクションにつなげることができます。

Apache Spark の概要

Spark のエコシステムには、次の 5 つの主要コンポーネントがあります。

  • Spark Coreは、汎用の分散データ処理エンジンです。基盤となる実行エンジンとして、分散タスクの割り当てやスケジューリング、基本的な I/O 処理を管理します。Spark Core は、Resilient Distributed Datasets(RDD)という概念を導入しました。RDD は、耐障害性で並列処理できるオブジェクトの不変的な分散コレクションです。この上に、SQL、ストリーム処理、機械学習、グラフ計算用のライブラリがあります。これらはすべて、1 つのアプリケーション内で併用できます。
  • Spark SQL は、構造化データを扱うための Spark モジュールです。DataFrames を導入しており、構造化データ操作のために RDD よりも最適化され、デベロッパー指向の API を提供します。これにより、SQL や使い慣れた DataFrame API を使用して、Spark プログラム内の構造化データをクエリできます。Spark SQL は HiveQL 構文をサポートし、既存の Apache Hive ウェアハウスへのアクセスを可能にします。Google Cloud は、Lightning Engine などのイノベーションにより、特に SQL と DataFrame のオペレーションで Spark ジョブのパフォーマンスをさらに加速させます。Google Cloud で Spark を実行する際に、クエリやデータ処理タスクが大幅に高速化できます。
  • Spark Streaming を使用すると、スケーラブルでフォールトトレラントなストリーミング ソリューションを簡単に構築できるようになります。各言語に統合されたストリーム処理 API により、DStreams または DataFrame 上に構築された新しい Structured Streaming API のいずれかを使用して、バッチジョブと同じ方法でストリーミング ジョブを作成できます。Spark Streaming は、Java、Scala、Python に対応しており、ステートフルで正確に 1 回限りの処理を行う(exactly-once)セマンティクスをすぐに利用できます。
  • MLlib は、実用的な ML をスケーラブルで簡単にするツールを備えた、Spark のスケーラブルな機械学習ライブラリです。MLlib には、分類、回帰、レコメンデーション、クラスタリングなど、数多くの一般的な学習アルゴリズムが含まれています。また、ワークフローに加え、特長変換、ML パイプライン構築、モデル評価、分散線形代数、統計などのユーティリティも含まれています。Gemini Enterprise エージェント プラットフォームと組み合わせることで、Spark MLlib ワークフローを MLOps パイプラインにシームレスに統合でき、コーディングとトラブルシューティングに Gemini を活用して開発作業を効率化できます。
  • GraphX は、グラフおよびグラフ並列計算用の Spark API です。柔軟性があり、グラフとコレクションの両方をシームレスに扱うことができます。抽出、変換、読み込み、探索的分析、反復グラフ計算を 1 つのシステム内に統合させることができます。

Apache Spark のエコシステムとコンポーネント

Spark のエコシステムには、次の 5 つの主要コンポーネントがあり、それぞれが Google Cloud のインフラストラクチャによって強化されています。

  • Spark Core: 基盤となる実行エンジンとして、分散タスクの割り当てや基本的な I/O 処理を管理します。Spark Core は、Resilient Distributed Datasets(RDD)という概念を導入しました。RDD は、耐障害性で並列処理できるオブジェクトの不変的な分散コレクションです。
  • Spark SQL: DataFrames を使用して構造化データを処理するモジュールです。Google Cloud は、Lightning Engine を使用してこれらのオペレーションをさらに高速化し、手動チューニングなしで大幅な高速化を実現します。
  • Spark Streaming: バッチジョブとリアルタイム ジョブの両方で、スケーラブルでフォールト トレラントなストリーミング ソリューションを実現します。
  • MLlib: スケーラブルな機械学習ライブラリです。Gemini Enterprise エージェント プラットフォームと組み合わせることで、MLlib ワークフローを MLOps パイプラインにシームレスに統合でき、コーディングやトラブルシューティングに Gemini を活用して開発作業を効率化できます。
  • GraphX: グラフおよびグラフ並列計算用の API です。

Apache Spark のメリット

スピード

Spark のインメモリ処理と DAG スケジューラにより、特に反復タスクでは、ディスクベースの処理エンジンよりも高速なワークロード処理が可能になります。Google Cloud は、最適化されたインフラストラクチャと Lightning Engine により、さらに処理速度を向上させます。

使いやすさ

Spark の高レベルの演算子により、並列アプリの構築が簡単になります。Scala、Python、R、SQL を使用したインタラクティブな操作で、迅速な開発が可能です。また、Google Cloud では、サーバーレス オプションや Gemini と統合されたノートブックも利用できます。

スケーラビリティ

Spark は水平方向の拡張性を提供し、クラスタノード間で作業を分散することで膨大なデータを処理します。Google Cloud は、サーバーレスの自動スケーリングと柔軟なマネージド クラスタによりスケーリングを簡素化します。

一般性

Spark を基盤として、SQL と DataFrame、機械学習用の MLlib、GraphX、Spark Streaming などのライブラリのスタックが構築されています。これらのライブラリは、同じアプリケーションでシームレスに組み合わせることが可能です。

オープンソース フレームワークのイノベーション

Spark は、オープンソース コミュニティの力を活用して迅速なイノベーションと問題解決を実現します。Google Cloud はこのオープンな精神を尊重し、標準的な Apache Spark を提供しながら、その機能を強化しています。

SQL のみのエンジンではなく Spark を選ぶ理由

Apache Spark は、高速な汎用クラスタまたはサーバーレスの計算エンジンです。Spark を使用すると、プログラマーは Java、Scala、Python、R、SQL でアプリケーションを迅速に作成できるようになります。これにより、デベロッパー、データ サイエンティスト、統計の経験を持つ先進的なビジネスマンが、アプリケーションにアクセスできるようになります。Spark SQL を使用すれば、任意のデータソースに接続し、テーブルとして SQL クライアントに提示できます。また、インタラクティブな機械学習アルゴリズムを Spark に簡単に実装できます。

Apache Impala、Apache Hive、Apache Drill などの SQL 専用エンジンでは、ユーザーは複数のデータベースに保存されているデータをクエリするために SQL または SQL に似た言語のみを使用できます。これは、フレームワークが Spark と比較して小さいことを意味します。 しかし、Google Cloud では、厳密な選択をする必要はありません。BigQuery は強力な SQL 機能を提供し、Managed Service for Apache Spark を使用すると、Apache Iceberg などのオープン フォーマットで レイクハウス を介して同じデータで Spark の汎用性を使用できます。

企業が Spark をどのように活用しているか

多くの企業が Spark を使用して、構造化データと非構造化データの両方を含む大量のリアルタイム データやアーカイブ データの処理や分析という、困難で計算負荷の高いタスクを簡素化しています。Spark を使用すれば、機械学習やグラフ アルゴリズムなどの関連する複雑な機能をシームレスに統合できます。 一般的なアプリケーションは次のとおりです。

  • 大規模な ETL/ELT
  • リアルタイム データ処理
  • 機械学習
  • インタラクティブなデータ探索
  • グラフ分析

データ エンジニア

データ エンジニアは、堅牢なデータ処理パイプラインと大規模な ETL ワークフローを設計、構築、維持するために Spark を利用しています。Google Cloud では、データ エンジニアは Managed Service for Apache Spark を活用してインフラストラクチャのトイルを排除し、ゼロオペレーションのサーバーレス実行とフルマネージド クラスタのどちらかを選択できます。BigQuery と Knowledge Catalog にシームレスに統合されているため、エンジニアは Apache Iceberg などの形式を使用して、管理されたオープン レイクハウス アーキテクチャを構築できます。さらに、データ エージェントと Gemini の助けを借りて、データ ラングリングを自動化し、PySpark コード生成を加速することで、これまで以上に迅速に生データからプロダクション レディのパイプラインに移行できます。

データ サイエンティスト

データ サイエンティストは、GPU で Spark を使用して分析や ML のより豊かな体験を実現できます。使い慣れた言語で大量のデータをより高速に処理できるため、イノベーションの加速に貢献します。 Google Cloud は、Spark に対する堅牢な GPU サポートと Gemini Enterprise エージェント プラットフォームとのシームレスな統合を提供し、データ サイエンティストがモデルをより迅速に構築してデプロイできるようにします。Jupyter や VS Code など、好みの IDE を接続して、柔軟な開発環境を実現できます。Gemini と組み合わせることで、初期の探索から本番環境へのデプロイまでのワークフローを加速します。

Google Cloud 上で Spark をより効率的に活用する方法

Spark をより簡単に、よりスマートに、より速く。

Google Cloud は、Spark を大規模に実行する際の一般的な課題を解消し、インフラストラクチャではなく分析情報に集中できるようにします。 Managed Service for Apache Spark でエクスペリエンスを最適化しましょう。Managed Service for Apache Spark

  • 柔軟なデプロイ オプション: ワークロードに適した環境を選択できます。ゼロオペレーションのサーバーレス Spark で運用上のオーバーヘッドを排除するか、フルマネージド クラスタで詳細な制御を維持します。
  • 業界をリードするパフォーマンス: Lightning Engine により、最も要求の厳しい ETL およびデータ サイエンスのワークロードを最大 4.9 倍高速化します。サーバーレス クラスタとマネージド クラスタの両方で利用でき、コンピューティング費用を削減し、コードを変更することなく手動チューニングの負担を解消します。
  • 選択した IDE での統合開発: VS Code、Jupyter など、任意の環境で Spark コードを直接作成して実行できます。コンテキストを切り替えることなく、同じ管理対象データで SQL と Spark をシームレスに利用できます。
  • エージェント型 AI 開発: PySpark コーディングとデータ ラングリングを自動化するデータ エージェントを使用して、ワークフローを加速します。Gemini Cloud Assist を活用して、複雑なジョブの根本原因分析とトラブルシューティングを自動化します。
  • 統合ガバナンス: Knowledge Catalog を使用してデータと AI のガバナンスを管理します。エージェントにセマンティクスを提供して、データの取り込みから AI ドリブンな分析情報に至るまで、一貫したデータ ライフサイクルを確保します。

参考情報

次のステップ

$300 分の無料クレジットと 20 以上の無料枠プロダクトを活用して、Google Cloud で構築を開始しましょう。

  • Google Cloud プロダクト
  • 100 種類を超えるプロダクトをご用意しています。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。また、すべてのお客様に 25 以上のプロダクトを無料でご利用いただけます(毎月の使用量上限があります)。
Google Cloud