Ausführung von ETL-Jobs in Amazon-S3-Tabellen mit AWS Glue - Amazon Simple Storage Service

Ausführung von ETL-Jobs in Amazon-S3-Tabellen mit AWS Glue

AWS Glue ist ein Serverless-Datenintegrationsdienst, der es Analytics-Benutzern erleichtert, Daten aus mehreren Quellen zu erkennen, vorzubereiten, zu verschieben und zu integrieren. Sie können AWS Glue-Aufträge verwenden, um Extract, Transform, Load (ETL) Pipelines auszuführen und Daten in Ihren Data Lake zu laden. Weitere Informationen über AWS Glue finden Sie unter Was ist AWS Glue? im AWS Glue-Entwicklerhandbuch.

Ein AWS Glue-Auftrag kapselt ein Skript ein, das eine Verbindung zu den Quelldaten herstellt, verarbeitet es und schreibt es dann in Ihr Datenziel. In der Regel führt ein Auftrag Extraktions-, Transformations- und Ladeskripts (Extract, Transform and Load, ETL) aus. Jobs können Skripte ausführen, die für Apache Spark-Laufzeitumgebungen entwickelt wurden. Sie können Auftragsausführungen überwachen, um mehr über Laufzeitmetriken wie Bearbeitungsstatus, Dauer und Startzeit zu erfahren.

Sie können AWS Glue-Jobs zur Verarbeitung von Daten in Ihren S3-Tabellen verwenden, indem Sie über die Integration mit AWS-Analytikservices eine Verbindung zu Ihren Tabellen herstellen oder sich direkt über den Amazon S3 Tables Iceberg REST-Endpunkt oder den Amazon S3 Tables Catalog für Apache Iceberg verbinden. Dieses Handbuch behandelt die grundlegenden Schritte für den Einstieg in die Verwendung von AWS Glue S3 Tables, darunter:

Wählen Sie Ihre Zugriffsmethode auf der Grundlage Ihrer spezifischen AWS Glue ETL-Jobanforderungen:

  • AWS-Integration von Analytikservices (empfohlen) – Empfohlen, wenn Sie eine zentralisierte Metadatenverwaltung über mehrere AWS-Analytikservices hinweg benötigen, vorhandene AWS Glue-Datenkatalogberechtigungen und eine detaillierte Zugriffskontrolle mit Lake Formation nutzen möchten oder Produktions-ETL-Pipelines erstellen, die mit anderen AWS-Services wie Athena oder Amazon EMR integriert sind.

  • Amazon S3 Tables Iceberg REST-Endpunkt – Empfohlen, wenn Sie eine Verbindung zu S3-Tabellen von Abfrage-Engines von Drittanbietern herstellen müssen, die Apache Iceberg unterstützen, benutzerdefinierte ETL-Anwendungen erstellen müssen, die direkten REST-API-Zugriff erfordern, oder wenn Sie die Kontrolle über Katalogvorgänge benötigen, ohne von AWS Glue-Datenkatalog abhängig zu sein.

  • Amazon S3 Tables Katalog für Apache Iceberg – Bitte verwenden Sie diesen ausschließlich für ältere Anwendungen oder spezifische programmatische Szenarien, die die Java-Client-Bibliothek erfordern. Diese Methode wird aufgrund des zusätzlichen JAR Abhängigkeitsmanagements und der Komplexität nicht für die Implementierung neuer AWS Glue-ETL-Jobs empfohlen.

Anmerkung

Schritt 1: Voraussetzungen

Bevor Sie Tabellen aus einem AWS Glue Job abfragen können, müssen Sie eine IAM-Rolle konfigurieren, mit der der Job ausgeführt werden AWS Glue kann. Wählen Sie Ihre Zugriffsmethode, um sich über die spezifischen Voraussetzungen für diese Methode zu informieren.

AWS analytics services integration (Recommended)

Voraussetzungen, die erforderlich sind, um die AWS-Analytikintegration von S3 Tables zur Ausführung von AWS Glue Jobs zu verwenden.

Amazon S3 Tables Iceberg-REST endpoint

Voraussetzungen für die Verwendung des Amazon-S3-Tables-Iceberg REST-Endpunkts zur Ausführung von AWS Glue ETL-Jobs.

Amazon S3 Tables Catalog for Apache Iceberg

