2017-10-06 1 views
1

Je cherchais les meilleures pratiques pour créer des partitions par date, en utilisant amazon-redshift-spectrum, mais les exemples montrent le problème résolu en partitionnant la table par une date seulement. Que faire si j'ai plus d'un champ de date?Redshift Spectrum partitionner une table en utilisant deux champs de date

Par exemple: les événements mobiles avec user_install_date et event_date

Comment performative est de partitionner votre s3 comme:

installdate=2015-01-01/eventdate=2017-01-01 
    installdate=2015-01-01/eventdate=2017-01-02 
    installdate=2015-01-01/eventdate=2017-01-03 

aura-t-il tuer ma performance select? Quelle est la meilleure stratégie dans ce cas?

Répondre

1

Si vous avez partitionné les données de la manière ci-dessus, une requête ayant simplement eventdate dans la clause WHERE (sans installdate) serait moins efficace.

Il faudrait toujours parcourir tous les répertoires installdate, mais il pourrait passer outre les répertoires eventdate qui ne correspondent pas au prédicat.

Met le paramètre le moins utilisé en second.