大量データの処理を行う場合などで処理効率を上げるのに使うコードを書いていきます。


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

使ってみて

確かに速度は改善するのだが、統計量などの値をざっくり取りたい場合ぐらいに利用できるが、正確な値を利用したい場合には向かない感じでした。

参考ブログ

おすすめの記事