Voraussetzungen: Verwenden Sie den Amazon S3 Tables Catalog für Apache Iceberg, um AWS Glue-ETL-Aufträge auszuführen.

  • Erstellen Sie eine IAM-Rolle für AWS Glue.

    • Hängen Sie die von AmazonS3TablesFullAccess verwaltete Richtlinie an die Rolle an.

    • Hängen Sie die von AmazonS3FullAccess verwaltete Richtlinie an die Rolle an.

    • Um den Amazon S3 Tables-Katalog für verwenden zu können, müssen Apache Iceberg Sie den Client-Katalog herunterladen JAR und in einen S3-Bucket hochladen.

      Herunterladen des Katalogs JAR
      1. Suchen Sie auf Maven Central nach der neuesten Version. Sie können die JAR von Maven Central mit Ihrem Browser oder mit dem folgenden Befehl herunterladen. Stellen Sie sicher, dass Sie die Versionsnummer durch die neueste Version ersetzen.

        wget https://repo1.maven.org/maven2/software/amazon/s3tables/s3-tables-catalog-for-iceberg-runtime/0.1.5/s3-tables-catalog-for-iceberg-runtime-0.1.5.jar
      2. Laden Sie das Heruntergeladene JAR in einen S3-Bucket hoch, auf den Ihre AWS Glue IAM-Rolle zugreifen kann. Sie können den folgenden AWS CLI-Befehl verwenden, um die JAR hochzuladen. Achten Sie darauf, die Versionsnummer durch die neueste Version und den Bucket-Namen und -Pfad durch Ihre eigenen zu ersetzen.

        aws s3 cp s3-tables-catalog-for-iceberg-runtime-0.1.5.jar s3://amzn-s3-demo-bucket/jars/

Schritt 2 – Erstellen Sie ein Skript, um eine Verbindung zu Tabellen-Buckets herzustellen.

Um auf Ihre Tabellendaten zuzugreifen, wenn Sie einen AWS Glue ETL-Job ausführen, konfigurieren Sie dafür eine Spark Sitzung, Apache Iceberg die eine Verbindung zu Ihrem S3-Tabellen-Bucket herstellt. Sie können ein vorhandenes Skript ändern, um eine Verbindung zu Ihrem Tabellen-Bucket herzustellen, oder ein neues Skript erstellen. Weitere Informationen zum Erstellen von AWS Glue Skripten finden Sie unter Tutorial: Ein AWS Glue for Spark-Skript schreiben im AWS GlueEntwicklerhandbuch.

Sie können die Sitzung so konfigurieren, dass sie über eine der folgenden Zugriffsmethoden für S3 Tables eine Verbindung zu Ihren Tabellen-Buckets herstellt:

  • Integration der AWS-Analytikservices für S3 Tables (empfohlen)

  • Amazon S3 Tables Iceberg REST-Endpunkt

  • Amazon S3 Tables Katalog für Apache Iceberg

Wählen Sie aus den folgenden Zugriffsmethoden, um Anweisungen zur Einrichtung und Konfigurationsbeispiele einzusehen.

AWS analytics services integration (Recommended)

Als Voraussetzung für das Abfragen von Tabellen mit oder Spark unter AWS Glue Verwendung der AWS Analytics Services-Integration müssen Sie Ihre Tabellen-Buckets in AWS Analytics-Services integrieren

Sie können die Verbindung zu Ihrem Tabellen-Bucket über eine Spark-Sitzung in einem Job oder mit AWS Glue Studio-Magics in einer interaktiven Sitzung konfigurieren. Um die folgenden Beispiele zu verwenden, ersetzen Sie die Platzhalterwerte durch die Informationen für Ihren eigenen Tabellen-Bucket.

Verwenden eines PySpark-Skripts

Verwenden Sie den folgenden Codeausschnitt in einem PySpark Skript, um einen AWS Glue Job so zu konfigurieren, dass er mithilfe der Integration eine Verbindung zu Ihrem Tabellen-Bucket herstellt.

