Apache Spark 4.2 が先週リリースされ、エンタープライズデータ処理の中心で 10 年以上担ってきた Spark の役割がさらに拡大する兆しを示しています。

ガバナンス付きメトリクス、ベクトル検索のプリミティブ、リアルタイム処理、Python サポートの強化、ネイティブな地理空間分析といった AI ワークロード向けの新機能により、Spark 4.2 は最近の AI およびストリーミング機能の流れを継承し、多くのエンジニアリングチームが現在どのようにプラットフォームを利用しているかを反映しています。このリリースは、データ処理エンジンとしての Spark の伝統的な役割を基盤に、本番環境の AI アプリケーションを支えるために必要な機能をさらに追加しています。

今回のリリースでは、開発者がプラットフォームから離れることなくより多くの作業を行えるようにする複数の機能が導入され、すでに Spark を利用しているチームにとっては管理するシステムを減らせる可能性があります。

ガバナンス付きメトリクスで競合を防止

あるチームのビジネスメトリクスの定義が、別のチームの定義と常に一致するとは限りません。時間の経過とともにこれらの違いは、矛盾したレポートやどの数値を信頼すべきか不確実性を生む原因になります。

この問題は、AI アプリケーションがアナリストやビジネスインテリジェンスツールと同じエンタープライズデータを利用し始めると、さらに深刻になります。異なるチームが同じメトリクスを異なる方法で定義している場合、AI システムは同じ質問に対して一貫しない結果を出力する可能性があります。

Spark 4.2 では、この問題に対処するため、ガバナンス付きメトリクスビューを導入しています。組織はビジネスメトリクスを一度定義し、その定義をアプリケーション全体で再利用できます。メトリクスビューは、ディメンションとメジャーを Spark が理解できるファーストクラスオブジェクトにし、誰が、あるいは何がクエリを実行しても、意図した集計セマンティクスをエンジンが保持できるようにします。

組織はビジネスメトリクスを一度定義し、その定義をアプリケーション全体で再利用できます。

ベクトル検索がネイティブに

より重要な追加機能のひとつが、ネイティブなベクトル検索です。これにより、Spark と別個のベクトルデータベース間でデータを移動する必要性を減らせます。

Spark 4.2 では、ベクトル距離および類似度関数、ベクトル正規化、ベクトル集計、トップ K 類似度検索用の新しい SQL 演算子 NEAREST BY が導入されています。ベクトル検索を Spark に取り込むことで、開発者は検索パイプラインの多くを同じプラットフォーム上で維持できます。

ベクトル検索を Spark に取り込むことで、開発者は検索パイプラインの多くを同じプラットフォーム上で維持できます。

Python との相互運用性が向上

Spark 4.2 では、Spark と Arrow ネイティブツールの間でデータを移動しやすくなりました。Arrow C Data Interface と PyCapsule プロトコルのサポートにより、両側が標準をサポートしている限り、Spark DataFrame をコピーやシリアライズなしで Polars や DuckDB などのツールに直接渡すことができます。

Python にはその他のアップデートもあります。PySpark が拡張され、Arrow 最適化 UDF 実行がデフォルトとなり、Python Data Sources にはカスタムコネクタのトラブルシューティングを支援する組み込みの時間およびメモリプロファイリングが追加されました。

Spark Connect がエージェントからエンジンを呼び出し可能に

クライアントと Spark サーバーを gRPC および Arrow ベースのプロトコルで分離する Spark Connect は、4.2 でいくつかのアップデートを受けました。基本的な考え方は、クライアントが論理計画を構築し、サーバーが解析、最適化、実行を処理し、結果が Arrow バッチとして返されるというものです。クライアントは完全な Spark ランタイムや共存する JVM を必要としません。

今回のアップデートには、プロジェクトのクライアントサーバーインターフェースである Spark Connect に対する複数の変更が含まれています。AI アプリケーションはリモートの Spark クラスターに処理リクエストを送信でき、作業は引き続き Spark 内で実行されます。このリリースでは、その経路における RDD API の互換性、エラーハンドリング、ステータスレポートが改善されています。

ストリーミングがリアルタイム AI を支える

ストリーミングには、Auto CDC と Real-Time Mode を含む複数のアップデートが Spark 4.2 に加えられています。多くの AI アプリケーションは、スケジュールされたバッチジョブではなく、継続的に更新されるデータに依存しています。Auto CDC は Spark Declarative Pipelines にファーストクラスのチェンジデータキャプチャをもたらし、ソースデータの変更に応じてターゲットテーブルを最新に保つためのマージロジックを処理します。これは以前は手書きでエラーが発生しやすいコードが必要でした。新しい CHANGES SQL 句により、チームは単一の SQL インターフェースを通じてデータ変更を取得できます。

Spark 4.2 では、外部の空間拡張を必要とせずに位置対応分析用の GEOMETRY および GEOGRAPHY 型と ST_* 関数も組み込みで追加されています。位置データを利用するチーム(物流、不動産、IoT など)にとって、これはデータを Spark の外に移動するもうひとつの理由を排除します。

全体像

Spark 4.2 は、AI とデータスタックのより多くの部分をプラットフォーム自体に取り込みます。以前は別個のツールに依存していた機能が、Spark 内で直接処理できるようになります。

現在 ETL に Spark を利用し、その後データを取得、ガバナンス、リアルタイム処理のために他のシステムに引き渡しているチームにとって、このリリースはそれらの境界線を曖昧にし始めています。より多くの AI アプリケーションが運用データ上で直接実行されるようになるにつれ、Spark は単にデータを準備するのではなく、サービングレイヤーの一部になりつつあります。

Spark は単にデータを準備するのではなく、サービングレイヤーの一部になりつつあります。

YOUTUBE.COM/THENEWSTACK

Tech moves fast, don't miss an episode. Subscribe to our YouTube channel to stream all our podcasts, interviews, demos, and more.

Group Created with Sketch.