Dataproc の主なコンセプトを理解する

Dataproc を最大限に活用するには、基本的な構成要素を理解しておくと便利です。このガイドでは、Dataproc のコア コンセプトと機能、およびこれらの機能が提供するメリットについて説明します。

クラスタベースのモデル

これは、インフラストラクチャ中心の Dataproc の標準的な使用方法です。データ処理タスク専用の仮想マシン セットを完全に制御できます。

  • クラスタ: クラスタは、仮想マシンで構成された個人データ処理エンジンです。 Google Cloud クラスタを作成して、Apache Spark や Apache Hadoop などのオープンソース フレームワークを実行します。クラスタサイズ、マシンタイプ、構成を完全に制御できます。
  • ジョブ: ジョブは、PySpark スクリプトや Hadoop クエリなどの特定のタスクです。クラスタでジョブを直接実行する代わりに、ジョブを Dataproc サービスに送信します。Dataproc サービスは、ジョブの実行を管理します。クラスタに複数のジョブを送信できます。
  • ワークフロー テンプレート: ワークフロー テンプレートは、一連のジョブ(ワークフロー)をオーケストレートする再利用可能な定義です。ジョブ間の依存関係を定義できます。たとえば、データ クリーニング ジョブが正常に完了した後にのみ ML ジョブを実行できます。テンプレート化されたワークフローは、既存のクラスタまたはワークフローを実行するために作成され、ワークフローの完了後に削除される一時(エフェメラル)クラスタで実行できます。このテンプレートを使用すると、必要に応じて定義されたワークフローを実行できます。
  • 自動スケーリング ポリシー: 自動スケーリング ポリシーには、クラスタのワークロードに基づいてクラスタからワーカー マシンを追加または削除するために定義するルールが含まれています。これにより、クラスタの費用とパフォーマンスを動的に最適化できます。

サーバーレス モデル

Apache Spark 向け Serverless は、最新の自動実行 Dataproc モデルです。基盤となるインフラストラクチャのプロビジョニング、管理、スケーリングを行うことなくジョブを実行できます。Apache Spark 向け Serverless が詳細を処理します。

  • バッチ: バッチ(バッチ ワークロードとも呼ばれます)は、Dataproc ジョブのサーバーレス版です。Spark ジョブなどのコードをサービスに送信します。Apache Spark 用 Serverless は、必要なリソースをオンデマンドでプロビジョニングし、ジョブを実行してから、リソースを破棄します。クラスタ リソースやジョブ リソースを作成または管理する必要はありません。このサービスが自動的に処理します。
  • インタラクティブ セッション: インタラクティブ セッションは、通常は Jupyter ノートブック内で、探索的データ分析用のライブ オンデマンド環境を提供します。インタラクティブ セッションは、クラスタとノートブックのリソースをプロビジョニングして管理することなく、クエリの実行やコードの開発に使用できる一時的なサーバーレス ワークスペースの利便性を提供します。
  • セッション テンプレート: セッション テンプレートは、インタラクティブ セッションの定義に使用できる再利用可能な構成です。テンプレートには、Spark プロパティやライブラリの依存関係などのセッション設定が含まれています。通常、Jupyter ノートブック内で、テンプレートを使用して開発用のインタラクティブ セッション環境を作成します。

Metastore サービス

Dataproc は、データに関するデータであるメタデータを処理するためのマネージド サービスを提供します。

  • Metastore: メタストアは、テーブル名、列名、データ型などのデータ スキーマの中央カタログとして機能します。メタストアを使用すると、さまざまなサービス、クラスタ、ジョブでデータの構造を理解できます。通常、カタログは Cloud Storage に保存されます。
  • 連携: メタデータ連携は、複数のメタストアから、単一の統合メタストアにアクセスしているかのようにデータにアクセスしてクエリを実行できる高度な機能です。

ノートブックと開発環境

Dataproc ノートブックと IDE は、コードを記述して実行できる統合開発環境にリンクします。

  • BigQuery Studio と Workbench: 統合された分析環境とノートブック環境です。これにより、コード(Jupyter ノートブックなど)を記述し、Dataproc クラスタまたはサーバーレス セッションを強力なバックエンド エンジンとして使用して、大規模なデータセットでコードを実行できます。
  • Dataproc JupyterLab プラグイン: この公式の JupyterLab 拡張機能は、ノートブック環境内の Dataproc のコントロール パネルとして機能します。Jupyter インターフェースから離れることなく、クラスタの参照、作成、管理、ジョブの送信を行うことができるため、ワークフローが簡素化されます。詳細
  • Dataproc Spark Connect Python コネクタ: この Python ライブラリは、Dataproc で Spark Connect を使用するプロセスを効率化します。認証とエンドポイント構成を処理するため、ノートブックや IDE などのローカル Python 環境をリモート Dataproc クラスタに接続してインタラクティブな開発を行うのが非常に簡単になります。詳細

環境のカスタマイズ

Dataproc には、特定のニーズに合わせて環境をカスタマイズするためのツールとコンポーネントが用意されています。 Google Cloud コンソールの [ユーティリティ] セクションには、Dataproc 環境のカスタマイズに役立つツールが含まれています。