Mysql
 sql >> Database >  >> RDS >> Mysql

La condizione di push down del predicato di AWS Glue non ha effetto

Il predicato pushdown funziona solo per il partizionamento delle colonne. In altre parole, i tuoi file di dati dovrebbero essere collocati in cartelle strutturate gerarchicamente. Ad esempio, se i dati si trovano in s3://bucket/dataset/ e suddivisa per anno, mese e giorno, la struttura dovrebbe essere la seguente:

s3://bucket/dataset/year=2018/month=7/day=18/<data-files-here>

In tal caso, il predicato pushdown funzionerebbe per le colonne year , month e day solo:

datasource = glueContext.create_dynamic_frame_from_catalog(
    database = source_catalog_db, 
    table_name = source_catalog_tbl, 
    push_down_predicate = "year = 2017 and month > 6 and day between 3 and 10", 
    transformation_ctx = "datasource")

Inoltre, devi tenere a mente che i predicati pushdown funzionano solo con origini dati s3.

Ecco un bel post sul blog scritto dagli sviluppatori di AWS Glue sul partizionamento dei dati.