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
In den folgenden Beispielen wird gezeigt, wie Sie eine Verbundabfrage ausführen. Führen Sie den SQL mit Ihrem SQL Client aus, der mit der Amazon Redshift Redshift-Datenbank verbunden ist.
Beispiel für die Verwendung einer Verbundabfrage mit Postgre SQL
Das folgende Beispiel zeigt, wie Sie eine Verbundabfrage einrichten, die auf eine Amazon Redshift Redshift-Datenbank, eine Aurora SQL Postgre-Datenbank und 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 Postgre SQL.
Erstellen Sie ein externes Schema, das auf eine Aurora SQL Postgre-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
Zeigt die Anzahl der Zeilen in der Aurora SQL Postgre-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 von Amazon Redshift, Aurora Postgre SQL 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
Um eine unterstützte SQL entfernte Postgre-Datenbank abzufragen, die den Namen einer Datenbank, eines Schemas, einer Tabelle oder einer Spalte in gemischter Groß- und Kleinschreibung hat, und setzen Sie dann auf. enable_case_sensitive_identifier
true
Weitere Informationen zu diesem Sitzungsparameter finden Sie unter enable_case_sensitive_identifier.
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 SQL entfernten Postgre-Datenbank herstellen können, die Namen für Datenbank und Schema in Kleinbuchstaben und Namen in gemischter Groß- und Kleinschreibung für Tabelle und Spalte verwendet.
Erstellen Sie ein externes Schema, das auf eine Aurora Postgre-Datenbank verweist, die einen SQL Datenbanknamen in Kleinbuchstaben (dblower
) und einen Schemanamen in Kleinbuchstaben () hat. schemalower
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 Postgre-Datenbank auszuwählen. SQL 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 SQL entfernten Postgre-Datenbank herstellen können, die einen Namen mit gemischter Groß- und Kleinschreibung für die Datenbank, das Schema, die Tabelle und die Spalte hat.
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 Postgre-Datenbank verweist, die einen SQL Datenbank- () und einen Schema- (UpperDB
) Namen in gemischter Groß- und Kleinschreibung hat. UpperSchema
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 Postgre-Datenbank auszuwählen. SQL 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 My SQL
Das folgende Beispiel zeigt, wie Sie eine Verbundabfrage einrichten, die auf eine Aurora SQL My-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 mit der Verwendung von Verbundabfragen für My SQL.
Dieses Beispiel hängt von den folgenden Voraussetzungen ab:
Ein Geheimnis, das in Secrets Manager für die Aurora SQL My-Datenbank eingerichtet wurde. Auf dieses Geheimnis wird in IAM Zugriffsrichtlinien und Rollen verwiesen. Weitere Informationen finden Sie unter Erstellen Sie ein Geheimnis und eine IAM Rolle für die Verwendung verbundener Abfragen.
Eine Sicherheitsgruppe, die eingerichtet wird, um Amazon Redshift und Aurora My SQL zu verknüpfen.
Erstellen Sie ein externes Schema, das auf eine Aurora SQL My-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 SQL Beispielauswahl der SQL Tabelle Aurora My aus, um eine Zeile aus der Mitarbeitertabelle in Aurora My anzuzeigenSQL.
SELECT level FROM amysql.employees LIMIT 1; level ------- 8