

 Amazon Redshift unterstützt die Verwendung von Python-UDFs nach dem 30. Juni 2026 nicht mehr. Wir werden damit beginnen, es schrittweise durchzusetzen. Weitere Informationen zum Ende der Lebensdauer von Python und zu den Migrationsoptionen finden Sie im [ Blogbeitrag](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/), der am 30. Juni 2025 veröffentlicht wurde. 

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.

# Fragen Sie Amazon S3-Tabellen von Amazon Redshift aus ab
<a name="querying-s3Tables"></a>

Amazon Redshift ist in Amazon S3-Tabellen-Buckets integriert, sodass Sie mithilfe von Amazon Redshift auf S3-Tabellenressourcen zugreifen können. Ganz gleich, ob Sie gerade erst anfangen oder Tausende von Tabellen in Ihrer Iceberg-Umgebung verwalten, Tabellen-Buckets vereinfachen das Data Lake-Management in jeder Größenordnung. Weitere Informationen finden Sie unter [Tabellen-Buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-buckets.html).

In diesem Thema werden die ersten Schritte mit Amazon S3-Tabellen und Redshift sowie der Zugriff auf S3-Tables-Objekte mithilfe von Amazon Redshift beschrieben.

## Voraussetzungen
<a name="querying-s3Tables-prerequisites"></a>

Bevor Sie S3-Tabellen von Amazon Redshift aus abfragen, müssen Sie S3-Tabellen mit integrieren. AWS Glue Data Catalog Anweisungen finden Sie unter [ Integrieren von Amazon S3-Tabellen mit. AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/glue-federation-s3tables.html)

Nach der Integration von S3-Tabellen können IAM-Prinzipale mit den erforderlichen S3-Tabellen und AWS Glue IAM-Berechtigungen S3-Tabellen über die erkennen. AWS Glue Data Catalog AWS Glue Data Catalog

**Anmerkung**  
Methode 3 (Auto-mounted awsdatacatalog) hat zusätzliche Voraussetzungen. Details dazu finden Sie unter [Methode 3: Auto-mounted awsdatacatalog](#querying-s3Tables-method3).

## Fragen Sie S3-Tabellen von Amazon Redshift ab
<a name="querying-s3Tables-steps"></a>

Gehen Sie folgendermaßen vor, um mit der Abfrage von S3-Tabellen zu beginnen:
+ Schritt 1: Erstellen Sie eine IAM-Rolle für Amazon Redshift
+ Schritt 2: Fügen Sie Ihrem Amazon Redshift-Cluster eine IAM-Rolle hinzu
+ Schritt 3: Fragen Sie S3-Tabellen von Amazon Redshift ab

### Schritt 1: Erstellen Sie eine IAM-Rolle für Amazon Redshift
<a name="querying-s3Tables-step1"></a>

Ihr Cluster benötigt eine Autorisierung für den Zugriff auf den externen S3-Tabellen-Katalog in. AWS Glue Um diese Autorisierung bereitzustellen, verwendet Amazon Redshift eine IAM-Rolle, die Ihrem Cluster zugeordnet ist. Erstellen Sie eine IAM-Rolle mit den folgenden Richtlinienberechtigungen.

**Anmerkung**  
Ersetzen Sie in der Richtlinie und den Beispielen unten `us-west-2` durch Ihre AWS Region und `111122223333` Ihre AWS Konto-ID.

**Um eine Richtlinie zu erstellen: **

1. Öffnen Sie unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) die IAM-Konsole.

1. Wählen Sie im Navigationsbereich **Richtlinien**.

1. Wählen Sie **Richtlinie erstellen** aus.

1. Wählen Sie den Tab **JSON**.