spark = SparkSession.builder.appName("SparkIcebergSQL") \ .config("spark.jars.packages", "org.apache.iceberg:iceberg-spark-runtime-3.4_2.12:1.4.2") \ .config("spark.sql.extensions", "org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions") \ .config("spark.sql.defaultCatalog","s3tables") \ .config("spark.sql.catalog.s3tables", "org.apache.iceberg.spark.SparkCatalog") \ .config("spark.sql.catalog.s3tables.catalog-impl", "org.apache.iceberg.aws.glue.GlueCatalog") \ .config("spark.sql.catalog.s3tables.glue.id", "111122223333:s3tablescatalog/amzn-s3-demo-table-bucket") \ .config("spark.sql.catalog.s3tables.warehouse", "s3://amzn-s3-demo-table-bucket/warehouse/") \ .getOrCreate()
Verwenden einer interaktiven AWS Glue-Sitzung

Wenn Sie eine interaktive Notebook-Sitzung mit AWS Glue 5.0 verwenden, geben Sie vor der Codeausführung dieselben Konfigurationen mithilfe von %%configure-Magic in einer Zelle an.

%%configure {"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.glue.id=111122223333:s3tablescatalog/amzn-s3-demo-table-bucket --conf spark.sql.catalog.s3tables.warehouse=s3://amzn-s3-demo-table-bucket/warehouse/"}
Amazon S3 Tables Iceberg-REST endpoint

Sie können die Verbindung zu Ihrem Tabellen-Bucket über eine Spark-Sitzung in einem Job oder mit AWS Glue Studio-Magics in einer interaktiven Sitzung konfigurieren. Um die folgenden Beispiele zu verwenden, ersetzen Sie die Platzhalterwerte durch die Informationen für Ihren eigenen Tabellen-Bucket.

Verwenden eines PySpark-Skripts

Verwenden Sie den folgenden Codeausschnitt in einem PySpark Skript, um einen AWS Glue Job so zu konfigurieren, dass er über den Endpunkt eine Verbindung zu Ihrem Tabellen-Bucket herstellt.

spark = SparkSession.builder.appName("glue-s3-tables-rest") \ .config("spark.jars.packages", "org.apache.iceberg:iceberg-spark-runtime-3.4_2.12:1.4.2") \ .config("spark.sql.extensions", "org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions") \ .config("spark.sql.defaultCatalog", "s3_rest_catalog") \ .config("spark.sql.catalog.s3_rest_catalog", "org.apache.iceberg.spark.SparkCatalog") \ .config("spark.sql.catalog.s3_rest_catalog.type", "rest") \ .config("spark.sql.catalog.s3_rest_catalog.uri", "https://s3tables.Region.amazonaws.com/iceberg") \ .config("spark.sql.catalog.s3_rest_catalog.warehouse", "arn:aws:s3tables:Region:111122223333:bucket/amzn-s3-demo-table-bucket") \ .config("spark.sql.catalog.s3_rest_catalog.rest.sigv4-enabled", "true") \ .config("spark.sql.catalog.s3_rest_catalog.rest.signing-name", "s3tables") \ .config("spark.sql.catalog.s3_rest_catalog.rest.signing-region", "Region") \ .config('spark.sql.catalog.s3_rest_catalog.io-impl','org.apache.iceberg.aws.s3.S3FileIO') \ .config('spark.sql.catalog.s3_rest_catalog.rest-metrics-reporting-enabled','false') \ .getOrCreate()
Verwenden einer interaktiven AWS Glue-Sitzung

Wenn Sie eine interaktive Notebook-Sitzung mit AWS Glue 5.0 verwenden, geben Sie vor der Codeausführung dieselben Konfigurationen mithilfe von %%configure-Magic in einer Zelle an. Ersetzen Sie die Platzhalterwerte durch die Informationen für Ihren eigenen Tabellen-Bucket.

%%configure {"conf": "spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions --conf spark.sql.defaultCatalog=s3_rest_catalog --conf spark.sql.catalog.s3_rest_catalog=org.apache.iceberg.spark.SparkCatalog --conf spark.sql.catalog.s3_rest_catalog.type=rest --conf spark.sql.catalog.s3_rest_catalog.uri=https://s3tables.Region.amazonaws.com/iceberg --conf spark.sql.catalog.s3_rest_catalog.warehouse=arn:aws:s3tables:Region:111122223333:bucket/amzn-s3-demo-table-bucket --conf spark.sql.catalog.s3_rest_catalog.rest.sigv4-enabled=true --conf spark.sql.catalog.s3_rest_catalog.rest.signing-name=s3tables --conf spark.sql.catalog.s3_rest_catalog.rest.signing-region=Region --conf spark.sql.catalog.s3_rest_catalog.io-impl=org.apache.iceberg.aws.s3.S3FileIO --conf spark.sql.catalog.s3_rest_catalog.rest-metrics-reporting-enabled=false"}
Amazon S3 Tables Catalog for Apache Iceberg

