連載
» 2018年05月22日 05時00分 公開

NoSQLベストプラクティス(9):AIとIoTにおけるNoSQLの役割を考える

本連載では、「NoSQLデータベースの今」を正しく理解し、ビジネス躍進の実現に向けた対策としての「ベストプラクティス」を掲示していきます。今回は、AIとIoT(Internet of Things)におけるNoSQLの役割について取り上げます。

[三浦デニース(Denise Miura),マークロジック株式会社]

NoSQLベストプラクティス

 本稿では、AIとIoT(Internet of Things)におけるNoSQLの役割について取り上げます。この2つの分野は、近年大きな盛り上がりを見せています。最初に、この2つの分野がもたらす価値、そして実現上の問題点について確認しておきましょう。

 ビッグデータの時代において、企業・組織は業種を問わずデータに素早く対応しなくてはなりません。つまり、データの収集、格納、分析、得られた知見に基づく行動をできるだけ素早く効率的に行う必要があります。こういった目的の達成において、IoTやAIはどのような役割を担うのでしょうか。

 簡単に言うと、IoTでは、デバイス、センサー、コントローラーなどがデータの捕捉(場合によっては処理も)を行ったあと、インターネット経由でデータを転送します。収集・分析後、場合によっては対応方法が指示されます。消費者市場においては、スマートホームやウェアラブル機器など数多くの実績がありますが、企業での活用例も出てきています。例えば、サプライチェーン管理における商品トラッキング、製造業の品質管理システムにおける部品トラッキング、グローバル企業における全社的なIT資産管理などがあります。ビジネス的な観点から見ると、IoTから価値を創出するにはセンサーデータの収集と格納の効率化、データの検討と視覚化、データモニタリング規則とアラートの定義、データへの対応の自動化、データに基づくアプリケーション開発を実現する必要があります。

 IoT関連のこのようなビジネス要件を満たすには、以下のレイヤーを管理する技術が必要です。

  • エッジのコンポーネント:デバイス、センサー、コントローラー
  • コミュニケーション・チャネル:プロトコル、ルーティング、ネットワークなど
  • インフラ(クラウドやオンプレミス)
  • パーシステンス(永続性)
  • 処理/分析
  • 視覚化/アプリケーション
  • 知見に基づく対応・アクション

 NoSQL技術は、このアーキテクチャのエッジコンピューティングのデバイス部分に実装して活用することもできますが、本稿では、パーシステンス、処理、分析、視覚化、アプリケーション、対応の各レイヤーを取り上げます。

IoTのデータ要件は複雑

 企業のアーキテクトにとって、IoTにおける大量かつ多様なデータの扱いは楽ではありません。デバイス、センサー、コントローラーの数は数百から数億個に上り、データ形式も異なる可能性があります。データ形式は時間とともに変わっていき、これらのデバイスは相互に接続・統合されて何年かのうちにさらに複雑になります。これらのデバイスが大量生成するデータをリアルタイムで捕捉し、ビジネスユーザーやアプリケーションに提供して処理や分析を行う必要があります。

 またこの際、柔軟性、拡張性、可用性、セキュリティに関して、従来のアプリケーション(利用方法)にはなかった要件を満たす必要が出てきます。これらは従来のリレーショナルデータベース技術(スキーマが固定され、スケール「アップ」なもの)では対応が困難です。

 担当者は、こういった要件の規模や複雑さに、将来にわたって対応できるアーキテクチャ(「フューチャープルーフ」なアーキテクチャ)を設計しなくてはなりません。これは簡単ではありませんが、パーシステンス、処理、分析、視覚化、アプリケーションレイヤーにおいて、NoSQLをメインのコンポーネントとして利用することにより、設計がしやすくなります。

