SPSS Modeler、NetezzaとOracle Exadataの微妙な違い その3 [データサイエンス、統計モデル]
どうも日付の計算でNetezzaとOracle Exadataで仕様がことなっており、
それが原因のエラーが発生しやすいです。
困るのが、一見、プッシュバックが効いていて上手く動いているように見えても、
データベースの内部で大量にメモリを確保してしまいエラーが起きたり、
出力される結果が想定外のものだったりします。
ユーザ側はちゃんと動いている認識なので、エラーが起こっていることが発見しにくいのが厄介ですね。
Netezzaは、同じIBMの製品なので、細かいバグのチェックなどはやっているのでしょうが、
Oracle Exadataに対しても、丁寧なバグチェックはして欲しいものです。
今回のバグですが、SPSSのストリーム内で条件抽出をしたところ、
そのレコードの抽出が微妙で、処理がすごく遅くなってしまいます。
データベース内のメモリもたくさん使ってしまいます。
そこで、SQLを書く一番最初の入力ノードに条件抽出を書いてしまうのが良いかと思われます。
速度は劇的に速くなりました。
今日から日付差が、7日以内のレコードを抽出したい場合は、このように書きます。
それが原因のエラーが発生しやすいです。
困るのが、一見、プッシュバックが効いていて上手く動いているように見えても、
データベースの内部で大量にメモリを確保してしまいエラーが起きたり、
出力される結果が想定外のものだったりします。
ユーザ側はちゃんと動いている認識なので、エラーが起こっていることが発見しにくいのが厄介ですね。
Netezzaは、同じIBMの製品なので、細かいバグのチェックなどはやっているのでしょうが、
Oracle Exadataに対しても、丁寧なバグチェックはして欲しいものです。
今回のバグですが、SPSSのストリーム内で条件抽出をしたところ、
そのレコードの抽出が微妙で、処理がすごく遅くなってしまいます。
データベース内のメモリもたくさん使ってしまいます。
そこで、SQLを書く一番最初の入力ノードに条件抽出を書いてしまうのが良いかと思われます。
速度は劇的に速くなりました。
今日から日付差が、7日以内のレコードを抽出したい場合は、このように書きます。
WHERE (TO_DATE(TO_CHAR(SYSDATE, 'YYYYMMDD'), 'YYYY-MM-DD') - TRUNC("フィールド1",'DD')) <= 7今日の日付を SYSDATE 持ってきて、"フィールド1" との日付差が7日以内という処理になります。 ~その他のTipsはこちら~ SPSS Modeler、NetezzaとOracle Exadataの微妙な違い その1 http://skellington.blog.so-net.ne.jp/2017-11-27 SPSS Modeler、NetezzaとOracle Exadataの微妙な違い その2 http://skellington.blog.so-net.ne.jp/2017-11-28
コメント 0