KNIME・EXCEL倉庫

KNIMEワークフローやEXCELマクロの備忘録。

【KNIME】データ登録ワークフロー(Loop)

・データ登録ワークフローでは、"Column Merger"を追加したいデータの種類(列数)の分だけ用意しなければならなかった。

・追加したいデータの種類が登録するたびに変わったり、多くの種類のデータを一度に登録したい場合、このやり方には限界がある。

Loopを使って、汎用性を上げたい

 

・作ったワークフロー

f:id:choron81:20210307221334p:plain

 

・今回使用したLoopは"Recursive Loop"であり、直訳すると「再帰ループ」。Endまで行ったら、Startにデータを返すLoopを使用した。

・通常のLoopは、くるくる回るというよりも、何度も実行するというニュアンスの方が強い。

 

・Loop内では、①統合する「列名」と「列名(#1)」のペアを抽出し(メタノード)、②指定したペアに従って列を統合し("Column Merger")、③その回で統合した「列名(#1)」を除去する("Colum Filter")という流れにした。Loop Endに繋がるメタノードでは、Loopを回す回数(統合する列の数)を抽出し、CFG_MaxNrIterationsに指定した。

・達磨落としのようなイメージ。最後に残るのは列名に(#1)を含まない列のみなので、前回最後につけていた(#1)を含む列を除去するための"Column Filter"は設置していない。

 

・Loop Endでは、回が進むごとに列数が変わってくること、最終的に必要な統合がすべてできた後の表だけ手に入れば良いことから、"Collect Data from last iteration only"にチェックを入れた。

・ちなみに、Loop Endのポート0に渡されたデータは収集されて出力ポートに渡され、ポート1に渡されたデータは再帰ループ開始ノードに返されるらしいが、今回はこれらが一致しているので、両ポートに同じデータを放り込んだ。

 

・ワークフロー

drive.google.com

 

・動作不良、その他不利益に関して、当方は一切補償しない。

 

終わり。