2017-06-14 23 views
0

私はprestoには新しく、forループを持つ方法があるかどうかを知りたいと思います。私はいくつかのデータを日付別に集計するクエリを持っています。実行すると、30GBという最大メモリサイズを超えました。 ループがオプションでない場合は、他の提案を使用できます。Presto for loop

クエリ私が使用しています:

select dt as DATE_KPI,brand,count(distinct concat(cast(post_visid_high as varchar), 
     cast(post_visid_low as varchar)))as kpi_value 
from hive.adobe.tbl 
    and dt >= date '2017-05-15' and dt <= date '2017-06-13' 
group by 1,2 

答えて

0

ハイブあなたがWHERE "$bucket" % 32 = <N>と、その後バケットのプロセスグループのブランドにバケットバケットのテーブルにソースデータを書き込み、することができ、使用していると仮定。

それ以外の場合は、クエリをn個のクエリに分割し、各クエリの「ブランド」の1/nを処理できます。ブランドをバケット化するにはWHERE abs(from_big_endian_64(xxhash64(to_utf8(brand)))) % 32 = <N>を使用します。