Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Die Prädikat-Pushdown-Bedingung von AWS Glue hat keine Auswirkung

Das Pushdown-Prädikat funktioniert nur zum Partitionieren von Spalten. Mit anderen Worten, Ihre Datendateien sollten in hierarchisch strukturierten Ordnern abgelegt werden. Zum Beispiel, wenn sich Daten in s3://bucket/dataset/ befinden und unterteilt nach Jahr, Monat und Tag, dann sollte die Struktur wie folgt aussehen:

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

In diesem Fall würde das Pushdown-Prädikat für die Spalten year funktionieren , month und day nur:

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

Außerdem müssen Sie bedenken, dass Pushdown-Prädikate nur mit s3-Datenquellen funktionieren.

Hier ist ein netter Blogbeitrag geschrieben von AWS Glue-Entwicklern über Datenpartitionierung.