sql >> Database >  >> RDS >> Mysql

AWS Lijm predikaat push-down conditie heeft geen effect

Pushdown-predikaat werkt alleen voor het partitioneren van kolommen. Met andere woorden, uw gegevensbestanden moeten in hiërarchisch gestructureerde mappen worden geplaatst. Als gegevens zich bijvoorbeeld bevinden in s3://bucket/dataset/ en gepartitioneerd op jaar, maand en dag, dan zou de structuur als volgt moeten zijn:

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

In dat geval zou het pushdown-predikaat werken voor kolommen year , month en day alleen:

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

Daarnaast moet je er rekening mee houden dat pushdown-predikaten alleen werken met s3-gegevensbronnen.

Hier is een mooie blogpost geschreven door AWS Glue-ontwikkelaars over gegevenspartitionering.



  1. Python Oracle, fout Geen invoegen

  2. MySQL telt kolommen op specifieke waarde

  3. Hoe krijg ik de lijst met functies in de database in PostgreSQL samen met de bijbehorende parameters?

  4. Geef automatisch een unieke id in de database op