Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

A condição de push down do predicado do AWS Glue não tem efeito


O predicado de empilhamento funciona apenas para colunas de particionamento. Em outras palavras, seus arquivos de dados devem ser colocados em pastas estruturadas hierarquicamente. Por exemplo, se os dados estiverem localizados em s3://bucket/dataset/ e particionado por ano, mês e dia então a estrutura deve ser a seguinte:
s3://bucket/dataset/year=2018/month=7/day=18/<data-files-here>

Nesse caso, o predicado de empilhamento funcionaria para as colunas year , month e day só:
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")

Além disso, você deve ter em mente que os predicados de empilhamento funcionam apenas com fontes de dados s3.

Aqui está uma bela postagem de blog escrito por desenvolvedores do AWS Glue sobre particionamento de dados.