Draco クイック・スタート・ガイド

このクイック・スタートでは、初心者プログラマが Draco とその基本機能を 理解するために従う必要がある手順を概説します。より詳細な情報については、 README を参照してください。 インストールと管理ガイド および プロセッサ・カタログ は、Draco の全ドキュメントです。

シナリオ

このガイドで紹介するシナリオは、2つのコンテナで構成されています。 一つは Draco を実行するためのもの、もう一つは MYSQL を実行するためのものです。

start-scenario

始める前に

このドキュメントの目的は、コンテキスト・データを保存するため FIWARE Draco や他のコンテナの設定の簡単なガイドを提供することです。 このガイドでは、NGSIv2 イベントを MySQL に保存するための基本的な Draco の例を実行します。

docker と docker-compose がマシンにインストールされ実行されている 必要があります。 この オフィシャル・スタート・ガイドを確認してください。

トップ

イメージの取得

ソースからのビルド

(1) fiware-Draco リポジトリのクローンを作成することから始めます :

git clone https://github.com/ging/fiware-Draco.git
cd fiware-Draco

ディレクトリを変更します :

cd nifi-ngsi-resources/docker

そして、次のコマンドを実行してください :

sudo docker-compose up -d

しばらく時間がかかりますが終了すると、コンソールに各コンテナのログが 表示されます。

必要に応じて、別の端末を開き、次のように入力して使用可能なイメージを Docker で確認できます :

sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
Draco              latest              a9e16550c82        10 seconds ago      462.1 MB
mysql               latest              73a1eca2d3a        2 weeks ago         194.6 MB

トップ

(2) コンテナを起動して実行したら、データを永続化するために提供されている テンプレートを MySQL に追加できます。

まず、あなたのブラウザに行き、この URL http://localhost:9090/nifi を使って Draco を開いてください。

次の図は Draco の多くのコンポーネントの位置を示しています。 テンプレート・ボタン、再生ボタン、プロセッサ・コンポーネントには 特に注意してください。後で使用します。

Draco-gui

NiFi GUI の上部にあるコンポーネント・ツール・バーに行き、 テンプレート・アイコンを見つけて、Draco ユーザ・スペースにドラッグ&ドロップ します。この時点で、利用可能なすべてのテンプレートのリストとともに ポップアップが表示されます。テンプレート Orion-To-Mysql を選択してください。

Orion-to-Mysql テンプレートには3つのプロセッサが含まれています。 最初のプロセッサは、5050 ポートを通じて NGSIv2 通知を受け取るための接続を 開きます。一方、NGSIToMySQL と呼ばれる2番目のプロセッサは、NGSIv2 イベントを 取得し、そのデータを MySQL データベースに保持する役割を担います。3つ目は、 受信したイベントのログを保存するためのオプションのプロセッサです。

Draco-template1

プロセッサを起動する前に、MySQL のパスワードを設定し、DBCConnectionPool コントローラを有効にする必要があります。そのためには、指示に従ってください :

  1. Draco GUI ユーザ・スペースの任意の部分を右クリックしてから、 configure をクリックします。

Draco-step1

  1. "Controller Services" タブに移動します。この時点で、コントローラの リストが表示されるはずです。"DBCConnectionPool" コントローラを見つけます。

  2. "DBCPConnectionPool" の "configuration" ボタンをクリックしてください。

Draco-step2

  1. "Controller Properties" タブに移動し、パスワード・フィールドに "example" と入力してから変更を適用します。

Draco-step3

  1. 雷のアイコンをクリックしてプロセッサを有効にしてから "enable" を クリックし、コントローラの設定ページを閉じます。

Draco-step4 Draco-step5

  1. すべてのプロセッサを選択し (Shiftキーを押しながらすべてのプロセッサを クリック)、"Start" ボタンをクリックして起動します。これで、各プロセッサの ステータス・アイコンが赤から緑に変わりました。

デプロイをテストするために、NGSI ライクの通知エミュレーションを リスニングポート (5050) とパス (v2/notify) に送信します。

