デジタル推進課

KNIME・Excel Macro・Power Automateなど日々の業務で使用できる自動化ツールを中心に書き綴ります

KNIME - ワークフローを共有しよう・受け取ろう

f:id:makkynm:20201219211834p:plain

 

 

はじめに

KNIMEとは?の記事で、あんだけ共有しやすいのがメリットと言っていたのにも関わらず、共有の仕方を記事にしていないということを気付きました。。

今回は共有する人(Citizen Developer)と受け取る人(End User)、2つの視点から解説していきます。

 

やりたいこと

作ったWorkflowを圧縮ファイルにして共有・受け取りしてみましょう。

f:id:makkynm:20200508085235p:plain

やりたいこと

 

覚えてほしいこと

共有したい階層で、"Export KNIME Workflow..."

受け取りたい階層で、"Import KNIME Workflow..."

 

共有する人がやるべきこと

まずはWorkflowの共有(Export)方法についてです。

Step1 - Workflowを保存してCloseする

確実に保存されていることを確認するために、まずはWorkflowのタブを閉じましょう。保存されていなかったら「保存しますか?」というようなメッセージが出ると思います。

f:id:makkynm:20200509102930p:plain

Workflowを閉じる

Step2 - 共有したいWorkflowを右クリック、Export KNIME Workflow

共有したいWorkflow をKNIME Explorer 上で選択し、右クリックするとメニューが出てきます。メニュー内の"Export KNIME Workflow"を選択してください。

f:id:makkynm:20200509103355p:plain

Export KNIME Workflow

 

Step3 - 出力先を指定

下図のような画面が出てきます。出力するWorkflowはすでに入力されているので、次に出力先を指定します。

"Browse..."から圧縮ファイルを保存したい出力先を指定してください。

f:id:makkynm:20200509104910p:plain

Export KNIME Workflow

Step4 - Reset設定の有無を指定

「Reset Workflow(s) before export」というOptionがあると思います。デフォルトではチェックが入っています。

これは、「データを保持した状態で出力するか」というオプションです。個人的にはチェックが入っていていいと思うのですが、用途によって変えてください。

「Reset Workflow(s) before export」の詳細

Nodeの信号について覚えていますでしょうか?詳しくは、KNIME - 画面構成とNodeの基本構成で触れています。Resetを行うと、緑色信号から黄色信号に移り替わりましたよね。緑色の信号は、「KNIME上でデータを保持する」という意味です。

つまり、これにチェックを入れるとResetするということなので、受け取った人は、自分のPCで再度Inputファイルを読み込んで実行するまで処理結果は確認できません。その代わり、圧縮ファイルのデータサイズは小さいです。

一方、チェックを外すとデータを保持するので、受け取った人はInputファイルを読み込まずとも、すぐに各NodeのOutputを確認することができます。その代わり、ファイルサイズが非常に大きくなってしまいます。

 

Step5 - Finishを押して完了

最後にFinishを押すと圧縮ファイルを出力できます。出力先に指定したフォルダを見て、圧縮ファイルが出力されていることを確認してみましょう。

この圧縮ファイルをメールなり、クラウドなり、チャットなりで受け取る人に送信しましょう。

f:id:makkynm:20200509110203p:plain

Export KNIME Workflow

 

受け取った人がやるべきこと

受け取った人は、できる人が作ったものでKNIMEって何か分からないけど、とりあえず実行したいという人がまあまあいるのではないかなと思います。

そんな人のためにどう実行させるのかを話したいと思います!

 

Step1 - Workflowを保存したい階層で右クリック、Import KNIME Workflow

まずはKNIMEを開きましょう。その後、KNIME Explorerの中でWorkflowを取り込みたいFolderの場所で右クリックします。その後「Import KNIME Workflow」を押してください。

※KNIME Explorerについては、こちらの記事で解説しています。KNIME - 新しいワークフローを作ってみよう

今回は一番上の階層である、Localの下に取り込んでみたいと思います。Localという部分で右クリックして、「Import KNIME Workflow」を選択します。

f:id:makkynm:20200509111004p:plain

Import KNIME workflow

 

Step2 - 受け取った圧縮ファイルを選択

下図の画面が出てくると思います。Step1で右クリックしたフォルダは既にデフォルトで保存先"Destination"として指定されています。

まずは受け取った圧縮ファイルを選択します。"Browse"を押して、受け取ったファイルを選択します。

 

f:id:makkynm:20200509111244p:plain

Import KNIME workflow

Step3 - 受け取るWorkflowを確認してFinish

Step2を完了すると、圧縮ファイルの中にあるファイル一覧がImport Elementsに自動的に表示されます。すべてのWorkflowが入っていることを確認してFinishを押しましょう。これで完了です。

もし取り込みたくないファイルがある場合はここでチェックを外すことで、取り込まないようにできます。複数のWorkflowやInputファイル等が含まれている圧縮ファイルだった場合に使うことも可能です。ほとんどの場合で全取り込みかと思いますが、、

f:id:makkynm:20200509111709p:plain

Import KNIME workflow

取り込みが完了すると、先ほど指定した取り込み先にファイルが作成されていると思います。

f:id:makkynm:20200509111959p:plain

