ビッグ データ解析システム (Apache Spark)
Apache Spark デプロイメント パターンは、Spark ライブラリーを使用してデータ サイエンティストが使い慣れた環境に空間解析を導入し、新規または既存の解析ワークフローに空間関数とプロセスを追加することで付加価値を提供することを目的としています。 Apache Spark が提供する分散コンピューティング機能は、広範なデータセットや堅牢な機能ライブラリー セット、構造化された解析の探索/操作機能、および関係者や下流のビジネス プロセスで利用できる結果の生成機能などへのアクセスをサポートします。
Esri 提供の Spark ライブラリーである ArcGIS GeoAnalytics Engine は、Apache Spark のビッグ データ解析システム パターンを強化します。 ArcGIS GeoAnalytics Engine は、Apache Spark を使用して、トレンド、パターン、相関関係を理解するための 150 を超えるクラウドネイティブの地理解析ツールと関数にアクセスします。 ArcGIS GeoAnalytics Engine は、パーソナル コンピューターまたはスタンドアロンの Spark クラスターにインストールできますが、ほとんどの組織では、クラウドで管理された Spark サービスを利用する傾向があります。 これらのクラウド管理環境は、ビッグ データ処理の簡素化、スケーラビリティーの達成、コストの最適化、高度な解析機能の活用、セキュリティーとコンプライアンスの確保、クラウド プロバイダーが提供するマネージド サービスとサポートの提供を実現します。 これには、Amazon EMR、Databricks、Azure Synapse Analytics、Google Cloud Dataproc、Microsoft Fabric が含まれます。
Esri は、ArcGIS GeoAnalytics Engine に加えて、ビッグ データ ツールキットと呼ばれる空間ビッグ データ解析用の代替 Spark ライブラリーを提供しています。 BDT (ビッグ データ ツールキット) は、独自の機能を提供する Esri Professional Services のソリューションで、空間関数やツールを拡張した高度な機能が必要とされる特定のシナリオに適しています。 詳細については、拡張機能をご参照ください。
関連リソース:
基本アーキテクチャー
Apache Spark を使用したビッグ データ解析システムの一般的な基本アーキテクチャーを以下に示します。
この図をシステムの設計としてそのまま使用しないでください。 システムの設計時には、重要な要素と設計上の選択肢を数多く検討する必要があります。 詳しくは、システム パターンの使用のトピックをご参照ください。 さらに、以下の図はシステムの基本機能のみを示しています。拡張機能を提供する際には、追加のシステム コンポーネントが必要になる場合があります。

