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 den Betrieb von Big-Data-Frameworks vereinfacht, wie z. Apache Hadoop and Apache 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 Folgendes verwenden … Apache Iceberg Cluster in Amazon EMR, um mit S3-Tabellen zu arbeiten, indem eine Verbindung zu Tabellen-Buckets in einem Spark Sitzung. Um eine Verbindung zu Tabellen-Buckets in Amazon EMR herzustellen, können Sie die AWS Analytics-Services-Integration über verwenden AWS Glue Data Catalog, oder Sie können den Open-Source-Amazon S3-Tabellenkatalog für Apache Iceberg Kundenkatalog.

Anmerkung

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

Verbindung zu S3-Tabellen-Buckets herstellen mit Spark auf einem Amazon EMR Iceberg Cluster

In diesem Verfahren richten Sie einen Amazon EMR-Cluster ein, der konfiguriert ist für Apache Iceberg und starten Sie dann ein 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 AWS GlueApache Iceberg Kundenkatalog. 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 abzufragen Spark auf Amazon EMR unter Verwendung des Amazon S3 S3-Tabellenkatalogs für Apache Iceberg.

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. Stellen Sie eine Verbindung zum Spark primärer Knoten, der SSH verwendet.

  3. Um ein zu initialisieren Spark Sitzung für Iceberg um eine Verbindung zu Ihrem Tabellen-Bucket herzustellen, 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 ab mit Spark SQL (SQL). 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 abzufragen Spark auf Amazon EMR mithilfe der AWS Analytics-Services-Integration.

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. Stellen Sie eine Verbindung zum Spark primärer Knoten, der SSH verwendet.

  3. Geben Sie den folgenden Befehl ein, um eine zu initialisieren Spark Sitzung für Iceberg das verbindet sich mit Ihren Tabellen. 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.