Um eine Verbindung zu Tabellen über den Amazon S3 Tables Catalog für Apache Iceberg herstellen zu können, müssen Sie zunächst die neueste Katalog-JAR-Datei herunterladen und in einen S3-Bucket hochladen. Wenn Sie dann Ihren Job erstellen, fügen Sie den Pfad zum Client-Katalog JAR als speziellen Parameter hinzu. Weitere Informationen zu Auftrags-Parametern in AWS Glue finden Sie im AWS Glue-Entwicklerhandbuch unter Spezielle Parameter, die in AWS Glue-Aufträgen verwendet werden.

Sie können die Verbindung zu Ihrem Tabellen-Bucket über eine Spark-Sitzung in einem Job oder mit AWS Glue Studio-Magics in einer interaktiven Sitzung konfigurieren. Um die folgenden Beispiele zu verwenden, ersetzen Sie die Platzhalterwerte durch die Informationen für Ihren eigenen Tabellen-Bucket.

Verwenden eines PySpark-Skripts

Verwenden Sie den folgenden PySpark-Codeausschnitt in einem Skript, um einen AWS Glue-Auftrag so zu konfigurieren, dass er über JAR eine Verbindung zu Ihrem Tabellen-Bucket herstellt. Ersetzen Sie die Platzhalterwerte durch die Informationen für Ihren eigenen Tabellen-Bucket.

spark = SparkSession.builder.appName("glue-s3-tables") \ .config("spark.jars.packages", "org.apache.iceberg:iceberg-spark-runtime-3.4_2.12:1.4.2") \ .config("spark.sql.extensions", "org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions") \ .config("spark.sql.defaultCatalog", "s3tablesbucket") \ .config("spark.sql.catalog.s3tablesbucket", "org.apache.iceberg.spark.SparkCatalog") \ .config("spark.sql.catalog.s3tablesbucket.catalog-impl", "software.amazon.s3tables.iceberg.S3TablesCatalog") \ .config("spark.sql.catalog.s3tablesbucket.warehouse", "arn:aws:s3tables:Region:111122223333:bucket/amzn-s3-demo-table-bucket") \ .getOrCreate()
Verwenden einer interaktiven AWS Glue-Sitzung

Wenn Sie eine interaktive Notebook-Sitzung mit AWS Glue 5.0 verwenden, geben Sie vor der Codeausführung dieselben Konfigurationen mithilfe von %%configure-Magic in einer Zelle an. Ersetzen Sie die Platzhalterwerte durch die Informationen für Ihren eigenen Tabellen-Bucket.

%%configure {"conf": "spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions --conf spark.sql.defaultCatalog=s3tablesbucket --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:Region:111122223333:bucket/amzn-s3-demo-table-bucket", "extra-jars": "s3://amzn-s3-demo-bucket/jars/s3-tables-catalog-for-iceberg-runtime-0.1.5.jar"}

Beispielskripte

Die folgenden PySpark Beispielskripten können verwendet werden, um das Abfragen von S3-Tabellen mit einem AWS Glue-Job zu testen. Diese Skripten stellen eine Verbindung zu Ihrem Tabellen-Bucket her und führen Abfragen aus, um: einen neuen Namespace zu erstellen, eine Beispieltabelle zu erstellen, Daten in die Tabelle einzufügen und die Tabellendaten zurückzugeben. Um die Skripte zu verwenden, ersetzen Sie die Platzhalterwerte durch die Informationen für Ihren eigenen Tabellen-Bucket.

Wählen Sie je nach Ihrer Zugriffsmethode für S3 Tables aus den folgenden Skripten aus.

