目次


Watson IoT Platform データとシームレス分析の統合 (第 1 部)

データ・サイエンティストと開発者からストレージ層を抽出することで、開発プロセスがスピードアップし、学習曲線が短くなり、より焦点を絞ったコードが生成されます。

Comments

概要

原文の著者: Guy Gerson
スキル・レベル: 中級
SQL および Jupyter Notebook の基礎知識。
シームレス・ストレージ・ドライバーである Apache Spark ドライバーが開発されました。これは、Watson IoT Platform でのリアルタイム・データと履歴データの間のギャップを取り除き、ネイティブ Spark SQL を使用したすべてのデータの透過的な分析を可能にします。

前提条件

  • IBM Cloudライト・アカウント
  • IBM Cloud Watson IoT プラットフォーム・スターター・サービス
  • IBM Cloud Spark サービス・インスタンス
  • DSX / Jupyter Notebook
  • シームレス・ストレージ・ドライバー

ステップバイステップ

1

イントロダクション

Watson IoT Platform では、Cloudant NoSQL データベースを使用して、ここで説明するように履歴デバイス・データを保管できます。デバイス・データは、選択された「バケット間隔」に応じて、日次データベース、週次データベース、月次データベースに格納されます。このようにデータを別々のデータベースにバケット送信すると、管理上とパフォーマンスの利点がある場合もありますが、データの照会と視覚化の面で不便になります。データ・サイエンティストとアプリケーション開発者は、照会を記述するために、絶えず変化する多岐にわたるデータベースを把握している必要があります。また、大規模なデータ・セットからデータを視覚化するには、通常、それらのデータベースに手動でアクセスしなければなりません。この複雑な状態をユーザーに見せないようにするため、シームレス・ストレージ・ドライバーは、照会を分析して、関連するデータを含むデータベースに照会をマップします。

次の図に、日次のバケット間隔でデータが Watson IoT Platform から Cloudant に取り込まれる様子を示します。シームレス・ストレージ・ドライバーを使用すると、下層にあるさまざまなデータベースを参照しなくても、該当するデータ・セットに対する照会を直接記述できます。さらにドライバーは、照会を分析して、関連のあるデータベースのみにアクセスします。次の例では、2 つの Cloudant データベースのみが関連しています。

Nutshell の中の主なコンポーネント

  • IBM Cloudant: NoSQL Database as a Service。レコードは、「データベース」と呼ばれるコレクションに JSON 文書として格納されます。
  • Watson IOT Platform 履歴ストレージ: 構成可能な Watson IOT Platform の拡張機能。
    この拡張機能は、日次、週次、月次の間隔に従って、IOT レコードを Cloudant データベースにバケット送信します。
    このブログでは、Spark を使用せずにそれらのデータベースを個別に照会する方法を説明します。
  • Apache Spark: 分散分析フレームワーク。Jupyter Notebook を使用するシンプルな対話式インターフェースを、 in the DSX (Data Science Experience) で使用できます。そのような Notebook を使用してドライバーのデモを行います。
  • シームレス・ストレージ・ドライバー: Spark SQL データ・ソースとして実装されます。着信した照会を分析し、それを必要な Cloudant バケットに経路指定します。ドライバーは、Spark Cloudant コネクターに依存します。
2

Data Science Experience への登録

DSX にアクセスして登録します。その一環として以下のものが提供されます。

  • サービスとしての Spark のインスタンス
  • 5 GB のオブジェクト・ストレージ (これについてはこのブログの第 2 部で詳しく説明します)
3

Watson IoT Platform スターター・アプリのインスタンスの作成

Getting Started with Watson IoT Platform Starter」ガイドに従ってください。これを使用すると、Watson IoT Platform の履歴データ・ストレージ拡張機能によって、デバイスをシミュレートし、アクティビティーを記録し、データを Cloudant アカウントに保存できるようになります。

WIOTS スターター・アプリケーションは、以下のものをデプロイし、接続します。

  • Watson IoT Platform
  • IBM Cloudant NoSQL DB for IBM Cloud
  • IBM SDK for Node.js for IBM Cloud

WIOTS のインストール後に、それを必要なサービスと接続する必要があります。左側のサイド・メニューに移動し、「アプリ」「ダッシュボード」の順に選択します。「すべてのアプリ」の下で WIOTS アプリをクリックします。

左側のメニューで「接続」タブに移動します。

Spark インスタンスおよびオブジェクト・ストレージ・サービスを WIOTS アプリケーションに接続します。

4

Cloudant を履歴データ・ストレージとして使用する Watson IoT の構成

WIOTS をサービスに接続した後に、Cloudant を履歴データ・ストレージとして構成する必要があります。それが、シミュレートされたセンサーのデータを保存するために使用されます。

左側のメインメニューに移動し、「サービス」「ダッシュボード」の順に選択します。

Internet of Things Platform サービスをクリックします。WIOTS の「管理」タブが表示されます。「起動」ボタンを押します。

ダッシュボードを起動したら、このガイドに従って、履歴データ・ストレージを構成します。

5

シミュレートされた IoT デバイスの作成

独自のデバイスまたはデータを使用したい場合は、この部分をスキップできます。

