大量データの処理を行う場合などで処理効率を上げるのに使うコードを書いていきます。
SMART_DIGEST() : 文字列を短いハッシュ値に変えるUDF。
数値型ではなく文字列型でのJOINを行う際にはメモリ量をかなり削減できる
以下のように、row_numberを作るためのwindow関数を使うとメモリ消費大だが、
SMART_DIGEST() を使う事で処理速度を上げることができる
SELECT ROW_NUMBER() OVER( PARTITION BY SMART_DIGEST(target_date), SMART_DIGEST(id) ORDER BY count DESC ) AS rownum , * FROM table1
使ってみて
確かに速度は改善するのだが、統計量などの値をざっくり取りたい場合ぐらいに利用できるが、正確な値を利用したい場合には向かない感じでした。