(3) 新しい端末を開き、どこかに notification.sh ファイルを作成して 編集します :

touch notification.sh

このコンテンツを notification.sh ファイルにコピーして貼り付けます。

URL=$1

curl $URL -v -s -S --header 'Content-Type: application/json; charset=utf-8' --header 'Accept: application/json' --header "Fiware-Service: qsg" --header "Fiware-ServicePath: test" -d @- <<EOF
{
    "subscriptionId": "51c0ac9ed714fb3b37d7d5a8",
    "data": [{
        "temperature": {
            "type": "Float",
            "value": 30.73,
            "metadata": {}
        },
        "type": "Room",
        "id": "Room1"
    }]
}
EOF

このスクリプトは、引数として渡された URL エンドポイントへの Orion 通知の送信をエミュレートします。上記の通知は、FIWARE service qsg および FIWARE service path test に属する Room1 タイプについての名前および エンティティです。タイプ floattemperature という名前の単一の属性が あります。

(4) リスニングしている HTTPSource の URL を引数として渡して、 notification.sh に実行権限を与えて実行します。

chmod a+x notification.sh
./notification.sh http://localhost:5050/v2/notify

(5) (オプション) 受信したイベントを見たい場合は、"Log Attribute" プロセッサを選択し、右クリックして "view data provenance" を選択します。

Draco-step6

最後に、リストの各イベントの情報アイコンをクリックすると、受信した データの詳細を見ることができます。

Draco-step7

(6) データベースとテーブルが作成されているか確認できます。 まず MySQL コンテナ・コンソールに入ります。

sudo docker exec -it mysql /bin/bash

次に、作成したデータベースとそのテーブルを確認してください。 mysql にログインするには、ユーザとして "root"、パスワードとして "example" を使用してください。

$ mysql -u root -p
mysql> show databases;

アウトプット :

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| qsg                |
| sys                |
+--------------------+
5 rows in set (0.06 sec)
mysql> use qsg;
mysql> show tables;

アウトプット :

+---------------+
| Tables_in_qsg |
+---------------+
| test          |
+---------------+
1 row in set (0.09 sec)

mysql> select * from test;
アウトプット :

+---------------+---------------------+-------------------+----------+------------+-------------+----------+-----------+--------+
| recvTimeTs    | recvTime            | fiwareServicePath | entityId | entityType | attrName    | attrType | attrValue | attrMd |
+---------------+---------------------+-------------------+----------+------------+-------------+----------+-----------+--------+
| 1535550393717 | 08/29/2018 13:46:33 | test              | Room1    | Room       | temperature | Float    | 30.73     | []     |
+---------------+---------------------+-------------------+----------+------------+-------------+----------+-----------+--------+
1 row in set (0.05 sec)

これでOrion Context Broker から NGSIv2 通知を受け取り、Draco を使って データを MySQL に保存することができます。

問題の報告と連絡先情報

問題を報告したり、一般的に疑問を尋ねたりするのに適したチャネルが いくつかあります。それぞれが質問の性質によって異なります :

  • このソフトウェアに関する具体的な質問については stackoverflow.com を使用してください。 通常、これらはインストールの問題、エラー、およびバグに関連しています。 コードをフォークするときの開発上の質問も大歓迎です。 fiware-Draco タグを使用してください。
  • FIWARE を使用している都市がいつくあるか、アクセラレータ・プログラムへの 参加方法など、FIWARE に関する一般的な質問には ask.fiware.org を使用してください。 たとえば、このソフトウェアに関する一般的な質問、たとえば、使用するケース やアーキテクチャについても検討します。
  • 個人的なメール :

注意: コントリビュータが要求しない限り、コントリビュータに個人的に 電子メールを送信することは避けてください。実際、あなたがプライベートな E メールを送ると、おそらく stackoverflow.comask.fiware.org を使うように 強制する自動応答を受け取るでしょう。これは、上記の方法を使用すると、 将来のユーザに役立つ可能性がある知識の公開データベースが作成されるためです。 プライベート・メールはプライベートなものであり、共有することはできません。