

 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.

# Beispiele für die Verwendung einer Verbundabfrage
<a name="federated_query_example"></a>

In den folgenden Beispielen wird gezeigt, wie Sie eine Verbundabfrage ausführen. Führen Sie SQL mit Ihrem SQL-Client aus, der mit der Amazon-Redshift-Datenbank verbunden ist.

## Beispiel für die Verwendung einer Verbundabfrage mit PostgreSQL
<a name="federated_query_example_postgres"></a>

Das folgende Beispiel zeigt, wie Sie eine Verbundabfrage einrichten, die auf eine Amazon-Redshift-Datenbank, eine Aurora-PostgreSQL-Datenbank und auf Amazon S3 verweist. In diesem Beispiel wird gezeigt, wie Verbundabfragen funktionieren. Um sie in Ihrer eigenen Umgebung auszuführen, ändern Sie diese so, dass sie Ihrer Umgebung entsprechen. Die Voraussetzungen hierfür finden Sie unter [Erste Schritte mit der Verwendung von Verbundabfragen an PostgreSQL](getting-started-federated.md). 

Erstellen Sie ein externes Schema, das auf eine Aurora-PostgreSQL-Datenbank verweist.

```
CREATE EXTERNAL SCHEMA apg
FROM POSTGRES
DATABASE 'database-1' SCHEMA 'myschema'
URI 'endpoint to aurora hostname'
IAM_ROLE 'arn:aws:iam::123456789012:role/Redshift-SecretsManager-RO'
SECRET_ARN 'arn:aws:secretsmanager:us-west-2:123456789012:secret:federation/test/dataplane-apg-creds-YbVKQw';
```

Erstellen Sie ein weiteres externes Schema, das auf Amazon S3 verweist, was Amazon Redshift Spectrum verwendet. Erteilen Sie außerdem die Berechtigung, das Schema zu verwenden `public`. 

```
CREATE EXTERNAL SCHEMA s3 
FROM DATA CATALOG 
DATABASE 'default' REGION 'us-west-2' 
IAM_ROLE 'arn:aws:iam::123456789012:role/Redshift-S3'; 

GRANT USAGE ON SCHEMA s3 TO public;
```

Zeigen Sie die Zeilenanzahl in der Amazon-Redshift-Tabelle an. 

```
SELECT count(*) FROM public.lineitem;
            
  count
----------
25075099
```

Zeigen Sie die Zeilenanzahl in der Aurora-PostgreSQL-Tabelle an. 

```
SELECT count(*) FROM apg.lineitem;
            
count
-------
11760
```

Zeigen Sie die Zeilenanzahl in Amazon S3 an. 

```
SELECT count(*) FROM s3.lineitem_1t_part;
            
   count
------------
6144008876
```

Erstellen Sie eine Ansicht der Tabellen aus Amazon Redshift, Aurora PostgreSQL und Amazon S3. Diese Ansicht wird verwendet, um Ihre Verbundabfragen auszuführen. 

```
CREATE VIEW lineitem_all AS
  SELECT l_orderkey,l_partkey,l_suppkey,l_linenumber,l_quantity,l_extendedprice,l_discount,l_tax,l_returnflag,l_linestatus,
         l_shipdate::date,l_commitdate::date,l_receiptdate::date, l_shipinstruct ,l_shipmode,l_comment 
  FROM s3.lineitem_1t_part 
  UNION ALL SELECT * FROM public.lineitem 
  UNION ALL SELECT * FROM apg.lineitem 
     with no schema binding;
```

Zeigen Sie zur Begrenzung der Ergebnisse die Anzahl der Zeilen in der Ansicht `lineitem_all` mit einem Prädikat an. 

```
SELECT count(*) from lineitem_all WHERE l_quantity = 10;
               
   count
-----------
123373836
```

Finden Sie heraus, wie viele Verkäufe eines Artikels es im Januar eines jeden Jahres gab. 

```
SELECT extract(year from l_shipdate) as year,
       extract(month from l_shipdate) as month,
       count(*) as orders
FROM lineitem_all
WHERE extract(month from l_shipdate) = 1
AND l_quantity < 2
GROUP BY 1,2
ORDER BY 1,2;

 year | month | orders
------+-------+---------
 1992 |     1 |  196019
 1993 |     1 | 1582034
 1994 |     1 | 1583181
 1995 |     1 | 1583919
 1996 |     1 | 1583622
 1997 |     1 | 1586541
 1998 |     1 | 1583198
 2016 |     1 |   15542
 2017 |     1 |   15414
 2018 |     1 |   15527
 2019 |     1 |     151
```

## Beispiel für die Verwendung eines Namens mit sowohl Groß- als auch Kleinbuchstaben
<a name="federated_query_example_postgres-mixed"></a>

Zur Abfrage einer unterstützten PostgreSQL-Remote-Datenbank, die einen Datenbank-. Schema-, Tabellen- oder Spaltennamen mit sowohl Groß- auch Kleinbuchstaben hat, legen Sie `enable_case_sensitive_identifier` auf `true` fest. Weitere Informationen zu diesem Sitzungsparameter finden Sie unter [enable\$1case\$1sensitive\$1identifier](r_enable_case_sensitive_identifier.md). 

```
SET enable_case_sensitive_identifier TO TRUE;
```

In der Regel werden die Datenbank- und Schemanamen in Kleinbuchstaben angegeben. Das folgende Beispiel zeigt, wie Sie eine Verbindung zu einer unterstützten Remote-PostgreSQL-Datenbank herstellen können, die Datenbank- und Schemanamen mit Kleinbuchstaben sowie Tabellen- und Spaltennamen mit sowohl Groß- als auch Kleinbuchstaben enthält. 

