Zugreifen auf Amazon S3 Tables mit Amazon EMR - Amazon Simple Storage Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Zugreifen auf Amazon S3 Tables mit Amazon EMR

Amazon EMR (früher Amazon Elastic genannt MapReduce) ist eine verwaltete Cluster-Plattform, die die Ausführung von Big-Data-Frameworks wie Apache Hadoop und vereinfachtApache Spark, AWS um riesige Datenmengen zu verarbeiten und zu analysieren. Die Verwendung dieser Frameworks und verwandter Open-Source-Projekte, können Sie Daten zu Analysezwecken und Business-Intelligence-Workloads verarbeiten. Mit Amazon EMR können Sie auch große Datenmengen in und aus anderen AWS Datenspeichern und Datenbanken transformieren und verschieben.

Sie können Apache Iceberg-Cluster in Amazon EMR verwenden, um mit S3 Tables zu arbeiten, indem Sie in einer Spark-Sitzung eine Verbindung zu Tabellen-Buckets herstellen. Um eine Verbindung zu Tabellen-Buckets in Amazon EMR herzustellen, können Sie die AWS Analytics-Services-Integration über AWS Glue Data Catalog oder den Open-Source-Amazon S3-Tabellenkatalog für den Apache Iceberg Kundenkatalog verwenden.

Anmerkung

S3 Tables wird auf Amazon EMR Version 7.5 oder höher unterstützt.

Herstellen einer Verbindung zu S3-Table-Buckets mit Spark auf einem Iceberg-Cluster von Amazon EMR

In diesem Verfahren richten Sie einen Amazon EMR-Cluster ein, für den Sie konfiguriert sind, Apache Iceberg und starten dann eine Spark Sitzung, die eine Verbindung zu Ihren Tabellen-Buckets herstellt. Sie können dies mithilfe der AWS Analytics-Services-Integration einrichten oder den Open-Source-Amazon S3-Tabellenkatalog für den Apache Iceberg Kundenkatalog verwenden. AWS Glue Weitere Informationen über den Client-Katalog finden Sie unter Zugreifen auf Tabellen mithilfe der Amazon S3 S3-Tabellen Iceberg REST Endpunkt.

Wählen Sie aus den folgenden Optionen Ihre Methode zur Verwendung von Tabellen mit Amazon EMR aus.

Amazon S3 Tables Catalog for Apache Iceberg

Die folgenden Voraussetzungen sind erforderlich, um Tabellen mit Amazon EMR mithilfe des Spark Amazon S3 S3-Tabellenkatalogs für Apache Iceberg abzufragen.

Voraussetzungen
  • Sie fügen die Richtlinie AmazonS3TablesFullAccess an die von Ihnen für Amazon EMR verwendete IAM-Rolle an.

So richten Sie einen Amazon EMR-Cluster für die Abfrage von Tabellen ein mit Spark
  1. Erstellen Sie einen Cluster mit der folgenden Konfiguration. Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie die user input placeholders (Platzhalter für Benutzereingaben) durch Ihre Informationen.

    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. Verbinden Sie sich über SSH mit dem Spark-Primärknoten.

  3. Um eine Spark-Sitzung für Iceberg zu initialisieren, die eine Verbindung zu Ihrem Tabellen-Bucket herstellt, geben Sie den folgenden Befehl ein. Ersetzen Sie das user input placeholders durch Ihren Tabellen-Bucket ARN.

    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. Fragen Sie Ihre Tabellen mit Spark SQL ab. Beispiele für Abfragen finden Sie unter Abfragen von S3-Tabellen mit Spark SQL.

AWS analytics services integration

Die folgenden Voraussetzungen sind erforderlich, um Tabellen mit Spark Amazon EMR mithilfe der AWS Analytics-Services-Integration abzufragen.

Voraussetzungen
So richten Sie einen Amazon EMR-Cluster für die Abfrage von Tabellen ein mit Spark
  1. Erstellen Sie einen Cluster mit der folgenden Konfiguration. Um dieses Beispiel zu verwenden, ersetzen Sie die user input placeholder Werte durch Ihre eigenen Informationen.

    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. Verbinden Sie sich über SSH mit dem Spark-Primärknoten.

  3. Geben Sie den folgenden Befehl ein, um eine Spark-Sitzung für Iceberg zu initialisieren, die eine Verbindung zu Ihren Tabellen herstellt. Ersetzen Sie user input placeholders durch Ihre Informationen.

    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. Fragen Sie Ihre Tabellen mit Spark SQL ab. Beispiele für Abfragen finden Sie unter Abfragen von S3-Tabellen mit Spark SQL.

Anmerkung

Wenn Sie den DROP TABLE PURGE Befehl mit Amazon EMR verwenden:

  • Amazon EMR Version 7.5

    Stellen Sie die Spark-Konfiguration spark.sql.catalog.your-catalog-name.cache-enabled auf einfalse. Ist diese Konfiguration auf true gesetzt, führen Sie den Befehl in einer neuen Sitzung oder Anwendung aus, sodass der Tabellen-Cache nicht aktiviert wird.

  • Amazon EMR-Versionen höher als 7.5

    DROP TABLE wird nicht unterstützt. Sie können die DeleteTable REST-API für S3-Tabellen verwenden, um eine Tabelle zu löschen.