Starten Ihres AWS CloudFormation-Stacks und anschließendes Abfragen Ihrer Daten in Amazon S3 - Amazon Redshift

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 Ihres AWS CloudFormation-Stacks und anschließendes Abfragen Ihrer Daten in Amazon S3

Nachdem Sie einen Amazon-Redshift-Cluster erstellt und eine Verbindung zum Cluster hergestellt haben, können Sie Ihre Redshift-Spectrum- DataLake AWS CloudFormationVorlage installieren und dann Ihre Daten abfragen.

CloudFormation installiert die Redshift Spectrum Getting Started- DataLake Vorlage und erstellt einen Stack, der Folgendes enthält:

  • Eine Rolle namens myspectrum_role, die mit Ihrem Redshift-Cluster verknüpft ist

  • Ein externes Schema mit dem Namen myspectrum_schema

  • Eine externe Tabelle mit dem Namen sales in einem Amazon S3 Bucket

  • Eine Redshift-Tabelle mit dem Namen event und geladenen Daten

So starten Sie Ihren Redshift Spectrum Getting Started DataLake CloudFormation Stack
  1. Klicken Sie auf Launch CFN stack (CFN-Stack starten). Die CloudFormation Konsole wird geöffnet, wobei die DataLake.yml-Vorlage ausgewählt ist.

    Sie können auch die DataLake CloudFormation CFN-Vorlage „Erste Schritte“ von Redshift Spectrum herunterladen und anpassen, dann die CloudFormation -Konsole öffnen (https://console.aws.amazon.com/cloudformation) und einen Stack mit der benutzerdefinierten Vorlage erstellen.

  2. Wählen Sie Next (Weiter).

  3. Geben Sie unter Parameters (Parameter) den Namen des Amazon-Redshift-Clusters, den Datenbanknamen und Ihren Namen als Datenbankbenutzer ein.

  4. Wählen Sie Next (Weiter).

    Die Stack-Optionen werden angezeigt.

  5. Klicken Sie auf Next (Weiter), um die Standardeinstellungen zu übernehmen.

  6. Lesen Sie die Informationen unter Funktionen, und wählen Sie Ich nehme zur Kenntnis, dass AWS CloudFormation IAM-Ressourcen erstellt werden können aus.

  7. 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 Stack, 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)