View a markdown version of this page

Utilisation d'Amazon S3 Express One Zone avec AWS Glue - AWS Glue

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation d'Amazon S3 Express One Zone avec AWS Glue

Avec AWS Glue la version 5.1 et les versions ultérieures, vous pouvez lire et écrire des données dans des compartiments de répertoire Amazon S3 Express One Zone à partir de vos tâches ETL. S3 Express One Zone est une classe de stockage Amazon S3 à zone unique à hautes performances qui fournit un accès aux données cohérent à un chiffre en millisecondes pour les applications sensibles à la latence.

Conditions préalables

Avant de pouvoir utiliser S3 Express One Zone avecAWS Glue, vous devez disposer des éléments suivants :

  • Une AWS Glue tâche exécutant la version 5.1 ou supérieure.

  • Un bucket d'annuaire S3 créé dans la même région que votre AWS Glue tâche. Les compartiments d'annuaire ne prennent pas en charge l'accès entre régions. Pour plus d'informations, consultez la section Création de compartiments d'annuaire dans le guide de l'utilisateur Amazon S3.

  • L's3express:CreateSessionautorisation associée à votre rôle IAM. Lorsque S3 Express One Zone exécute une action sur un bucket d'annuaire, il appelle CreateSession en votre nom.

Autorisations IAM

Ajoutez l'autorisation suivante au rôle IAM de votre AWS Glue tâche pour autoriser l'accès aux compartiments de répertoire S3 Express One Zone :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3express:CreateSession", "Resource": "arn:aws:s3express:*:*:bucket/EXAMPLE-BUCKET--az-id--x-s3" } ] }

EXAMPLE-BUCKETRemplacez-le par le nom du compartiment de votre répertoire et az-id par l'ID de zone de disponibilité (par exemple,use1-az4).

Lecture et écriture de données

AWS Gluela version 5.1+ prend en charge l'accès aux compartiments de répertoire S3 Express One Zone en utilisant à la fois les schémas d'URI s3:// ets3a://. Aucune configuration supplémentaire n’est requise.

L'exemple suivant montre comment lire et écrire des données à partir d'un bucket d'annuaire S3 Express One Zone dans une tâche AWS Glue ETL :

import sys from pyspark.context import SparkContext from awsglue.context import GlueContext sc = SparkContext.getOrCreate() glueContext = GlueContext(sc) spark = glueContext.spark_session # S3 Express One Zone directory bucket path express_path = "s3://EXAMPLE-BUCKET--use1-az4--x-s3/my-data/" # Read data from S3 Express One Zone df = spark.read.parquet(express_path) # Write data to S3 Express One Zone df.write.mode("overwrite").parquet(express_path + "output/")

Vous pouvez également utiliser DynamicFrames avec S3 Express One Zone :

# Read with DynamicFrame dynamicFrame = glueContext.create_dynamic_frame.from_options( connection_type="s3", connection_options={"paths": [express_path]}, format="parquet" ) # Write with DynamicFrame glueContext.write_dynamic_frame.from_options( frame=dynamicFrame, connection_type="s3", connection_options={"path": express_path + "output/"}, format="parquet" )