2017-06-14 1 views
0

Je suis nouveau à presto et j'aimerais savoir s'il y a un moyen d'avoir une boucle. J'ai une requête qui agrège certaines données date par date, et quand je l'exécute, il génère une erreur de: dépassé la taille maximale de la mémoire de 30 Go. Je peux utiliser d'autres suggestions si la boucle n'est pas une option.Presto pour la boucle

la requête J'utilise:

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 

Répondre

0

En supposant que vous utilisez, vous pouvez écrire Hive les données source à une table buckets buckets la marque, puis des groupes de processus de seaux avec WHERE "$bucket" % 32 = <N>.

Sinon, vous pouvez fragmenter la requête en n requêtes, puis traiter 1/n de la "marque" dans chaque requête. Vous utilisez WHERE abs(from_big_endian_64(xxhash64(to_utf8(brand)))) % 32 = <N> pour importer les marques.