Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Accès aux tables Amazon S3 avec Amazon EMR

Mode de mise au point
Accès aux tables Amazon S3 avec Amazon EMR - Amazon Simple Storage Service

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.

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.

Amazon EMR (anciennement Amazon Elastic MapReduce) est une plateforme de clusters gérés qui simplifie l'exécution de frameworks de mégadonnées, tels que Apache Hadoop and Apache Spark, AWS pour traiter et analyser de grandes quantités de données. Grâce à ces infrastructures et des projets open source connexes, vous pouvez traiter des données à des fins d’analyse et pour des charges de travail business intelligence. Amazon EMR vous permet également de transformer et de transférer de grandes quantités de données vers et depuis d'autres banques de données et bases de AWS données.

Vous pouvez utiliser … Apache Iceberg des clusters dans Amazon EMR pour fonctionner avec des tables S3 en se connectant à des compartiments de tables dans un Spark séance. Pour vous connecter aux compartiments de tables dans Amazon EMR, vous pouvez utiliser AWS l'intégration des services d'analyse AWS Glue Data Catalog via ou utiliser le catalogue de tables Amazon S3 open source pour Apache Iceberg catalogue client.

Note

S3 Tables est pris en charge sur Amazon EMR version 7.5 ou supérieure.

Connexion aux seaux de table S3 avec Spark sur un Amazon EMR Iceberg cluster

Dans cette procédure, vous configurez un cluster Amazon EMR configuré pour Apache Iceberg puis lancez un Spark session qui se connecte à vos seaux de table. Vous pouvez le configurer à l'aide de l'intégration des services d' AWS analyse AWS Glue, ou vous pouvez utiliser le catalogue de tables Amazon S3 open source pour Apache Iceberg catalogue client. Pour obtenir des informations sur le catalogue client, consultez Accès aux tables à l'aide des tables Amazon S3 Iceberg REST point de terminaison.

Choisissez votre méthode d’utilisation des tables avec Amazon EMR parmi les options suivantes.

Amazon S3 Tables Catalog for Apache Iceberg

Les conditions préalables suivantes sont requises pour interroger des tables avec Spark sur Amazon EMR à l'aide du catalogue de tables Amazon S3 pour Apache Iceberg.

Prérequis
  • Attachez la politique AmazonS3TablesFullAccess au rôle IAM que vous utilisez pour Amazon EMR.

Pour configurer un cluster Amazon EMR afin d'interroger des tables avec Spark
  1. Créez un cluster avec la configuration suivante. Pour utiliser cet exemple, remplacez user input placeholders par vos propres informations.

    aws emr create-cluster --release-label emr-7.5.0 \ --applications Name=Spark \ --configurations file://configurations.json \ --region us-east-1 \ --name My_Spark_Iceberg_Cluster \ --log-uri s3://amzn-s3-demo-bucket/ \ --instance-type m5.xlarge \ --instance-count 2 \ --service-role EMR_DefaultRole \ --ec2-attributes \ InstanceProfile=EMR_EC2_DefaultRole,SubnetId=subnet-1234567890abcdef0,KeyName=my-key-pair

    configurations.json:

    [{ "Classification":"iceberg-defaults", "Properties":{"iceberg.enabled":"true"} }]
  2. Connectez-vous au Spark nœud principal utilisant SSH.

  3. Pour initialiser un Spark séance pour Iceberg qui se connecte à votre compartiment de table, entrez la commande suivante. Remplacez le user input placeholders par l'ARN de votre bucket de table.

    spark-shell \ --packages software.amazon.s3tables:s3-tables-catalog-for-iceberg-runtime:0.1.3 \ --conf spark.sql.catalog.s3tablesbucket=org.apache.iceberg.spark.SparkCatalog \ --conf spark.sql.catalog.s3tablesbucket.catalog-impl=software.amazon.s3tables.iceberg.S3TablesCatalog \ --conf spark.sql.catalog.s3tablesbucket.warehouse=arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-bucket1 \ --conf spark.sql.defaultCatalog=s3tablesbucket \ --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions
  4. Interrogez vos tables avec Spark SQL. Pour voir des exemples de requêtes, consultez Interrogation de tables S3 avec Spark SQL.

AWS analytics services integration

Les conditions préalables suivantes sont requises pour interroger des tables avec Spark sur Amazon EMR en utilisant l'intégration des services AWS d'analyse.