1. Fügen Sie das folgende JSON-Richtliniendokument ein:

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "GlueDataCatalogPermissions",
         "Effect": "Allow",
         "Action": [
           "glue:GetCatalog",
           "glue:GetDatabase",
           "glue:GetTable",
           "glue:GetTables",
           "glue:UpdateTable",
           "glue:DeleteTable"
         ],
         "Resource": [
           "arn:aws:glue:us-west-2:111122223333:catalog",
           "arn:aws:glue:us-west-2:111122223333:catalog/s3tablescatalog",
           "arn:aws:glue:us-west-2:111122223333:catalog/s3tablescatalog/*",
           "arn:aws:glue:us-west-2:111122223333:database/s3tablescatalog/*/*",
           "arn:aws:glue:us-west-2:111122223333:table/s3tablescatalog/*/*/*",
           "arn:aws:glue:us-west-2:111122223333:database/*",
           "arn:aws:glue:us-west-2:111122223333:table/*/*"
         ]
       },
       {
         "Sid": "S3TablesDataAccessPermissions",
         "Effect": "Allow",
         "Action": [
           "s3tables:GetTableBucket",
           "s3tables:GetNamespace",
           "s3tables:GetTable",
           "s3tables:GetTableMetadataLocation",
           "s3tables:GetTableData",
           "s3tables:ListTableBuckets",
           "s3tables:CreateTable",
           "s3tables:PutTableData",
           "s3tables:UpdateTableMetadataLocation",
           "s3tables:ListNamespaces",
           "s3tables:ListTables",
           "s3tables:DeleteTable"
         ],
         "Resource": [
           "arn:aws:s3tables:us-west-2:111122223333:bucket/*",
           "arn:aws:s3tables:us-west-2:111122223333:bucket/*/table/*"
         ]
       }
     ]
   }
   ```

1. Wählen Sie **Richtlinie prüfen**.

1. Geben Sie auf der ** Seite „Richtlinie ** überprüfen“ `GlueCatalogS3Tables_Policy` den ** Namen ein**. Geben Sie optional eine Beschreibung ein. Prüfen Sie die Zusammenfassung der Richtlinien und wählen Sie dann Richtlinie ** erstellen aus**.

**So erstellen Sie eine IAM-Rolle für Amazon Redshift: **

1. Öffnen Sie die [IAM-Konsole](https://console.aws.amazon.com/iam/).

1. Wählen Sie im Navigationsbereich **Roles** aus.

1. Wählen Sie **Create role** (Rolle erstellen) aus.

1. Wählen Sie **AWS Service ** als vertrauenswürdige Entität und dann ** Redshift ** als Anwendungsfall.

1. Wählen ** Sie unter Anwendungsfall für andere AWS Dienste ** die Option ** Redshift — Customizable aus und wählen Sie ** dann Next aus**. **

1. Hängen Sie auf der ** Seite „Berechtigungen ** hinzufügen“ die `GlueCatalogS3Tables_Policy` Richtlinie an, die Sie oben erstellt haben. Wählen Sie **Weiter** aus.

1. Geben Sie in **Role name (Rollenname)** einen Namen für die Rolle ein, z. B. `RedshiftS3TablesRole`.

1. Überprüfen Sie die Informationen und wählen Sie dann Rolle ** erstellen aus**.

1. Wählen Sie im Navigationsbereich **Rollen**. Wählen Sie den Namen Ihrer neuen Rolle aus, um die Zusammenfassung anzuzeigen, und kopieren Sie dann den ** Rollen-ARN ** in Ihre Zwischenablage. Sie werden diesen ARN verwenden, wenn Sie externe Schemas für S3-Tabellen-Namespaces erstellen.

**Anmerkung**  
Beschränken Sie sich auf bestimmte Ressourcen, indem Sie den Platzhalter durch exakte Amazon-Ressourcennamen (ARNs) ersetzen.

### Schritt 2: Fügen Sie Ihrem Amazon Redshift-Cluster eine IAM-Rolle hinzu
<a name="querying-s3Tables-step2"></a>

Ordnen Sie die IAM-Rolle, die Sie in Schritt 1 konfiguriert haben, Ihrem Amazon Redshift-Cluster zu.

**Verwenden der AWS Managementkonsole: **

1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon Redshift-Konsole unter [ https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/).

1. Wählen Sie im Navigationsmenü **Clusters** (Cluster) und dann den Cluster aus, den Sie aktualisieren möchten.

1. Wählen Sie für ** Aktionen ** die Option IAM-Rollen ** verwalten aus**, um die aktuelle Liste der IAM-Rollen anzuzeigen, die dem Cluster zugeordnet sind.

1. Wählen Sie auf der ** Seite ** „IAM-Rollen verwalten“ die IAM-Rolle aus, die Sie hinzufügen möchten, und klicken Sie dann auf IAM-Rolle hinzufügen. ** **

1. Wählen Sie **Done (Beenden)**, um Ihre Änderungen zu speichern.

**Verwenden der CLI: AWS **

Führen Sie den folgenden Befehl aus, um eine IAM-Rolle einem vorhandenen Cluster oder Namespace zuzuordnen. Ersetzen Sie `my-redshift-cluster` oder `my-redshift-namespace` durch Ihre Cluster-ID oder Ihren Namespace und `111122223333` durch Ihre AWS Konto-ID.

```
aws redshift modify-cluster-iam-roles \
    --cluster-identifier my-redshift-cluster \
    --add-iam-roles arn:aws:iam::111122223333:role/RedshiftS3TablesRole

-- for serverless
aws redshift-serverless update-namespace \
    --namespace-name my-redshift-namespace \
    --iam-roles "arn:aws:iam::111122223333:role/RedshiftS3TablesRole"