Import KNIME workflow

 

 

Step4 - Workflow を開く

番外編として、実行方法についても解説します。Developerの人は読み飛ばしてください!

まずは取り込んだWorkflowをKNIME Explorer上でダブルクリックして、Workflowを開いてください。

 

Step5 - 設定を変更する

このまま実行!できるとは限りません。開発した人が受け取り側も考えていたらほとんどやることはないのですが、、一部設定変更が必要になると思います。

オレンジ色・赤色・茶色のNodeをダブルクリックしてConfigureを一つ一つ確認していきましょう。これらのNodeは、ReaderやWriter、File Nameなど、BrowseでInputファイルや出力先を指定している可能性が非常に高いです。

Importした時点では、作った人のファイルパス*1で指定されてしまっているので、自分のフォルダに指定し直しましょう。

下図のようなNodeが例です。これらの色のNodeを見つけたら、一度ダブルクリックでConfigure(設定画面)を開いてみて、作った人のファイルパスになっていないか確認してみましょう。

作った人のパスであれば、Browseから自分のPCのパスに変更しましょう。Browseが押せない場合、変数で自動的に設定が変更される設定になっていて、受け取り側で設定変更が必要ない場合もあります。

 

f:id:makkynm:20200509115353p:plain

設定変更が必要なNode例

 

Step6 - Ctrl + Aで全選択からのReset

設定変更が終わったらいよいよ実行です。実行前にかならずResetといって、実行完了の状態から、実行準備完了の状態に戻す必要があります。

取り込んだ直後は、すでにResetされていることが多いのでスキップできることが多いですが、次回以降は出来ていないので必要ステップとして覚えておきましょう。

まずは"Ctrl" と"A"を同時に押して、全選択しましょう。全選択できていると、下図のようにすべてのNodeの枠が黒枠でくくられます。

この時、すべてのNodeはまだ緑色(実行完了)になっています。

f:id:makkynm:20200509120508p:plain

全選択

全選択した状態で、右上のリセットアイコン(テーブルと×マークがついたアイコン)を押しましょう。F8を押してもリセットできます。

すると、すべてのNodeが黄色か赤色になったかと思います。

f:id:makkynm:20200509120648p:plain

Resetボタン

Step7 - 全実行

最後に全実行しましょう。全選択した状態で、上のアイコンを見ると、早送りボタンのようなアイコンがあります。これを押すと、Workflowが一気に実行されます。”Shift + F7”でも実行可能です。

f:id:makkynm:20200509121101p:plain

全実行ボタン

 

すべてのNodeの信号が緑色になっていたら、エラーなく実行できていることになります。もしエラーがあれば赤色の信号で止まってしまっていると思います。エラーが起きたら一度設定を見て、自分のファイルパスになっているかどうかなどを確認してみましょう。

もし分からなかったら、Consoleのエラーメッセージ・止まったNodeのConifigureのスクリーンショット、止まったNodeの前のConfirmの画面のスクリーンショットを作った人に渡してみましょう。

 

ちょっと一言

フォルダごと一緒に共有する

上で、単純にファイルといわずに、圧縮ファイルという言葉を使ったのは、Workflowだけでなく、フォルダごと共有することも可能だからです。

例えば、私の使用している、"00Blog"というフォルダの下にはWorkflowだけでなく、Inputフォルダ、Outputフォルダ、その他ファイルも含まれています。

 

f:id:makkynm:20200509123205p:plain

フォルダごと共有

 

これらを1つの圧縮ファイルとして共有することも可能です。手順は上で説明した通りです。今回は”00Blog”というフォルダの上で右クリックしてExportしてみましょう。 下のようにフォルダごと圧縮する設定になっていることがわかります。

f:id:makkynm:20200509123708p:plain

フォルダごと共有

 これを利用すると、例えばWorkflow上のReaderやWriterの階層を相対パスで指定すれば、WorkflowのConfigureを変更する必要がなくなります。

レーニングのマテリアルを作るときとか便利ですね。

もしくは、相対パスで作り上げて共有して、WorkspaceにInputファイルを更新するように教えてあげれば、Configureを受け取り側でいじらなくていいことになります。

 

おわりに

受け取った人の負担を楽にするためには、作った人が変数や相対パスを利用して、最低限の設定だけにしてあげることが重要です。

また、将来ブラックボックスツールになってしまって誰も変更ができない!とならないようにするために、きちんとWorkflowにメモを残してあげることが大事です。

次回は作り上げたツールを将来、ブラックボックスツールにしないための工夫を紹介したいと思います。

 

 

 

余談

 皆さんに共有したいおススメ映画は「5パーセントの奇跡 ~嘘から始まる素敵な人生~」です。

難病で5%しか見えないサリーが5つ星ホテルで働くことという夢を追う話です。これ、実話なのが本当に感動です。個人的に実話に基づく物語が好きなんですよね。夢を持って生きるっていうのは憧れます。自分だけでなく他人も動かすような、そんな情熱をもってるような人になりたいと思えるような作品です。

 

 

 

www.youtube.com

参考リンク

 

 

 

*1:特定のファイルの場所までの道筋を記述したもの。【初心者向け】絶対パスと相対パスの違いをイラストを使って解説! | webliker