Prérequis
Pour configurer un cluster Amazon EMR afin d'interroger des tables avec Spark
  1. Créez un cluster avec la configuration suivante. Pour utiliser cet exemple, remplacez les user input placeholder valeurs par vos propres informations.

    aws emr create-cluster --release-label emr-7.5.0 \ --applications Name=Spark \ --configurations file://configurations.json \ --region us-east-1 \ --name My_Spark_Iceberg_Cluster \ --log-uri s3://amzn-s3-demo-bucket/ \ --instance-type m5.xlarge \ --instance-count 2 \ --service-role EMR_DefaultRole \ --ec2-attributes \ InstanceProfile=EMR_EC2_DefaultRole,SubnetId=subnet-1234567890abcdef0,KeyName=my-key-pair

    configurations.json:

    [{ "Classification":"iceberg-defaults", "Properties":{"iceberg.enabled":"true"} }]
  2. Connectez-vous au Spark nœud principal utilisant SSH.

  3. Entrez la commande suivante pour initialiser un Spark séance pour Iceberg qui se connecte à vos tables. Remplacez user input placeholders par vos propres informations.

    spark-shell \ --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions \ --conf spark.sql.defaultCatalog=s3tables \ --conf spark.sql.catalog.s3tables=org.apache.iceberg.spark.SparkCatalog \ --conf spark.sql.catalog.s3tables.catalog-impl=org.apache.iceberg.aws.glue.GlueCatalog \ --conf spark.sql.catalog.s3tables.client.region=us-east-1 \ --conf spark.sql.catalog.s3tables.glue.id=111122223333
  4. Interrogez vos tables avec Spark SQL. Pour voir des exemples de requêtes, consultez Interrogation de tables S3 avec Spark SQL.

Les conditions préalables suivantes sont requises pour interroger des tables avec Spark sur Amazon EMR à l'aide du catalogue de tables Amazon S3 pour Apache Iceberg.

Prérequis
  • Attachez la politique AmazonS3TablesFullAccess au rôle IAM que vous utilisez pour Amazon EMR.

Pour configurer un cluster Amazon EMR afin d'interroger des tables avec Spark
  1. Créez un cluster avec la configuration suivante. Pour utiliser cet exemple, remplacez user input placeholders par vos propres informations.

    aws emr create-cluster --release-label emr-7.5.0 \ --applications Name=Spark \ --configurations file://configurations.json \ --region us-east-1 \ --name My_Spark_Iceberg_Cluster \ --log-uri s3://amzn-s3-demo-bucket/ \ --instance-type m5.xlarge \ --instance-count 2 \ --service-role EMR_DefaultRole \ --ec2-attributes \ InstanceProfile=EMR_EC2_DefaultRole,SubnetId=subnet-1234567890abcdef0,KeyName=my-key-pair

    configurations.json:

    [{ "Classification":"iceberg-defaults", "Properties":{"iceberg.enabled":"true"} }]
  2. Connectez-vous au Spark nœud principal utilisant SSH.

  3. Pour initialiser un Spark séance pour Iceberg qui se connecte à votre compartiment de table, entrez la commande suivante. Remplacez le user input placeholders par l'ARN de votre bucket de table.

    spark-shell \ --packages software.amazon.s3tables:s3-tables-catalog-for-iceberg-runtime:0.1.3 \ --conf spark.sql.catalog.s3tablesbucket=org.apache.iceberg.spark.SparkCatalog \ --conf spark.sql.catalog.s3tablesbucket.catalog-impl=software.amazon.s3tables.iceberg.S3TablesCatalog \ --conf spark.sql.catalog.s3tablesbucket.warehouse=arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-bucket1 \ --conf spark.sql.defaultCatalog=s3tablesbucket \ --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions
  4. Interrogez vos tables avec Spark SQL. Pour voir des exemples de requêtes, consultez Interrogation de tables S3 avec Spark SQL.

Note

Si vous utilisez la DROP TABLE PURGE commande avec Amazon EMR :

  • Amazon EMR version 7.5

    Définissez la configuration Spark spark.sql.catalog.your-catalog-name.cache-enabled surfalse. Si cette configuration est définie sur true, exécutez la commande dans une nouvelle session ou application pour que le cache de table ne soit pas activé.

  • Versions d'Amazon EMR supérieures à 7.5

    DROP TABLE n’est pas pris en charge. Vous pouvez utiliser l'DeleteTableAPI REST S3 Tables pour supprimer une table.

Rubrique suivante :

Amazon QuickSight

Rubrique précédente :

Amazon Redshift
ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.