NoSQLデータベースのアーキテクチャに応じた特性を生かす

 通常、NoSQLデータベースでは厳密なスキーマが不要で、数億個の機器が生成する多様なデータの管理に必要な柔軟なデータモデリングを提供できます。また、コモディティハードウェアで水平拡張するように設計されています。これによって大量データの管理が従来のリレーショナルデータベースシステムよりも大幅に効率化されます。

 NoSQLには複数の種類があり、IoTにおける活用に関してそれぞれ固有の強みがあります。

 キー/バリューストアは、大量にストリーミングされるが全てを捕捉する必要がない(幾つかのパケットがドロップしてもよい)センサーデータのキャッシュに適しています。キー/バリューモデルはシンプルなため、データベースへの書き込みが高速です。しかしこれが適しているのは、下流システムへのキャッシュレイヤーとして使用される場合です。分析レイヤーで求められる複雑なクエリは扱えません。

 一方、カラムストアは、大量の集計作業に適しています。また、ドキュメントデータベースは複雑なデータモデルを扱うことができるため、データ処理レイヤーや分析レイヤーに適しています。最後にグラフデータベースでは、セマンティックモデリングを利用でき、全てのエッジデバイスやさまざまな統合ポイントの関係の管理や把握ができます。

 また、NoSQLデータベースには「マルチモデル」もあります。これは1つのデータベースソリューション内に上記のモデルが複数統合されており、エンド・ツー・エンドのソリューションがシンプルになります。

 IoTアーキテクチャでもう1つ考慮すべきなのは、セキュリティです。これを説明するのは容易ではありませんが、ソリューション内のレイヤーごとに別個の戦略が必要です。NoSQLは、その種類ごとに提供されるセキュリティ機能が異なるので内容を確認した方がよいでしょう。NoSQLデータベースの中には、セキュリティ機能を強化したエンタープライズ版を提供しているものもあります。近年のセキュリティ侵害のニュースを見ると、外部からのデータアクセスの防止だけでなく、組織内の人あるいはデータアクセスを許可された外部の人に対するデータのアクセス管理や制御が重要であることが分かります。特に機密情報の管理において、暗号化、リダクション、ロールベースのアクセス制御といった機能が重要になってきますが、これらの機能のレベルは、各NoSQLベンダーによって異なっています。

AIではデータ処理が重要性を帯びる

 AI(人工知能)は過去数十年にわたって学術的研究の対象でしたが、ここ数年企業の戦略において存在感を増してきており、さまざまな業界において予測的かつ処方的(prescriptive)な分析の基盤となっています。企業内でのAI活用としては、IoTスタックの分析レイヤーにおけるAI技術の適用に加え、金融における不正検知、カスタマーサービスにおけるチャットボット、医療における患者に特化した治療法、小売りにおける製品リコメンデーションなどさまざまな事例が見られます。

 AIのこういったソリューションの実現には、多様かつ大量のデータから知見や関係性を引き出す必要があります。これらの知見(一般的に「シグナル」と呼ばれます)は、一部のデータ内に隠されていますが、これらのデータは「関心対象」に基づいて絞り込むことができます。AIでは機械学習が適用されます。対象データに対して機械学習アルゴリズムを実行することで、関心対象内のシグナルを特定できます。

 分析対象となるシグナルが多ければ多いほど、AIエンジンによる予測や処方は正確になります。しかし、そのためにはより多くのデータを処理する必要があります。また、関心対象のデータが豊かであればあるほど効率性が増します。NoSQLはパーシステンスレイヤーにおいて、その柔軟性と拡張性によって大量のデータをAIエンジンに送る際に重要なだけでなく、データをキュレーション(検索インデックスやセマンティックスインデックスなどの機能による)してAIエンジンに送ることで関心対象の特定を効率化します。これにより、機械学習におけるシグナルの雑音をフィルタリングする際の時間や労力を削減するという役割も担います。

 まとめると、NoSQLデータベースは本来的に、IoTならびにAIアプリケーションが求める高度な柔軟性、複雑さ、規模を提供しやすくなっています。特に、現状での要件のみならず、将来のまだ分からないワークロードを管理しなければならない、エンド・ツー・エンドのプラットフォーム構築に適しています。

筆者紹介

三浦デニース(Denise Miura)

photo

マークロジック株式会社日本法人代表。ソフトウェア開発ならびにwebテクノロジーに関して25年以上の経験を持ち、さまざまなエンジニアリング、コンサルティング、管理職などの要職を歴任。前職はSilicon Graphics、E*TRADE Financial、Blue Martini Software(日本法人代表取締役)など。カーネギーメロン大学卒(コンピュータサイエンス専攻)


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。