HadoopTimes

ストリーミングアーキテクチャ Apache Kafka とMapR Streams による新しい設計手法
技術情報

IoTデータプラットフォームへの主要な要求仕様

「モノ」のインターネット (IoT) について、このシリーズではこれまで、なぜIoTがその性質上ビッグデータに役立つかを明らかにし、IoTの現状を俯瞰し、IoTの実例 (スマートシティスマートフォンスマートハウス) のいくつかを調べてきました。 今回の記事では、IoTデータ処理プラットフォームの要求仕様について論じ、この要求仕様を満たす高レベルのアーキテクチャーを紹介します。

要求仕様

IoT対応機器から送られてくるデータを信頼性のある方法で処理する役割を持つデータプラットフォームは、その規模に応じて以下の要求仕様を満たさなくてはなりません。

  • それぞれのRAWデータに対応すること。データの取り込みとその処理の両方で、このプラットフォームはIoT機器から得られるデータをそのまま扱うことができなくてはなりません。Hadoopなら一般的に、また特にMapRデータプラットフォームならば、入力データをその元のフォーマット (JSONやログファイルなど) のままで受け入れて、最適化のために、下流工程に向けてParquetなどのより洗練度の高いフォーマットに変換できます。
  • さまざまなワークロードのタイプに対応すること。通常、IoTのアプリケーションは、ストリームの処理はプラットフォーム側で行うこと、また、半構造を持つデータ項目に対し、その規模に応じてプラットフォーム側で低遅延のクエリーを扱えることを当然の前提として動作します。
  • ビジネスの継続性。商用のIoTアプリケーションは通常SLA (サービスレベル合意書) でその利用範囲、遅延、災害復旧の判定基準 (リカバリーポイントやリカバリー時間に関する基本方針) を定めます。それゆえプラットフォーム側はこうしたSLAの規定を本来的に保証できなければなりません。これは特に、人の生命に関係する健康・医療用分野などのIoTアプリケーションが利用される場合に決定的に重要になります。
  • セキュリティと個人情報保護。このプラットフォームは多くの端末間での安全な稼働を確保しなければなりません。たとえば、LDAPやActive Directory、Kerberos、SAMLそれにPAMなどの企業内にすでに配置されている認証・許可システムとの統合も必要になります。もうひとつ大切なことは、ACLからデータの履歴サポート、そしてデータの暗号化やマスク化に至る各段階で、ユーザーの個人情報がプラットフォーム側で保障されなければなりません。

「モノ」のインターネットのアーキテクチャー (IoT-A)

設計者の助けとなり、IoTの具体的なアプリケーションの検討を進めることができるように、ここで多言語処理のアーキテクチャーについて議論してみましょう。これは「モノ」のインターネットのアーキテクチャー (iot-a) の一側面です。iot-aはたとえばラムダ (Lambda) アーキテクチャーやKappaアーキテクチャーなどに比べ抽象度の高いレベルで稼働するので、ある意味メタアーキテクチャーであることにご注意ください。たとえばあるセンサーからのデータは通常は時系列データであり、ストリームとしてプラットフォームに送られ、そこで利用される主要なクエリーの主要モードは以下の3種類あることを、iot-aは前提としています。

  1. 出力は発生時点で作成される。つまり継続的に送出される。
  2. 出力はエンドユーザーや他のシステムとの対話的なクエリーに基づいて作成される。
  3. 出力はバッチ形式で作成される。

iot-a_800x407
これら3つの出力に対応できるように、3つの主要な構成ブロックが利用されます。

  1. メッセージキュー / ストリーム処理 (MQ/SP) ブロック
  2. データベース (DB) ブロック
  3. 分散ファイルシステム (DFS) ブロック

MQ/SPブロックはデータのバッファリングができ、任意のビジネスロジックの多くに対応でき、それをダウンストリーム用ブロックへ取り込むことができます。さらに、DBブロックならば通常、きめ細かく低遅延でデータを利用できます。そのデータの性質により、DBブロックは通常はNoSQLソリューションを利用します。最後にDFSブロックは、たとえば構造化されていないデータソース (たとえば画像やPDF文書など) のデータ全体にわたりバッチ化の作業 (アグリゲーションなど) を実行し、長期的保管 (アーカイブ化) も行います。特に、MQ/SPブロックではおそらく近似アルゴリズムが利用され、これは後段のDFSレイヤーロジックで訂正されます。
iot-aについてはまだまだ議論すべき側面がたくさんあるので、この話題を取り扱うコミュニティ支持サイトを用意しました。
iot-a.info
このiot-a.infoサイトには上記の3つの処理ブロックについての詳しい解説と、それぞれの構成ブロックの実例、それに利用可能な時系列データベースについてのまとめがあります。

こちらの記事もおすすめです