Erstellen Sie ein externes Schema, das auf eine Aurora-PostgreSQL-Datenbank verweist, die einen Datenbanknamen mit Kleinbuchstaben (`dblower`) und einen Schemanamen mit Kleinbuchstaben (`schemalower`) hat. 

```
CREATE EXTERNAL SCHEMA apg_lower
FROM POSTGRES
DATABASE 'dblower' SCHEMA 'schemalower'
URI 'endpoint to aurora hostname'
IAM_ROLE 'arn:aws:iam::123456789012:role/Redshift-SecretsManager-RO'
SECRET_ARN 'arn:aws:secretsmanager:us-west-2:123456789012:secret:federation/test/dataplane-apg-creds-YbVKQw';
```

Legen Sie in der Sitzung, in der die Abfrage ausgeführt wird, `enable_case_sensitive_identifier` auf `true` fest.

```
SET enable_case_sensitive_identifier TO TRUE;
```

Führen Sie eine Verbundabfrage aus, um alle Daten aus der PostgreSQL-Datenbank auszuwählen. Die Tabellen- (`MixedCaseTab`) und Spaltennamen (`MixedCaseName`) enthalten sowohl Groß- als auch Kleinbuchstaben. Der Ergebnis ist eine Zeile (`Harry`). 

```
select * from apg_lower."MixedCaseTab";
```

```
 MixedCaseName
-------
 Harry
```

Das folgende Beispiel zeigt, wie Sie eine Verbindung zu einer unterstützten Remote-PostgreSQL-Datenbank herstellen können, die einen Datenbank-, Schema-, Tabellen- und Spaltennamen mit sowohl Groß- als auch Kleinbuchstaben enthält. 

Legen Sie `enable_case_sensitive_identifier` auf `true` fest, bevor Sie das externe Schema erstellen. Wenn Sie `enable_case_sensitive_identifier` nicht auf `true` festlegen, bevor Sie das externe Schema erstellen, erhalten Sie einen Fehler, dass die Datenbank nicht existiert.

Erstellen Sie ein externes Schema, das auf eine Aurora-PostgreSQL-Datenbank verweist, die einen Datenbanknamen (`UpperDB`) und einen Schemanamen (`UpperSchema`) mit sowohl Groß- als auch Kleinbuchstaben hat.

```
CREATE EXTERNAL SCHEMA apg_upper
FROM POSTGRES
DATABASE 'UpperDB' SCHEMA 'UpperSchema'
URI 'endpoint to aurora hostname'
IAM_ROLE 'arn:aws:iam::123456789012:role/Redshift-SecretsManager-RO'
SECRET_ARN 'arn:aws:secretsmanager:us-west-2:123456789012:secret:federation/test/dataplane-apg-creds-YbVKQw';
```

Führen Sie eine Verbundabfrage aus, um alle Daten aus der PostgreSQL-Datenbank auszuwählen. Die Tabellen- (`MixedCaseTab`) und Spaltennamen (`MixedCaseName`) enthalten sowohl Groß- als auch Kleinbuchstaben. Der Ergebnis ist eine Zeile (`Harry`). 

```
select * from apg_upper."MixedCaseTab";
```

```
 MixedCaseName
-------
 Harry
```

## Beispiel für die Verwendung einer Verbundabfrage mit MySQL
<a name="federated_query_example_mysql"></a>

Das folgende Beispiel zeigt, wie Sie eine Verbundabfrage einrichten, die auf eine Aurora-MySQL-Datenbank verweist. In diesem Beispiel wird gezeigt, wie Verbundabfragen funktionieren. Um sie in Ihrer eigenen Umgebung auszuführen, ändern Sie diese so, dass sie Ihrer Umgebung entsprechen. Die Voraussetzungen hierfür finden Sie unter [Erste Schritte bei der Verwendung von Verbundabfragen für MySQL](getting-started-federated-mysql.md). 

Dieses Beispiel hängt von den folgenden Voraussetzungen ab: 
+ Ein Secret, das im Secrets Manager für die Aurora-MySQL-Datenbank eingerichtet wurde. Auf dieses Secret wird in den IAM-Zugriffsrichtlinien und -rollen verwiesen. Weitere Informationen finden Sie unter [Erstellen eines Secrets und einer IAM-Rolle für die Verwendung von Verbundabfragen](federated-create-secret-iam-role.md). 
+ Eine Sicherheitsgruppe, die eingerichtet wurde, um Amazon Redshift und Aurora MySQL zu verknüpfen. 

Erstellen Sie ein externes Schema, das auf eine Aurora-MySQL-Datenbank verweist. 

```
CREATE EXTERNAL SCHEMA amysql
FROM MYSQL
DATABASE 'functional'
URI 'endpoint to remote hostname'
IAM_ROLE 'arn:aws:iam::123456789012:role/Redshift-SecretsManager-RO'
SECRET_ARN 'arn:aws:secretsmanager:us-west-2:123456789012:secret:federation/test/dataplane-apg-creds-YbVKQw';
```

Führen Sie eine Beispiel-SQL-Auswahl für die Aurora-MySQL-Tabelle aus, um eine Zeile aus der Mitarbeitertabelle in Aurora MySQL aufzurufen. 

```
SELECT level FROM amysql.employees LIMIT 1;
            
 level
-------
     8
```