

 Amazon Redshift unterstützt UDFs ab Patch 198 nicht mehr die Erstellung von neuem Python. Das bestehende Python UDFs wird bis zum 30. Juni 2026 weiterhin funktionieren. Weitere Informationen finden Sie im [Blog-Posting](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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 S3-Tabellen von Amazon Redshift ab
<a name="querying-s3Tables"></a>

Amazon Redshift ist in Amazon S3 S3-Tabellen-Buckets integriert, sodass Sie mit 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 die Verwaltung von Data Lakes 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 Tables 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 abfragen, müssen Sie S3-Tabellen mit integrieren. AWS Glue Data Catalog Anweisungen finden Sie unter [Integrieren von Amazon S3 S3-Tabellen mit AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/glue-federation-s3tables.html).

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

**Anmerkung**  
Methode 3 (Automatisch gemounteter awsdatacatalog) erfordert zusätzliche Voraussetzungen. Details dazu finden Sie unter [Methode 3: Automatisch gemounteter AWS-Datenkatalog](#querying-s3Tables-method3).

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

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

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

Ihr Cluster benötigt eine Autorisierung, um auf den externen S3-Tabellen-Katalog zugreifen zu können. 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 es in der Richtlinie und den Beispielen unten `us-west-2` durch Ihre AWS Region und `111122223333` durch 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. Lesen Sie die Richtlinienübersicht 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 — Anpassbar** und dann **Weiter** aus.

1. Fügen 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 verwenden diesen ARN, 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 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 Redshift-Cluster zu.

**Mithilfe der AWS Managementkonsole:**

1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon Redshift 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 **unter Aktionen** die Option **IAM-Rollen verwalten** aus, um die aktuelle Liste der mit dem Cluster verknüpften IAM-Rollen anzuzeigen.

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 AWS CLI:**

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: S3-Tabellen von Amazon Redshift abfragen
<a name="querying-s3Tables-step3"></a>

Wenn Sie S3-Tabellen mit integrieren AWS Glue Data Catalog, erstellt der Service eine föderierte Katalogstruktur, die Ressourcen von S3 Tables 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. `s3tablescatalog`
+ **Datenbanken:** Jeder S3-Namespace innerhalb eines Tabellen-Buckets wird zu einer Datenbank.
+ **Tabellen:** Jede S3-Tabelle innerhalb eines 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`, AWS Glue Data Catalog wäre der vollständige Pfad in:. `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 Tables-Datenbanken verweisen.

*Mithilfe 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 anschließend „**Ressourcenlink**“.

1. Geben Sie auf der Seite **„Ressourcenlink 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 folgenden 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"
            }
        }
  }'
```

Dieser Befehl erstellt einen Ressourcenlink mit dem Namen `sales_resource_link` in Ihrem AWS Glue Standard-Datenkatalog, 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` Berechtigung für den Standardkatalog und die zu erstellende Datenbank verfügen.

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

Verwenden Sie diese `CREATE EXTERNAL SCHEMA` Option, um ein externes Schema zu erstellen, das auf Ihre S3 Tables-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. `111122223333`Ersetzen Sie es 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 diese `CREATE DATABASE` `FROM ARN` Klausel, um eine Verbunddatenbank 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 es `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: Automatisch gemounteter AWS-Datenkatalog
<a name="querying-s3Tables-method3"></a>

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

**Voraussetzungen**

Um die automatisch gemountete `awsdatacatalog` Datenbank verwenden zu können, müssen Sie den Verbundzugriff auf Spectrum aktivieren. Dadurch kann Amazon Redshift föderierte Identitätsanmeldedaten für den Zugriff auf externe AWS Glue Data Catalog Datenquellen verwenden.

Um den Verbundzugriff auf Spectrum zu aktivieren:

1. Stellen Sie mithilfe einer IAM-Identität mit den folgenden Berechtigungen eine Connect 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. Erteilen Sie als Cluster-Administrator dem Verbundbenutzer 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";
   ```

Ausführliche Anweisungen zur Einrichtung des Verbundzugriffs finden Sie unter [Verwenden einer föderierten Identität zur Verwaltung des Amazon Redshift-Zugriffs auf lokale Ressourcen und externe Amazon Redshift Spectrum-Tabellen](https://docs.aws.amazon.com/redshift/latest/mgmt/authorization-fas-spectrum.html) im *Amazon* Redshift Management Guide.

**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 mit dem Namen des Ressourcenlinks aus Schritt 3 ab:

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