上記の機能は、2025 年 7 月時点で利用可能な機能を反映しています。
このアーキテクチャーの主要なコンポーネントは次のとおりです。
- ビッグ データ解析システムの基盤は、Apache Spark 環境です。 Spark 環境には、分散解析タスクを実行するノードのクラスターが含まれています。 ArcGIS GeoAnalytics Engine は、ローカル デプロイメント、クラスター デプロイメント、クラウド内の管理された Spark サービスなど、さまざまな Spark 環境で実行できます。 サポートされているマネージド Spark サービスには、Amazon EMR、Azure Synapse Analytics、Google Cloud Dataproc、Databricks、Microsoft Fabric などがあります。 これらのオプションは、AWS (Amazon Web Services)、GCP (Google Cloud Platform)、Microsoft Azure クラウド プロバイダーなど、既存のクラウド環境でワークロードをすでに実行している組織にデプロイメント パスを提供します。
- ArcGIS GeoAnalytics Engine は、Apache Spark クラスター内のノードで実行される Spark プラグインと関数およびツールのセットです。 空間解析タスクは、Spark ドライバーから Spark Executor に送信され、そこで解析作業が実行されます。 Spark Executor は、Spark クラスター マネージャーによって管理されます。 ArcGIS GeoAnalytics Engine は、スタンドアロン、Apache Mesos、Hadoop YARN、および Kubernetes クラスター マネージャーをサポートしています。 ArcGIS GeoAnalytics Engine Spark クラスター モードの詳細をご参照ください。
- GeoAnalytics Engine は、Spark がサポートするデータ ソースに加えて、いくつかの一般的な空間データ ソースからのデータの読み込みと保存をサポートしています。 これには、ファイル ストア、オブジェクト ストア、データ レイク、および DBMS (データベース) 内のデータが含まれますが、これらに限定されません。 詳しくは、サポートされているデータ ストアとサポートされているデータソースをご参照ください。
- GeoAnalytics Engine は、Spark の Python インターフェイスである PySpark を拡張し、Spark DataFrames とカスタム ジオメトリー データ タイプを使用して空間データを表します。 GeoAnalytics Engine には、PySpark がサポートするあらゆるデータ ソースに加えて、シェープファイルやフィーチャ サービスなどの空間データ ソースから読み取るためのいくつかの DataFrame エクステンションが付属しています。 GeoAnalytics Engine には、DataFrame を操作するための 2 つのコア モジュール (SQL 関数とツール) も含まれています。 通常、ユーザーは、データ解析環境内から Python を実行する Python ノートブックを通じて、ビッグ データ解析システムを操作します。 ArcGIS GeoAnalytics Engine の基本操作の詳細をご参照ください。
このアーキテクチャーの主な連携方法は次のとおりです。
- PySpark Python コードは、通常、データ解析環境内で実行される Python ノートブックで開発され、アプリケーションとしてバンドルされ、Spark クラスターに送信されます。 Spark クラスターへのジョブは、通常、TCP 経由で送信されます。 Spark アプリケーションの送信をご参照ください。
- ArcGIS GeoAnalytics Engine とデータ ストア間の通信は双方向であるため、サポートされている多数のデータ ストアからデータにアクセスしたり、データを保存したりできます。 その通信の技術仕様は、使用されているデータ ストアの種類によって異なります。 詳細については、ArcGIS GeoAnalytics Engine のデータ ストレージをご参照ください。
ArcGIS GeoAnalytics Engine と Apache Spark 環境間の操作の詳細については、ArcGIS GeoAnalytics Engine の製品ドキュメントをご参照ください。
機能
Apache Spark 上のビッグ データ解析システムの機能を以下に示します。
基本機能
基本機能は、ビッグ データ解析システムに備わっている最も一般的な機能を意味し、上記の基本アーキテクチャーによって実現されます。
拡張機能
拡張機能は通常、特定のニーズを満たすために追加されるか、業界固有のデータ モデルとソリューションをサポートするために追加され、ソフトウェア コンポーネントやアーキテクチャーに関する検討事項がさらに必要になる場合があります。
- ラスター解析は、ラスター データに対する解析関数とプロセッサーをサポートします。 ArcGIS GeoAnalytics Engine は、ラスター解析はまだサポートしていません。ただし、Esri ビッグ データ ツールキットには、ラスターの消去やクロス集計など、ラスター データとベクター データを組み合わせる基本的なラスター解析プロセッサーがいくつか用意されています。 より高度なラスター解析と画像解析については、画像データ管理および解析システム パターンをご参照ください。
- カスタム解析ツールは、ArcGIS GeoAnalytics Engine ではまだサポートされていませんが、Esri BDT (ビッグ データ ツールキット) を使用して開発できます。 BDT は、解析ツールや解析関数を変更または作成することで拡張できます。
- 解析結果のデータの公開とホスティングは ArcGIS でサポートされていますが、ビッグ データ解析システムの対象には含まれません。 公開と共有は、セルフサービスのマッピング、解析、共有システムによって対処されることが一般的です。ただし、ArcGIS システム パターンの多くでは、解析結果の公開と共有がサポートされています。 システム パターンの使用、統合、および作成の詳細をご参照ください。
検討事項
以下の検討事項では、ArcGIS Well-Architected Framework の柱を Apache Spark 上のビッグ データ解析システムに適用します。 ここに示す情報は、すべてを網羅するものではなく、システムとデプロイメント パターンの特定の組み合わせを設計または実装する際に検討すべき主要な事項に焦点を当てています。 ArcGIS Well-Architected Framework のアーキテクチャーの柱の詳細をご参照ください。
信頼性
信頼性は、システムがビジネス、顧客、関係者が求めるサービス レベルを提供することを保証するものです。 詳細については、信頼性の柱の概要をご参照ください。
- 信頼性は、ほぼ完全に Apache Spark 環境によって処理されます。 クラスター マネージャーの選択など、検討すべき多くの要素がありますが、Spark がインストールされている場所 (ローカル、クラスター、またはマネージド クラウド サービス) によっても大きく異なります。
- SLA は、ビッグ データ解析システムでは、他のシステムほど一般的ではありません。
セキュリティー
セキュリティーは、システムおよび情報の保護を担います。 詳細については、セキュリティーの柱の概要をご参照ください。
- ビッグ データ解析システムの使用許可は、ユーザー名とパスワード、または Esri が提供するライセンス ファイルを使用してサポートされます。
- 認証、暗号化、ログ記録、およびその他のセキュリティー上の考慮事項は、通常、ArcGIS GeoAnalytics Engine ソフトウェアの外部 (データ ソースまたは Apache Spark 環境) で処理されます。 Spark のセキュリティーをご参照ください。
パフォーマンスとスケーラビリティー
パフォーマンスとスケーラビリティーは、システムに対する全体的なユーザー エクスペリエンスを最適化することだけでなく、変化するワークロードの要求に合わせてシステムを拡張することも目的としています。 詳細については、パフォーマンスとスケーラビリティーの柱の概要をご参照ください。
- Apache Spark ベースの環境を利用する利点は、その分散コンピューティング機能にあります。 多くの組織には、クラスターとマネージド解析によって使用されるコンピューティング リソースの規模を制御する概念を理解している、クラウド管理環境の管理者がいます。 空間ビッグ データ解析に関しては、本質的に異なるものはありません。 大規模な解析を実行するにはコストがかかります。 組織は、費用対効果分析を実施して、空間解析に割り当てるコンピューティングを決定する必要があります。
Spark の調整をご参照ください。
自動化
自動化は手動によるデプロイメントと運用タスクに費やす労力を削減することを目的としており、運用効率の向上と人為的ミスによるシステム異常の減少につながります。 詳細については、自動化の柱の概要をご参照ください。
- 解析は反復的であることが多く、解析の実行の合間にはユーザーによる確認と操作が必要です。 ただし、解析の自動化や、スケジュール設定が必要になることもあります。
- クラウド管理の Apache Spark 環境は、追加の自動化オプションを提供し、全体的な運用と使用を効率化するのに役立つため、非常に一般的に使用されています。
- ビッグ データ解析システムへの主要アプリケーションまたはインターフェイスは Python であり、Apache Spark はアプリケーションをクラスターに送信するためのスクリプトを提供するため、解析の送信は簡単かつ柔軟に自動化できます。
- Spark クラスター マネージャーは、アプリケーション全体でのジョブのスケジュール設定もサポートしています。 クラウドのクラスター マネージャーとマネージド Spark サービスにはさまざまなオプションがあり、その多くは異なる機能を提供します。
統合
統合により、このシステムを他のシステムと接続してエンタープライズ サービスを提供し、組織の生産性を向上させます。 詳細については、統合の柱の概要をご参照ください。
- 統合はビッグ データ解析システム パターンにある程度固有のものであり、データ層、ArcGIS GeoAnalytics Engine、クラウド内の Apache Spark 環境またはマネージド Spark サービスでも統合が行われます。
- セルフサービスのマッピング、解析、共有システム、またはその他の ArcGIS システム パターンとの統合は、解析結果を公開したり、企業内の他のユーザーやシステムと共有したりする場合にも一般的です。 システム パターンの使用、統合、および作成の詳細をご参照ください。
可観測性
可観測性はシステムの状態を可視化し、運用スタッフやその他の技術担当者がこのシステムを正常かつ安定した状態で稼働させ続けることを可能にします。 詳細については、可観測性の柱の概要をご参照ください。
- Apache Spark 上のビッグ データ管理システムの可観測性は、通常、基盤となるインフラストラクチャーの使用状況とパフォーマンスを理解すること、および大規模なバッチ解析ジョブのステータスと進行状況を可視化することに重点を置いています。 基盤となるインフラストラクチャーの使用状況とパフォーマンスを監視する方法は、使用されている Apache Spark 環境によって異なります。 クラウド管理環境は、その可観測性の強みから人気があります。 Apache Spark ジョブの監視は、Apache Spark によって提供されます。
その他
Apache Spark でのビッグ データ解析システムの設計と実装に関するその他の検討事項には、次のものがあります。
- 運用を成功させるには、Apache Spark を深く理解し、それに取り組む必要があります。 また、大規模な分散データと解析の概念を深く理解している必要があります。
関連リソース: