プロセッサ構成

Dracoは NGSI イベントのようなコンテキスト・データを保存するためのプロセッサの セットを含んでいます。このドキュメントは、下記の NGSI プロセッサの設定方法を 示すことを目的としています。

  • Listen_HTTP (Orion Context Broker からの通知を受信するためのソースとして設定)
  • NGSIToMySQL (NGSI イベントを MySQL データベースに保存するため)
  • NGSIToPostgreSQL (NGSI イベントを PostgreSQL データベースに格納するため)
  • NGSIToMongo (NGSI イベントを Mongo Database に格納するため)

Listen_HTTPプロセッサ

まず、Draco を起動して実行する必要があります。そして、 Draco GUI セクションに表示されている新しいプロセッサを追加するための手順に従う 必要があります。

プロセッサの追加ウィンドウに入ったら、そのキーワードでプロセッサをフィルタ するためにフィルタ・ボックス "Http" の内側に書き込み、"ListenHTTP" プロセッサを選択します。

Listen HTTP プロセッサは HTTP Server を起動し、与えられた基本パスでリッスン して着信要求を FlowFiles に変換します。本サービスのデフォルト URI は http://{hostname}:{port}/v2/notify です。HEAD および POST リクエストのみが サポートされています。GET, PUT および DELETE を実行すると、エラーと HTTP レスポンス・ステータス・コード 405 が発生します。この NiFi ネイティブ・プロセッサを使用して、Orion Context Broker からの HTTP 通知を受信します。

このプロセッサに必要な設定は次の図に示されています。

listen-processor

ここで :

名前 デフォルト値 許容値 説明
Base Path contentListener 着信接続用のベースパス。このプロパティは、ORION で行われたサブスクリプションの通知属性と一致しなければなりません。式言語 : true (変数レジストリのみを使用して評価されます)
Listening Port no 着信接続を待機するポート。この値はサブスクリプションに含める必要があります。式言語 : true (変数レジストリのみを使用して評価されます)
Max Data to Receive per Second no 1秒間に受信するデータの最大量。これにより、帯域幅を指定されたデータ・レートに制限することができます。指定しない場合、データ・レートは調整されません
SSL Context Service no コントローラ・サービス API、RestrictedSSLContextServiceImplementation, StandardRestrictedSSLContextService
Authorized DN Pattern .* 着信接続の識別名に対して適用する正規表現。パターンが DN と一致しない場合、接続は拒否されます
Max Unconfirmed Flowfile Time 60 secs フローファイルがキャッシュから削除されるまでに確認されるのを待つ最大時間
HTTP Headers to receive as Attributes (Regex) no フローファイル属性として渡す必要がある HTTP ヘッダの名前を決定する正規表現を指定します。.* に設定すると、すべてのヘッダをキャプチャできます。それ以外の場合は、少なくともFiware-service, Fiware-ServicePath およびオプションで X-Auth-Token を含める必要があります
Return Code 200 HTTP コールのたびに返される HTTP 戻りコード

NGSIToMySQL プロセッサ

NGSIToMySQL プロセッサは、ListenHTTP プロセッサによって生成された、 フローファイルを受け取り、それを NGSI イベントに変換します。 その後、このプロセッサは、DBCPConnectionPoll コントローラ・サービス (以前はプロセッサのプロパティで設定されていました) と通信します。 最後に、プロセッサはコントローラ機能を使用して、NGSI 標準で定義されている 構造を使用してデータベース、テーブルを作成し、データを MySQL データベースに挿入します。

mysql-processor

名前 デフォルト値 許容値 説明
JDBC Connection Pool no 特定のデータベース・エンジンに接続するためのコントローラ・サービス
NGSI version v2 NGSI のサポートされているバージョンのリスト (v2 と ld)、現在は v2 のみをサポート
Data Model db-by-entity イベントを受信したときにテーブルを作成するためのデータモデルは、db-by-service-path または db-by-entity のいずれかです。デフォルト値は db-by-service-path です
Attribute persistence row row, column テーブル内にデータを格納するモード
Default Service test Context Broker に Fiware-Service ヘッダを設定しない場合、この値は Fiware-Service として使用されます
Default Service path /path Context Broker に Fiware-ServicePath ヘッダを設定しない場合、この値は Fiware-ServicePath として使用されます
Enable encoding true true, false True は新しいエンコーディングを適用し、False は古いエンコーディングを適用します
Enable lowercase true true, false スキーマ名とテーブル名を小文字で作成する場合は true です
Batch size 10 単一のトランザクションでデータベースに書き込むためのフローファイルの推奨数
Rollback on failure false true, false エラー処理方法を指定してください。デフォルト (false) では、フローファイルの処理中にエラーが発生した場合、フローファイルはエラー・タイプに基づいて 'failure' または 'retry' のリレーションシップにルーティングされ、プロセッサは次のフローファイルを続行できます。代わりに、現在処理されているフローファイルをロールバックし、それ以降の処理を直ちに中止することができます。その場合は、この 'Rollback On Failure' プロパティを有効にすることで可能になります。有効にすると、失敗したフローファイルはペナルティを課されることなく入力関係を維持し、正常に処理されるか他の方法で削除されるまで繰り返し処理されます。頻繁に再試行しないようにするには、適切な 'Yield Duration' を設定することが重要です