S3 Tables integration with AWS analytics services
from pyspark.sql import SparkSession spark = SparkSession.builder.appName("SparkIcebergSQL") \ .config("spark.jars.packages", "org.apache.iceberg:iceberg-spark-runtime-3.4_2.12:1.4.2") \ .config("spark.sql.extensions", "org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions") \ .config("spark.sql.defaultCatalog","s3tables") .config("spark.sql.catalog.s3tables", "org.apache.iceberg.spark.SparkCatalog") \ .config("spark.sql.catalog.s3tables.catalog-impl", "org.apache.iceberg.aws.glue.GlueCatalog") \ .config("spark.sql.catalog.s3tables.glue.id", "111122223333:s3tablescatalog/amzn-s3-demo-table-bucket") \ .config("spark.sql.catalog.s3tables.warehouse", "s3://amzn-s3-demo-table-bucket/bucket/amzn-s3-demo-table-bucket") \ .getOrCreate() namespace = "new_namespace" table = "new_table" spark.sql("SHOW DATABASES").show() spark.sql(f"DESCRIBE NAMESPACE {namespace}").show() spark.sql(f""" CREATE TABLE IF NOT EXISTS {namespace}.{table} ( id INT, name STRING, value INT ) """) spark.sql(f""" INSERT INTO {namespace}.{table} VALUES (1, 'ABC', 100), (2, 'XYZ', 200) """) spark.sql(f"SELECT * FROM {namespace}.{table} LIMIT 10").show()
Amazon S3 Tables Iceberg-REST endpoint
from pyspark.sql import SparkSession spark = SparkSession.builder.appName("glue-s3-tables-rest") \ .config("spark.jars.packages", "org.apache.iceberg:iceberg-spark-runtime-3.4_2.12:1.4.2") \ .config("spark.sql.extensions", "org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions") \ .config("spark.sql.defaultCatalog", "s3_rest_catalog") \ .config("spark.sql.catalog.s3_rest_catalog", "org.apache.iceberg.spark.SparkCatalog") \ .config("spark.sql.catalog.s3_rest_catalog.type", "rest") \ .config("spark.sql.catalog.s3_rest_catalog.uri", "https://s3tables.Region.amazonaws.com/iceberg") \ .config("spark.sql.catalog.s3_rest_catalog.warehouse", "arn:aws:s3tables:Region:111122223333:bucket/amzn-s3-demo-table-bucket") \ .config("spark.sql.catalog.s3_rest_catalog.rest.sigv4-enabled", "true") \ .config("spark.sql.catalog.s3_rest_catalog.rest.signing-name", "s3tables") \ .config("spark.sql.catalog.s3_rest_catalog.rest.signing-region", "Region") \ .config('spark.sql.catalog.s3_rest_catalog.io-impl','org.apache.iceberg.aws.s3.S3FileIO') \ .config('spark.sql.catalog.s3_rest_catalog.rest-metrics-reporting-enabled','false') \ .getOrCreate() namespace = "s3_tables_rest_namespace" table = "new_table_s3_rest" spark.sql("SHOW DATABASES").show() spark.sql(f"DESCRIBE NAMESPACE {namespace}").show() spark.sql(f""" CREATE TABLE IF NOT EXISTS {namespace}.{table} ( id INT, name STRING, value INT ) """) spark.sql(f""" INSERT INTO {namespace}.{table} VALUES (1, 'ABC', 100), (2, 'XYZ', 200) """) spark.sql(f"SELECT * FROM {namespace}.{table} LIMIT 10").show()
Amazon S3 Tables Catalog for Apache Iceberg
from pyspark.sql import SparkSession #Spark session configurations spark = SparkSession.builder.appName("glue-s3-tables") \ .config("spark.jars.packages", "org.apache.iceberg:iceberg-spark-runtime-3.4_2.12:1.4.2") \ .config("spark.sql.extensions", "org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions") \ .config("spark.sql.defaultCatalog", "s3tablesbucket") \ .config("spark.sql.catalog.s3tablesbucket", "org.apache.iceberg.spark.SparkCatalog") \ .config("spark.sql.catalog.s3tablesbucket.catalog-impl", "software.amazon.s3tables.iceberg.S3TablesCatalog") \ .config("spark.sql.catalog.s3tablesbucket.warehouse", "arn:aws:s3tables:Region:111122223333:bucket/amzn-s3-demo-table-bucket") \ .getOrCreate() #Script namespace = "new_namespace" table = "new_table" spark.sql(f"CREATE NAMESPACE IF NOT EXISTS s3tablesbucket.{namespace}") spark.sql(f"DESCRIBE NAMESPACE {namespace}").show() spark.sql(f""" CREATE TABLE IF NOT EXISTS {namespace}.{table} ( id INT, name STRING, value INT ) """) spark.sql(f""" INSERT INTO {namespace}.{table} VALUES (1, 'ABC', 100), (2, 'XYZ', 200) """) spark.sql(f"SELECT * FROM {namespace}.{table} LIMIT 10").show()

