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.
Starten Sie Ihren AWS CloudFormation Stack und fragen Sie dann Ihre Daten in Amazon S3 ab
Nachdem Sie einen Amazon Redshift Redshift-Cluster erstellt und eine Verbindung zum Cluster hergestellt haben, können Sie Ihre Redshift DataLake AWS CloudFormation Spectrum-Vorlage installieren und dann Ihre Daten abfragen.
CloudFormation installiert die Redshift Spectrum Getting DataLake Started-Vorlage und erstellt einen Stack, der Folgendes umfasst:
Eine Rolle namens
myspectrum_role
, die mit Ihrem Redshift-Cluster verknüpft istEin externes Schema mit dem Namen
myspectrum_schema
Eine externe Tabelle mit dem Namen
sales
in einem Amazon S3 BucketEine Redshift-Tabelle mit dem Namen
event
und geladenen Daten
So starten Sie Ihren Redshift Spectrum Getting Started Stack DataLake CloudFormation
Klicken Sie auf Launch CFN stack
(CFN-Stack starten). Die CloudFormation Konsole wird mit der ausgewählten Vorlage DataLake .yml geöffnet. Sie können auch die Redshift Spectrum Getting Started DataLake CloudFormation CFN-Vorlage
herunterladen und anpassen, dann die CloudFormation Konsole (https://console.aws.amazon.com/cloudformation ) öffnen und einen Stack mit der benutzerdefinierten Vorlage erstellen. Wählen Sie Next (Weiter).
Geben Sie unter Parameters (Parameter) den Namen des Amazon-Redshift-Clusters, den Datenbanknamen und Ihren Namen als Datenbankbenutzer ein.
Wählen Sie Next (Weiter).
Die Stack-Optionen werden angezeigt.
Klicken Sie auf Next (Weiter), um die Standardeinstellungen zu übernehmen.
Lesen Sie die Informationen und wählen Sie unter Funktionen die Option Ich bestätige, dass AWS CloudFormation möglicherweise IAM-Ressourcen erstellt werden.
Wählen Sie Create stack (Stack erstellen) aus.
Falls während der Erstellung des Stacks ein Fehler auftritt, lesen Sie die folgenden Informationen:
Auf der Registerkarte CloudFormation Ereignisse finden Sie Informationen, die Ihnen bei der Behebung des Fehlers helfen können.
Löschen Sie den DataLake CloudFormation Stapel, bevor Sie den Vorgang erneut versuchen.
Vergewissern Sie sich, dass Sie mit Ihrer Amazon-Redshift-Datenbank verbunden sind.
Stellen Sie sicher, dass Sie die richtigen Informationen für den Namen des Amazon-Redshift-Clusters, den Datenbanknamen und den Namen des Datenbankbenutzers eingegeben haben.
Abfragen Ihrer Daten in Amazon S3
Sie fragen externe Tabellen mit den gleichen SELECT-Anweisungen ab, mit denen Sie auch andere Amazon-Redshift-Tabellen abfragen. Diese SELECT-Anweisungsabfragen beinhalten die Verbindung von Tabellen, die Aggregierung von Daten und die Filterung auf Prädikaten.
Die folgende Abfrage gibt die Anzahl von Zeilen in der externen Tabelle myspectrum_schema.sales
aus.
select count(*) from myspectrum_schema.sales;
count ------ 172462
Verbinden einer externen mit einer lokalen Tabelle
Das folgende Beispiel verbindet die externe Tabelle myspectrum_schema.sales
mit der lokalen Tabelle event
, um den Gesamtumsatz für die 10 führenden Veranstaltungen zu ermitteln.
select top 10 myspectrum_schema.sales.eventid, sum(myspectrum_schema.sales.pricepaid) from myspectrum_schema.sales, event where myspectrum_schema.sales.eventid = event.eventid and myspectrum_schema.sales.pricepaid > 30 group by myspectrum_schema.sales.eventid order by 2 desc;
eventid | sum --------+--------- 289 | 51846.00 7895 | 51049.00 1602 | 50301.00 851 | 49956.00 7315 | 49823.00 6471 | 47997.00 2118 | 47863.00 984 | 46780.00 7851 | 46661.00 5638 | 46280.00
Aufrufen des Abfrageplans
Zeigen Sie den Abfrageplan für die vorherige Abfrage an. Beachten Sie, dass die Schritte S3 Seq Scan
, S3 HashAggregate
und S3 Query Scan
für die Daten auf Amazon S3 ausgeführt wurden.
explain select top 10 myspectrum_schema.sales.eventid, sum(myspectrum_schema.sales.pricepaid) from myspectrum_schema.sales, event where myspectrum_schema.sales.eventid = event.eventid and myspectrum_schema.sales.pricepaid > 30 group by myspectrum_schema.sales.eventid order by 2 desc;
QUERY PLAN ----------------------------------------------------------------------------- XN Limit (cost=1001055770628.63..1001055770628.65 rows=10 width=31) -> XN Merge (cost=1001055770628.63..1001055770629.13 rows=200 width=31) Merge Key: sum(sales.derived_col2) -> XN Network (cost=1001055770628.63..1001055770629.13 rows=200 width=31) Send to leader -> XN Sort (cost=1001055770628.63..1001055770629.13 rows=200 width=31) Sort Key: sum(sales.derived_col2) -> XN HashAggregate (cost=1055770620.49..1055770620.99 rows=200 width=31) -> XN Hash Join DS_BCAST_INNER (cost=3119.97..1055769620.49 rows=200000 width=31) Hash Cond: ("outer".derived_col1 = "inner".eventid) -> XN S3 Query Scan sales (cost=3010.00..5010.50 rows=200000 width=31) -> S3 HashAggregate (cost=3010.00..3010.50 rows=200000 width=16) -> S3 Seq Scan spectrum.sales location:"s3://redshift-downloads/tickit/spectrum/sales" format:TEXT (cost=0.00..2150.00 rows=172000 width=16) Filter: (pricepaid > 30.00) -> XN Hash (cost=87.98..87.98 rows=8798 width=4) -> XN Seq Scan on event (cost=0.00..87.98 rows=8798 width=4)