ETL v1からv2への注意事項はコチラに記載がありますが、その中から私が特にハマった「行をフィルター」のNullに関連する評価の違いを具体例でご紹介いたします。
動画で解説
テスト内容
下記ようなNullを含む4行のデータを用意し、1を中心に「1と等しくない」、「1以上」、「1以下」のv1とv2のフィルター評価結果の違いを見てみます。
v1とv2ではNULL評価が異なる
プレビューしフィルター通過結果を見ると下記のようにNull値の評価が異なっている事が分かります。
フィルターが「1と等しくない」場合、v1はNullを含む3レコード(Null,2,3)フィルターを通過に対し、v2はNullは除外され2レコード(2,3)フィルターを通過します。
フィルターが「1以上」の場合、v1とv2では同じ挙動となりました。
フィルターが「1以下」の場合、v1はNullを含む2レコード(Null,1)フィルターを通過に対し、v2はNullは除外され1レコードフィルターを通過します。
v2ではNullを明示的に扱う
以上の結果から、「等しくない」または「以下」でフィルターした結果がv2でもv1の時と同様にNullが含まれる事を期待している場合は何らかの修正が必要である事が分かります。
例えば,「1と等しくない」場合、v2では「1と等しくない」だけではなく「NULLである」を加え、その「いずれか」である条件にする事でv1の場合と同じ結果になります。