Schritt 3 – Erstellen Sie einen AWS Glue-Auftrag, der Tabellen abfragt.

Die folgenden Verfahren zeigen, wie Sie AWS Glue Jobs einrichten, die eine Verbindung zu Ihren S3-Tabellen-Buckets herstellen. Hierfür können Sie die -Konsole AWS CLI oder die -Konsole mit AWS Glue Studio Skripteditor verwenden. Weitere Informationen finden Sie unter Aufträge erstellen in AWS Glue des AWS Glue-Benutzerhandbuchs.

Das folgende Verfahren zeigt, wie Sie mit dem AWS Glue Studio Skript-Editor einen ETL-Job erstellen, der Ihre S3-Tabellen abfragt.

  1. Öffnen Sie die AWS Glue-Konsole unter https://console.aws.amazon.com/glue/.

  2. Wählen Sie ETL-Aufträge aus dem Navigationsbereich.

  3. Wählen Sie Skripteditor und dann Skript hochladen und laden Sie das Skript hoch, das PySpark Sie für die Abfrage von S3-Tabellen erstellt haben.

  4. Wählen Sie die Registerkarte Jobdetails und geben Sie Folgendes für Basiseigenschaften ein.

    • Geben Sie unter Name einen Namen für den Auftrag ein.

    • Wählen Sie für die IAM-Rolle die Rolle aus, die Sie für AWS Glue erstellt haben.

  5. (Optional) Wenn Sie die Zugriffsmethode Amazon S3 Tables Catalog als Apache Iceberg Zugriffsmethode verwenden, erweitern Sie Erweiterte Eigenschaften und geben Sie für Dependent JAR-Pfad als Voraussetzung die S3-URI der Client-Katalog-JAR-Datei ein, die Sie in einen S3-Bucket hochgeladen haben. Zum Beispiel s3://amzn-s3-demo-bucket1/jars/s3-tables-catalog-for-iceberg-runtime-0.1.5.jar

  6. Wählen Sie Speichern, um den Auftrag zu erstellen.

  7. Wählen Sie Ausführen, starten Sie den Job und überprüfen Sie den Jobstatus auf der Registerkarte Ausführungen.

Das folgende Verfahren zeigt, wie Sie mithilfe des AWS CLI einen ETL-Job erstellen, der Ihre S3 Tables abfragt. Um die Befehle zu verwenden, ersetzen Sie die Platzhalterwerte durch Ihre eigenen.

  1. Erstellen Sie einen AWS Glue-Auftrag.

    aws glue create-job \ --name etl-tables-job \ --role arn:aws:iam::111122223333:role/AWSGlueServiceRole \ --command '{ "Name": "glueetl", "ScriptLocation": "s3://amzn-s3-demo-bucket1/scripts/glue-etl-query.py", "PythonVersion": "3" }' \ --default-arguments '{ "--job-language": "python", "--class": "GlueApp" }' \ --glue-version "5.0"
    Anmerkung

    (Optional) Wenn Sie die Apache Iceberg Zugriffsmethode Amazon S3 Tables Catalog für den Zugriff verwenden, fügen Sie den Client-Katalog JAR --default-arguments mithilfe des --extra-jars Parameters hinzu. Ersetzen Sie die Eingabe-Platzhalter durch Ihre eigenen, wenn Sie den Parameter hinzufügen.

    "--extra-jars": "s3://amzn-s3-demo-bucket/jar-path/s3-tables-catalog-for-iceberg-runtime-0.1.5.jar"
  2. Starten Sie Ihren Auftrag.

    aws glue start-job-run \ --job-name etl-tables-job
  3. Um Ihren Jobstatus zu überprüfen, kopieren Sie die Ausführungs-ID aus dem vorherigen Befehl und geben Sie sie in den folgenden Befehl ein.

    aws glue get-job-run --job-name etl-tables-job \ --run-id jr_ec9a8a302e71f8483060f87b6c309601ea9ee9c1ffc2db56706dfcceb3d0e1ad