はじめに
Column FilterとReference Row Filterが分かっていれば、概念は名前から分かりますよね。他テーブルの情報をもとにメインのテーブルのコラムを削除します。(もしくは分けます)
今回のテーマ ~Reference Column Filter / Splitter~
Workflowは下記からダウンロードできます。
覚えてほしいこと
参照テーブルはコラム名だけしか見られない
やりたいこと
コラムリストをもとに、そこに含まれているコラムだけを残す
ことを行います。コラムの数が多い時に使用します。
今回は、勤務地と入社日のコラムをコラムリストを使用して削除してみたいと思います。
Reference Column Filterの使い方
コラムの数が多い時や、動的にコラムを削除したいとき、通常のColumn Filterよりも便利です。
Reference Column Splitterは使い方が同じなので省略します。FilterとSplitterの違いはRow Filterで説明した通り、分けるか残すかだけですね。
Workflow
コラム名リストの形では読み込めないので、RowIDとTransposeを使用して「縦から横へ」値をコラム名に変換してから、参照テーブルとしてInputに入れます。
Confirm - Before After
上のInput(Excel Reader)がフィルタリングの対象テーブル、
下のInput(Transpose)が参照テーブルになります。
参照テーブルは、コラム名しか見られていません。
※オプションを使えばデータ型まで見られます
データ変換の軌跡
RowIDやTransposeで何が起こっているのかを、Confirmを見ながら確認しましょう。
Configure
ほとんどやることはないです!
Inputテーブルさえきちんと用意できれば、あとは繋ぐだけというNodeです。
Step1 - Include columns from reference table 入れるか除くか
Splitterにはこの項目はありません。
参照テーブルにあるコラムを入れるか、除くかを決めます。
今回はIncludeを選択しているので、コラムリストにあるコラムを抽出していますが、Excludeを選択すると、これらが除かれるので「勤務地、入社日」のコラムが残ることになります。
Step2 - Ensure compatibility of column typesデータ型まで参照するか
これにチェックを付けると、コラム名だけでなくデータ型まで一致するものを抜き出してきます。今回の参照テーブルのデータ型はすべてStringでしたよね。
なので、これにチェックを入れると元テーブルのデータ型がStringではない「部署ID、生年月日」のコラムも除かれることになります。
ちょっと一言
SplitterのConfigure画面
SplitterのConfigureの画面はStep1がないので非常に簡素です。
おわりに
今回で、RowIDやTransposeの用法が分かってきたのではないでしょうか。KNIMEは、データベースの操作ツールなので縦への処理に強いです。
基本的にコラム単位で処理し、使いたいときだけ横に変換するという形で使用すると、処理できる内容が増えてよいです。
余談
他のテーブルをもとに、退けてしまうという特性にピッタリなおすすめ映画は、「ファウンダー ハンバーガー帝国の秘密」です。
この映画は、あのマクドナルドの始まりの話です。マクドナルドが不動産会社なのは皆さんご存知ですよね。あまりにディック&マック兄弟がかわいそうなんですが、ビジネスマンとしてはレイ・クロックが正解なのでしょう。
ビジネスマンとして成功するには、冷徹な面がないといけないのかなと思わされるような映画でした。マック大好きな方は是非見てください!
https://www.youtube.com/watch?v=_plbpk8Wa9c
参考リンク
- KNIME公式Node Pit(英語):
Reference Column Filter — NodePit
- KNIME Example Workflow(英語):