Schritt 4: 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.

Schritt 4: Abfragen Ihrer Daten in Amazon S3

Nach der Erstellung Ihrer externen Tabellen können Sie sie mit den gleichen SELECT-Anweisungen abfragen, 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.

So fragen Sie Ihre Daten in Amazon S3 ab
  1. Abruf der Anzahl der Zeilen in der Tabelle MYSPECTRUM_SCHEMA.SALES.

    select count(*) from myspectrum_schema.sales;
    count 
    ------
    172462
  2. Es wird empfohlen, dass Sie Ihre größeren Faktentabellen in Amazon S3 und Ihre kleineren Dimensionstabellen in Amazon Redshift speichern. Wenn Sie die Beispieldaten aus Erste Schritte mit Amazon Redshift geladen haben, befindet sich in Ihrer Datenbank eine Tabelle mit der Bezeichnung EVENT. Wenn dies nicht der Fall ist, erstellen Sie mit dem folgenden Befehl die Tabelle EVENT.

    create table event( eventid integer not null distkey, venueid smallint not null, catid smallint not null, dateid smallint not null sortkey, eventname varchar(200), starttime timestamp);
  3. Laden Sie die Tabelle „EVENT“, indem Sie den IAM-Rollen-ARN in dem folgenden COPY-Befehl durch den Rollen-ARN ersetzen, den Sie in erstellt haben Schritt 1. Erstellen Sie eine IAM-Rolle für Amazon Redshift. Sie können optional die Quelldaten für allevents_pipe.txt aus einem Amazon S3 S3-Bucket in herunterladen und anzeigen AWS-Region us-east-1.

    copy event from 's3://redshift-downloads/tickit/allevents_pipe.txt' iam_role 'arn:aws:iam::123456789012:role/myspectrum_role' delimiter '|' timeformat 'YYYY-MM-DD HH:MI:SS' region 'us-east-1';

    Das folgende Beispiel verbindet die externe Amazon-S3-Tabelle MYSPECTRUM_SCHEMA.SALES mit der lokalen Amazon-Redshift-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
  4. 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 myspectrum_schema.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)