Comment exécuter une tâche AWS Glue sur une partition précise dans Amazon S3 ?

Dernière mise à jour : 23/07/2021

Comment exécuter une tâche AWS Glue sur une partition précise dans un emplacement Amazon Simple Storage Service (Amazon S3) ?

Brève description

Pour filtrer les partitions dans le catalogue de données AWS Glue, servez-vous d'un prédicat pushdown. Contrairement aux transformations Filter (Filtre), les prédicats pushdown vous permettent de filtrer les partitions sans avoir à répertorier et lire tous les fichiers de votre ensemble de données.

Résolution

Créez une tâche AWS Glue et indiquez le prédicat pushdown dans le DynamicFrame. Dans l'exemple suivant, la tâche traite les données de la partition s3://awsexamplebucket/product_category=Video uniquement :

datasource0 = glueContext.create_dynamic_frame.from_catalog(database = "testdata", table_name = "sampletable", transformation_ctx = "datasource0",push_down_predicate = "(product_category == 'Video')")

Voici un exemple de prédicat pushdown qui filtre par date. Dans cet exemple, la tâche traite les données de la partition s3://awsexamplebucket/year=2019/month=08/day=02 uniquement :

datasource0 = glueContext.create_dynamic_frame.from_catalog(database = "testdata", table_name = "sampletable", transformation_ctx = "datasource0",push_down_predicate = "(year == '2019' and month == '08' and day == '02')")

Voici un exemple de prédicat pushdown qui filtre par date les partitions autres que Hive. Dans cet exemple, la tâche traite les données de la partition s3://awsexamplebucket/2019/07/03 uniquement :

datasource0 = glueContext.create_dynamic_frame.from_catalog(database = "testdata", table_name = "sampletable", transformation_ctx = "datasource0",push_down_predicate ="(partition_0 == '2019' and partition_1 == '07' and partition_2 == '03')" )

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?