```

Weitere Informationen finden Sie unter [Verknüpfen von IAM-Rollen mit Clustern](https://docs.aws.amazon.com/redshift/latest/mgmt/copy-unload-iam-role.html) im *Amazon-Redshift-Verwaltungshandbuch*.

### Schritt 3: Fragen Sie S3-Tabellen von Amazon Redshift ab
<a name="querying-s3Tables-step3"></a>

Wenn Sie S3-Tabellen mit integrieren AWS Glue Data Catalog, erstellt der Service eine föderierte Katalogstruktur, die S3-Tabellen-Ressourcen AWS Glue Katalogobjekten zuordnet:
+ Ein S3-Tabellen-Bucket wird zu einem ** Katalog ** im AWS Glue Data Catalog.
+ Ein S3-Namespace wird zu einer **AWS Glue Datenbank**.
+ Eine S3-Tabelle wird zu einem **AWS Glue Tabellenobjekt**.

Die Integration erstellt die folgende Hierarchie:
+ **Verbundkatalog: ** `s3tablescatalog` (automatisch erstellt)
+ **Untergeordnete Kataloge: ** Jeder S3-Tabellen-Bucket wird zu einem untergeordneten Katalog unter. `s3tablescatalog`
+ **Datenbanken: ** Jeder S3-Namespace innerhalb eines Tabellen-Buckets wird zu einer Datenbank.
+ **Tabellen: ** Jede S3-Tabelle in einem Namespace wird zu einer Tabelle.

Wenn Sie beispielsweise einen S3-Tabellen-Bucket `analytics-bucket` mit einem Namespace benannt haben, der eine Tabelle `sales` enthält`transactions`, lautet der vollständige Pfad in AWS Glue Data Catalog :. `s3tablescatalog/analytics-bucket/sales/transactions`

**Erstellen Sie einen Ressourcenlink **

Bevor Sie eine der drei unten aufgeführten Abfragemethoden verwenden können, müssen Sie einen Ressourcenlink in erstellen AWS Glue Data Catalog. Mithilfe von Ressourcenlinks kann Amazon Redshift über den Standardkatalog auf S3-Tabelles-Datenbanken verweisen.

*Verwenden der AWS Glue Konsole: *

1. Öffnen Sie die AWS Glue Konsole unter [ https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

1. Wählen Sie im Navigationsbereich **Datenbanken** aus.

1. Wählen Sie „**Erstellen**“ und dann „Link zur ** Ressource**“.

1. Geben Sie auf der ** Seite „Ressourcen-Link ** erstellen“ die folgenden Informationen ein:
   + **Name des Ressourcenlinks: ** Geben Sie einen Namen für den Ressourcenlink ein (z. B.`sales_resource_link`).
   + **Gemeinsam genutzte Datenbank: ** Geben Sie den Datenbankpfad für S3-Tabellen ein (z. B.`s3tablescatalog/analytics-bucket/sales`).
   + **Eigentümer der gemeinsam genutzten Datenbank: ** Geben Sie Ihre AWS Konto-ID ein.
   + **Katalog-ID der gemeinsam genutzten Datenbank: ** Geben Sie die Katalog-ID im Format ein`<account-id>:s3tablescatalog/<bucket-name>`.

1. Wählen Sie **Erstellen** aus.

*Verwenden der AWS CLI: *

```
aws glue create-database \
  --region us-west-2 \
  --cli-input-json '{
        "CatalogId": "111122223333",
        "DatabaseInput": {
            "Name": "sales_resource_link",
            "TargetDatabase": {
                "CatalogId": "111122223333:s3tablescatalog/analytics-bucket",
                "DatabaseName": "sales"
            }
        }
  }'
```

Mit diesem Befehl wird ein `sales_resource_link` in Ihrem AWS Glue Standarddatenkatalog benannter Ressourcenlink erstellt, der auf die `sales` Datenbank im S3-Tabellen-Bucket verweist`analytics-bucket`.

Sobald Ressourcenlinks erstellt wurden, bietet Amazon Redshift drei Methoden zur Abfrage von S3-Tabellen. Wählen Sie die Methode, die am besten zu Ihrem Anwendungsfall passt.

**Anmerkung**  
Um einen Ressourcenlink auf Datenbankebene zu erstellen, muss der Redshift-Administrator über die `AWS Glue:CreateDatabase` Berechtigungen für den Standardkatalog und die Datenbank verfügen, die gerade erstellt wird.

#### Methode 1: EXTERNES SCHEMA ERSTELLEN
<a name="querying-s3Tables-method1"></a>

Wird verwendet`CREATE EXTERNAL SCHEMA`, um ein externes Schema zu erstellen, das auf Ihre S3-Tabelles-Datenbank verweist. Diese Methode bietet eine explizite Kontrolle über die Benennung und Konfiguration von Schemas.

Vollständige Syntaxdetails finden Sie unter [ CREATE EXTERNAL SCHEMA ](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_SCHEMA.html) im * Amazon Redshift Database Developer Guide*.

**Beispiel**

Verwenden Sie den Datenbanknamen und die Katalog-ID aus Schritt 3. Ersetzen Sie `111122223333` durch Ihre AWS Konto-ID.

```
CREATE EXTERNAL SCHEMA s3tables_schema
FROM DATA CATALOG DATABASE 'sales_resource_link'
IAM_ROLE 'arn:aws:iam::111122223333:role/RedshiftS3TablesRole'
REGION 'us-west-2'
CATALOG_ID '111122223333';