NGSIToPostgreSQL プロセッサ

NGSIToPostgreSQL プロセッサは、ListenHTTP プロセッサによって生成された フローファイルを受け取り、それを NGSI イベントに変換します。その後、 このプロセッサは DBCPConnectionPoll コントローラ・サービス (以前はプロセッサのプロパティで設定されていました) と通信します。 最後に、プロセッサはコントローラ機能を使用して、NGSI 標準で定義されている 構造を使用してデータベース、テーブルを作成し、そのデータを PostgreSQL データベースに挿入します。

postgresql-processor

名前 デフォルト値 許容値 説明
JDBC Connection Pool no 特定のデータベース・エンジンに接続するためのコントローラ・サービス
NGSI version v2 NGSI のサポートされているバージョンのリスト (v2 と ld)、現在は v2 のみをサポート
Data Model db-by-entity イベントを受信したときにテーブルを作成するためのデータモデルは、db-by-service-path または db-by-entity のいずれかです。デフォルト値は db-by-service-path です
Attribute persistence row row, column テーブル内にデータを格納するモード
Default Service test Context Broker に Fiware-Service ヘッダを設定しない場合、この値は Fiware-Service として使用されます
Default Service path /path Context Broker に Fiware-ServicePath ヘッダを設定しない場合、この値は Fiware-ServicePath として使用されます
Enable encoding true true, false True は新しいエンコーディングを適用し、False は古いエンコーディングを適用します
Enable lowercase true true, false スキーマ名とテーブル名を小文字で作成する場合は true です
Batch size 10 単一のトランザクションでデータベースに書き込むためのフローファイルの推奨数
Rollback on failure false true, false エラー処理方法を指定してください。デフォルト (false) では、フローファイルの処理中にエラーが発生した場合、フローファイルはエラー・タイプに基づいて 'failure' または 'retry' のリレーションシップにルーティングされ、プロセッサは次のフローファイルを続行できます。代わりに、現在処理されているフローファイルをロールバックし、それ以降の処理を直ちに中止することができます。その場合は、この 'Rollback On Failure' プロパティを有効にすることで可能になります。有効にすると、失敗したフローファイルはペナルティを課されることなく入力関係を維持し、正常に処理されるか他の方法で削除されるまで繰り返し処理されます。頻繁に再試行しないようにするには、適切な 'Yield Duration' を設定することが重要です

NGSIToMongo プロセッサ

NGSIToMongo プロセッサは、ListenHTTP プロセッサによって生成された フローファイルを受け取り、それを NGSI イベントに変換します。 最後に、プロセッサは、NGSI 標準で定義されている構造を使用して、 データとともにスキーマ、ドキュメント、およびコレクションを Mongo データベースに作成します。

mongo-processor

名前 デフォルト値 許容値 説明
Mongo URI no "MongoURI、通常は mongodb://host1[:port1][,host2[:port2],...] という形式です"。また、ユーザを追加して渡すこともできます。例 : mongodb://user:password@host1:port
NGSI version v2 サポートされている NGSI のバージョン (v2 と ld)のリスト、現在は v2 のみをサポート
Data Model db-by-entity イベントを受信したときにテーブルを作成するためのデータモデルは、db-by-service-path または db-by-entity のいずれかです。デフォルト値は db-by-service-path です
Attribute persistence row row, column テーブル内にデータを格納するモード
Default Service test Context Broker に Fiware-Service ヘッダを設定しない場合、この値は Fiware-Service として使用されます
Default Service path /path Context Broker に Fiware-ServicePath ヘッダを設定しない場合、この値は Fiware-ServicePath として使用されます
Enable encoding true true, false True は新しいエンコーディングを適用し、False は古いエンコーディングを適用します
Enable lowercase true true, false スキーマ名とテーブル名を小文字で作成する場合は true です
Database prefix sth_
Collection prefix sth_ system. 受け入れられません
Data Expiration 0 秒単位で指定された値より古い場合、コレクションは削除されます。時間の参照は、recvTime プロパティに格納されているものです。このポリシーが不要な場合は0に設定してください
Collections Size 0 データ・コレクションのサイズがバイトで指定された値より大きくなると、(挿入時間に従って) 最も古いデータが削除されます。サイズ・ベースの切捨てポリシーが時間ベースの切捨てポリシーよりも優先されることに注意してください。このポリシーが不要な場合は0に設定してください。最小値 (0以外) は4096バイトです
Max Documents 0 データコレクション内のドキュメント数が指定された値を超えると、最も古いデータ (挿入時間に従って) が削除されます。このポリシーが不要な場合は0に設定してください

プロセッサを設定したら、ソース (Listen HTTP プロセッサ) とシンク (NGSIToMySQL, NGSIToPostgreSQL, NGSIToMongo) を接続する必要があります。 次のセクションでは、この接続を確立し設定する方法を説明します。