デバイス・タイプを定義してから、ここで説明するようにそのタイプのインスタンスを作成できます。(1 つのデバイス・タイプのインスタンスを多数作成することができます。デバイスのシミュレーションを開始したら、その温度を変化させて実験し、Watson IoT Platform ダッシュボードに移動して、用意されているカードを使用してデータをモニターします。(新規のカードを作成することもできます。Watson IoT Platform スターターの資料を参照してください。)

6

シームレス・ストレージ・ドライバーの動作確認

まず、以下に説明するように、このチュートリアルで使用する Notebook をロードします。これは Python Notebook ですが、ドライバーはどの Notebook でもプログラミング言語でも機能します。

DSX Web サイトにアクセスし、ログインして次のステップに従います。

  1. 左側のメニューで、「デフォルト」プロジェクト (または目的に適合する他の任意のプロジェクト) を選択し、右上隅の Notebook の追加ボタンを押します。
  2. 「From URL」タブを選択し、Notebook の名前を選択してから、Notebook の URL のボックスに移動し、Notebook の URL (https://github.com/guyGerson/sparkCloudantObjstorDriver/blob/master/blog-seamless-driver-demo.ipynb) を入力し、Spark サービス・インスタンスを選択します。
  3. 右下隅の「Create Notebook」ボタンをクリックして、プロセスを完了します。
  4. Notebook の中に入り、右上のメニューの「edit」ボタンを選択して、Notebook の実行を開始します。

Notebook を開いたときに、Notebook に 4 つのメイン・セルが含まれていることに注意してください。

a. セットアップ

このコマンドを実行すると、シームレス・ストレージ・ドライバー JAR ファイルがダウンロードされ、Spark インスタンスのクラスパスに追加されます。DSX Notebook を使用する場合に、Notebook の初回使用時にのみ実行する必要があります。ドライバー JAR ファイルへのリンクは以下のとおりです。https://github.com/guyGerson/sparkCloudantObjstorDriver/raw/master/sparkCloudantObjstorDriver-assembly-1.0.jar

重要: この変更を適用するには、Spark カーネルを再始動する必要があります。

b. 構成

これにより、Cloudant データにアクセスするときにドライバーが使用する資格情報が設定されます。IBM Cloud 内の Cloudant サービスの資格情報タブに自分の資格情報があります。

ここで、ドライバーを使用して照会を実行する「cloudantData」という名前の論理テーブル (または DataFrame) を作成します。

パラメーター:

  1. CloudantData = 論理テーブル用に選択できる任意の名前。
  2. DbChoiceName = WIoTP 履歴ストレージ拡張機能の作成時に選択したカスタム名。 指定されない場合、これは「default」として設定されます。Cloudant データベース名の命名規則は以下のようになります。
    “iotp_<orgid>_<DbChoiceName >_<bucket> “.
  3. iii. TimestampField = レコード内で時刻を表すフィールドの名前。

c. 照会の実行

上記は正規の Spark SQL 照会です。前述のステップで定義した「cloudantData」テーブルを使用したため、Spark はシームレス・ストレージ・ドライバーを使用してデータを取得します。バケット送信の詳細に注意を払うことなく、透過的にデータにアクセスしていることに注意してください。

d. チャート作図ロジック

最後のステップは、シミュレートされた IoT データの視覚化です。これを実行するため、Notebook に組み込まれた Matplotlib ライブラリーを使用してシンプルなチャートを作成します。Notebook 内のこのセルは、直前のセル (変数 「d」) の出力を取り込み、以下のように視覚化します。

操作は以上です。

7

まとめと次のステップ

ユーザーは、シームレス・ストレージ・ドライバーを使用して、データ・セット全体にアクセスするためのシンプルで直感的に分かりやすい照会を簡単に作成できます。このドライバーを使用しない場合、ユーザーは、下層にあるどのデータベースが照会に関連するかを把握し、多数の異なるデータベースからのデータをマージする複雑な照会を生成する必要があります。

これで、独自のデバイスを Watson IoT Platform に接続でき、統一された方法でリアルタイム・データと履歴データを処理、分析、視覚化するための、より複雑なロジックを追加できるようになります。例えば、以下のグラフは、エレベーターのモニタリング・アプリを視覚化します。

次のブログ「Watson IoT Platform データとシームレス分析の統合 (第 2 部」(近日公開) では、シームレス・ストレージ・ドライバーをオブジェクト・ストレージに拡張します。そのブログでは、Watson IoT Platform をオブジェクト・ストレージ (長期保管用) と Cloudant (最近のデータ用) の両方に接続する方法を例示します。また、シームレス・ストレージ・ドライバーを統一されたデータ・セットとして使用して、すべてのデータを照会する方法を示します。

InterConnect 2017 にご来場になり、IBM のシームレス・ストレージ・ドライバーが稼働しているデモをご覧ください。

これは、Tal ArielPaula Ta-Shma によって共同執筆されました。


ダウンロード可能なリソース


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=ビジネス・アナリティクス
ArticleID=1054307
ArticleTitle=Watson IoT Platform データとシームレス分析の統合 (第 1 部)
publish-date=11302017