Node-RED連携によるスキーマレス加工のアプリケーション開発について説明します。
Node-RED連携プラグインをインストールすると、Node-REDにスキーマレス加工用のカスタムノードが追加されます。
ノード一覧
Node-RED連携プラグインで提供するノード一覧は以下になります。
グループ | ノード種別 | 説明 |
---|---|---|
BDIS | deex select | スキーマレス加工機能を用いて、入力データに対し複数の検索式で判定し、条件に一致したデータを抽出します。 |
deex replace | スキーマレス加工機能を用いて、入力データの形式を変換します。 | |
deex join | スキーマレス加工機能を用いて、ジャーナルデータとマスターデータを連結します。 | |
deex analyze | スキーマレス加工機能を用いて、入力データを集計します。 | |
deex sort | スキーマレス加工機能を用いて、入力データをソートします。 | |
deex keysort | スキーマレス加工機能を用いて、入力データを指定されたキー項目の値ごとのファイルに仕分けします。 |
ノードの利用方法
スキーマレス加工用ノードの使い方はOSSのオンラインドキュメントおよび各ノードのヘルプ(Node-RED定義画面右に表示)を参照してください。
参照
スキーマレス加工機能の詳細は、“加工編 導入・運用ガイド”、または、“加工編 リファレンス集”を参照してください。
参照
スキーマレス加工用ノードでは以下を定義することはできません。
可変項目
外部コマンド
以下は“加工編 リファレンス集”の”データの抽出”記載のサンプルプログラムと同等の処理を実行するNode-REDフローをJSON形式でエクスポートしたサンプルフローです。
以下のサンプル例中の<indata.csv, schema.csvの格納先ディレクトリ>は、環境に合わせて適宜修正してください。
[{"id":"2d9c558e.87737a","type":"tab","label":"抽出サンプル","disabled":false,"info":""},{"id":"9f046df1.a11ed","type":"deex select","z":"2d9c558e.87737a","name":"Select","parallelNum":"","cfgCommon":"554ee230.f04fac","logFile":"","inFileType":"CSV","cfgCsvFormat":"abc17460.84e4a8","ankMix":false,"knjMix":false,"skipChar":"","separateChar":"","outLineFeedCode":"LF","quotationMarkMode":false,"errFile":"","errFileMax":"","deTimeOut":0,"deexDef":{"DataEffector":{"Scenario":{"$":{"Name":"Select","IgnoreWarning":true},"Step":{"_":"BDIS@Select"}},"Select":{"$":{"Name":"BDIS@Select"},"BaseDirectory":{"_":"<indata.csv, schema.csvの格納先ディレクトリ>"},"DataFile":{"$":{"InFileType":"CSV","FieldSeparator":"\\,","SchemaFile":"schema.csv"},"File":[{"$":{"Type":"file"}}]},"OutCondition":[{"Query":{"_":"$Kbn=='01'"},"OutFile":{"_":"out1.csv","$":{"Type":"file"}},"$":{"SearchNumber":1}},{"Query":{"_":"%1 AND $Code=='AAA'"},"OutFile":{"_":"out2.csv","$":{"Type":"file"}},"$":{"SearchNumber":2}},{"Query":{"_":"~(%1) AND $Code=='AAA'"},"OutFile":{"_":"out3.csv","$":{"Type":"file"}},"$":{"SearchNumber":3}}],"OutFileOption":{"$":{"OutLineFeedCode":"LF"}}}}},"deOut":[{"dataType":"filename","name":"out1.csv"},{"dataType":"filename","name":"out2.csv"},{"dataType":"filename","name":"out3.csv"}],"outputs":3,"deexType":"Select","listInputFile":[{"type":"msg.filename","filename":""}],"listOutCondition":[{"query":"$Kbn=='01'","listRConditionItem":[],"outType":"filename","outFile":"out1.csv","schemaFile":"","append":false},{"query":"%1 AND $Code=='AAA'","listRConditionItem":[],"outType":"filename","outFile":"out2.csv","schemaFile":"","append":false},{"query":"~(%1) AND $Code=='AAA'","listRConditionItem":[],"outType":"filename","outFile":"out3.csv","schemaFile":"","append":false}],"x":250,"y":320,"wires":[[],[],[]]},{"id":"e0feb05a.5000d","type":"inject","z":"2d9c558e.87737a","name":"クリックで実行","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":180,"y":120,"wires":[["c2348e5f.b9718"]]},{"id":"c2348e5f.b9718","type":"function","z":"2d9c558e.87737a","name":"入力ファイル名送信","func":"msg.filename = 'indata.csv';\nreturn msg;","outputs":1,"noerr":0,"x":220,"y":220,"wires":[["9f046df1.a11ed"]]},{"id":"554ee230.f04fac","type":"deex cfgCommon","z":"","name":"config","charCode":"","baseDirectory":"<indata.csv, schema.csvの格納先ディレクトリ>"},{"id":"abc17460.84e4a8","type":"deex cfgCsvFormat","z":"","name":"schema","schemaFile":"schema.csv","fieldSeparator":["\\,"],"fieldSeparatorMode":false,"skipHeader":false}]