秘密主義で有名な米アップル(Apple)が、知られざる社内ビッグデータ環境の一端を明らかにした。2018年6月4~6日(米国時間)に米サンフランシスコで開催された「Spark + AI Summit 2018」で、オープンソースソフトウエア(OSS)の分散データ処理ソフト「Apache Spark」の利用事例を公表したのだ。
アップルが社内におけるOSSの利用事例を公開するのは珍しい。5日の基調講演には情報セキュリティ部門に所属するドミニク・ブレジンスキー(Dominique Brezinski)氏が登壇して、セキュリティ監視や不正検出にSparkを活用していることを紹介した。6日の技術セッションでも、社内に構築するストレージ容量1エクサバイトを超えるSparkクラスターの詳細や、Spark用のリソーススケジューラーを自社開発した事情などを説明している。
アップルはSparkを使ううえで、米データブリックス(Databricks)が提供するSparkのクラウドサービス「Databricks Unified Analytics Platform」と、アップル自身が運用するSparkクラスターを併用している。まずは5日の基調講演でブレジンスキー氏が説明した前者の事例から見ていこう。
1日3000億件以上のセキュリティイベントを監視
アップルは「iCloud」をはじめとしたクラウドサービスのセキュリティ監視に、Databricks Unified Analytics Platformを使用している。毎日3000億件以上発生するログオンなどのイベント情報を同プラットフォームに送信して、機械学習ベースのアルゴリズムを使って不正ログオンなどがないか分析している。1秒当たりのデータ処理件数に換算すると、340万件/秒となるという。
興味深いのは、アップルがこのようなリアルタイム分析を実行するために、データブリックスが2017年10月に発表したばかりの「Databricks Delta」という機能を利用していること。Databricks Deltaは、「Amazon S3」上にトランザクション機能と自動インデックス機能を追加することで実現したDB機能だ。
データブリックスのアリ・ゴディシ(Ali Ghodsi)CEO(最高経営責任者)は「Databricks Deltaは、ビッグデータを保管する『データレーク』と、データを分析する『データウエアハウス』、データをリアルタイムに処理する『ストリーミングシステム』の3つの要素を兼ね揃えたものだ」と説明する。
アップルはDatabricks Deltaの利用により、次々と発生し続けるセキュリティ情報を巨大なDBに追記しながら、そのDBに対してアドホックな分析クエリーを実行できるようになった。ブレジンスキー氏によれば、同社が不正監視のために使用するDBのテーブルには11兆件を超えるレコードが記録されているという。Databricks Deltaを使う以前は、過去のデータを保存したデータレークから、直近の2週間分だけを抜き出して分析に使用していた。Databricks Deltaの導入で過去から直近までの全データに対する分析が可能となった。
1エクサバイト超の巨大Sparkクラスター
アップルが社内で運用するSparkクラスターの詳細を見ていこう。6日の技術セッションには、ソフトウエアエンジニアのサム・マクレナン(Sam Maclennan)氏と、エンジニアリングマネージャーのヴィシュワナート・ラククンディ(Vishwanath Lakkundi)氏が登壇。同社における「Hadoop」からSparkへの移行と、2018年2月から運用を開始した新しいSparkクラスターを説明した。