SELECT * FROM s3tables_schema.transactions;
```

#### Methode 2: DATENBANK AUS ARN ERSTELLEN
<a name="querying-s3Tables-method2"></a>

Verwenden Sie es `CREATE DATABASE` zusammen mit der `FROM ARN` Klausel, um eine föderierte Datenbank zu erstellen, die direkt auf Ihren AWS Glue Ressourcenlink verweist. Diese Methode ordnet die AWS Glue Datenbank automatisch einer Redshift-Datenbank zu.

Vollständige Syntaxdetails finden Sie unter [ CREATE DATABASE ](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_DATABASE.html) im * Amazon Redshift Database Developer Guide. *

**Beispiel**

Ersetzen Sie `111122223333` durch Ihre AWS Konto-ID.

```
CREATE DATABASE s3tables_db
FROM ARN 'arn:aws:glue:us-west-2:111122223333:database/sales_resource_link'
WITH DATA CATALOG SCHEMA analytics_schema
IAM_ROLE 'arn:aws:iam::111122223333:role/RedshiftS3TablesRole';

SELECT * FROM s3tables_db.analytics_schema.transactions;
```

#### Methode 3: Auto-mounted awsdatacatalog
<a name="querying-s3Tables-method3"></a>

Amazon Redshift kann AWS Glue Data Catalog Datenbanken, einschließlich S3-Tabellen-Ressourcenlinks, automatisch über die Datenbank mounten. `awsdatacatalog` Für diese Methode muss der Verbundzugriff auf Spectrum (FAS) in Ihrem Cluster aktiviert sein.

**Voraussetzungen**

Um die automatisch gemountete `awsdatacatalog` Datenbank verwenden zu können, müssen Sie den Verbundzugriff auf Spectrum aktivieren. Auf diese Weise kann Amazon Redshift Anmeldeinformationen für den Zugriff AWS Glue Data Catalog auf externe Datenquellen verwenden.

So aktivieren Sie den Verbundzugriff auf Spectrum:

1. Stellen Sie mithilfe einer IAM-Identität mit den folgenden Berechtigungen eine Verbindung zu Ihrem Redshift-Cluster her:
   + `redshift:GetClusterCredentialsWithIAM`(für bereitgestellte Cluster) oder `redshift-serverless:GetCredentials` (für Serverless)
   + `AmazonS3ReadOnlyAccess`
   + `AWSGlueConsoleFullAccess`
   + Berechtigungen für S3-Tabellen (wie in Schritt 1 definiert)

1. Wenn Sie eine Verbindung mit einer IAM-Identität herstellen, erstellt Amazon Redshift automatisch einen Datenbankbenutzer mit dem Präfix `IAM:` (für Benutzer) oder `IAMR:` (für Rollen).

1. Als Cluster-Administrator gewähren Sie den Verbundbenutzern Berechtigungen für den Zugriff auf das externe Schema. `my_user`Ersetzen Sie durch Ihre IAM-Rolle oder Ihren Benutzernamen:

   ```
   GRANT ALL ON SCHEMA awsdatacatalog TO "IAMR:my_user";
   ```

Eine ausführliche Anleitung zur Einrichtung des Verbundzugriffs finden Sie im Amazon Redshift Management Guide unter [ Using a Federated Identity to manage Amazon Redshift-Zugriff auf lokale Ressourcen und externe Amazon Redshift ](https://docs.aws.amazon.com/redshift/latest/mgmt/authorization-fas-spectrum.html) Spectrum-Tabellen*. *

**S3-Tabellen abfragen **

Sobald der Verbundzugriff konfiguriert ist, überprüfen Sie die bereitgestellten Schemas und fragen Sie Ihre S3-Tabellen ab.

Überprüfen Sie die bereitgestellten Schemas:

```
SHOW SCHEMAS FROM DATABASE awsdatacatalog;
```

Fragen Sie S3-Tabellen mithilfe des Ressourcen-Linknamens aus Schritt 3 ab:

```
SELECT * FROM awsdatacatalog.sales_resource_link.transactions;
```