sql >> Databasteknik >  >> RDS >> Mysql

AWS Glue predikat push down condition har ingen effekt

Pushdown-predikat fungerar endast för partitionering av kolumner. Med andra ord bör dina datafiler placeras i hierarkiskt strukturerade mappar. Till exempel, om data finns i s3://bucket/dataset/ och uppdelat efter år, månad och dag bör strukturen vara följande:

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

I sådana fall skulle pushdown-predikat fungera för kolumner year , month och day endast:

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")

Utöver det måste du komma ihåg att pushdown-predikater endast fungerar med s3-datakällor.

Här är ett trevligt blogginlägg skriven av AWS Glue devs om datapartitionering.



  1. Regex101 vs Oracle Regex

  2. Mysql - välj ID som matchar alla taggar

  3. Hur ber man MySQL att fråga efter värden i en fråga?

  4. Finns det något alternativ till IN med LIMIT?