Microsoftは、「Azure Event Hubs」と「Apache Spark」を連携させるコネクターの正式提供を開始した。
Microsoftは2018年3月22日(米国時間)、毎秒数百万のイベントを受け取って処理できるスケーラブルなイベント処理サービス「Azure Event Hubs」(以下、Event Hubs)と、オープンソースの分散処理フレームワーク「Apache Spark」(以下、Spark)を連携させるコネクター「Azure Event Hubs Connector for Apache Spark」(以下、Sparkコネクター)の正式提供を開始したと発表した。
Sparkコネクターにより、Event HubsユーザーはSparkを使って、エンドツーエンドのストリーミングアプリケーションを簡単に構築できる。このコネクターは、「Spark 2.1」「Spark 2.2」「Spark 2.3」の「Spark Core」「Spark Streaming」「Structured Streaming」をサポートしている。
Spark StreamingとStructured Streamingは、スケーラブルでフォールトトレラントなストリーム処理エンジンだ。これらの処理エンジンにより、ユーザーはmap、reduce、join、windowのような関数を使用した複雑なアルゴリズムを使って、膨大なデータを処理できる。このデータは、ファイルシステムやデータベースにプッシュしたり、Event Hubsにプッシュバックしたりできる。
ストリームのセットアップは次のように記述する。
import org.apache.spark.eventhubs._ import org.apache.spark.sql.SparkSession val eventHubsConf = EventHubsConf("{EVENT HUB CONNECTION STRING FROM AZURE PORTAL}") .setStartingPosition(EventPosition.fromEndOfStream) // Create a stream that reads data from the specified Event Hub. val spark = SparkSession.builder.appName("SimpleStream").getOrCreate() val eventHubStream = spark.readStream .format("eventhubs") .options(eventHubsConf.toMap) .load()
イベントがSparkにストリーミングされるようになったら、Sparkはそれらを自在に処理できる。Sparkコネクターはオープンソースであり、GitHubで公開されている。Event HubsとSpark Streaming、Structured Streamingの連携ガイドなど、関連ドキュメントも全てGitHubページで公開されている。
Copyright © ITmedia, Inc. All Rights Reserved.