プロセッサ構成¶
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 通知を受信します。
このプロセッサに必要な設定は次の図に示されています。
ここで :
名前 | デフォルト値 | 許容値 | 説明 |
---|---|---|---|
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 データベースに挿入します。
名前 | デフォルト値 | 許容値 | 説明 |
---|---|---|---|
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 データベースに挿入します。
名前 | デフォルト値 | 許容値 | 説明 |
---|---|---|---|
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 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) を接続する必要があります。 次のセクションでは、この接続を確立し設定する方法を説明します。