Avvia lo AWS CloudFormation stack e quindi interroga i dati in Amazon S3 - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Avvia lo AWS CloudFormation stack e quindi interroga i dati in Amazon S3

Dopo aver creato un cluster Amazon Redshift e esserti connesso al cluster, puoi installare il DataLake AWS CloudFormation modello Redshift Spectrum e quindi interrogare i tuoi dati.

CloudFormation installa il modello Redshift Spectrum Getting DataLake Started e crea uno stack che include quanto segue:

  • Un ruolo denominato myspectrum_role associato al cluster Redshift

  • Uno schema esterno denominato myspectrum_schema

  • Una tabella esterna denominata sales in un bucket Amazon S3

  • Una tabella Redshift denominata event caricata con dati

Per avviare lo stack Redshift Spectrum Getting Started DataLake CloudFormation
  1. Scegliere Avvio dello stack CFN. La CloudFormation console si apre con il template DataLake .yml selezionato.

    Puoi anche scaricare e personalizzare il modello DataLake CloudFormation CFN Redshift Spectrum Getting Started, quindi aprire la CloudFormation console (https://console.aws.amazon.com/cloudformation) e creare uno stack con il modello personalizzato.

  2. Seleziona Successivo.

  3. In Parametri, inserisci il nome del cluster Amazon Redshift, il nome del database e il nome utente del database.

  4. Seleziona Successivo.

    Vengono visualizzate le opzioni della pila.

  5. Scegliere Successivo per accettare le impostazioni predefinite.

  6. Consulta le informazioni e nella sezione Capacità, quindi scegli Riconosco che AWS CloudFormation potrebbe creare risorse IAM.

  7. Seleziona Crea stack.

Se si verifica un errore durante la creazione della pila, vedere le seguenti informazioni:

  • Visualizza la scheda CloudFormation Eventi per informazioni che possono aiutarti a risolvere l'errore.

  • Elimina lo DataLake CloudFormation stack prima di riprovare l'operazione.

  • Assicurarsi di essere connesso al database Amazon Redshift.

  • Assicurati di aver inserito le informazioni corrette per il nome del cluster Amazon Redshift, il nome del database e il nome utente del database.

Eseguire query sui dati in Amazon S3

Richiedere tabelle esterne utilizzando le stesse istruzioni SELECT utilizzate per eseguire query su altre tabelle Amazon Redshift. Queste query con istruzioni SELECT includono il join di tabelle, l'aggregazione di dati e il filtraggio di predicati.

La seguente query restituisce il numero di righe nella tabella esternamyspectrum_schema.sales.

select count(*) from myspectrum_schema.sales;
count 
------
172462

Unire una tabella esterna a una locale

L'esempio seguente unisce la tabella esterna myspectrum_schema.sales alla tabella locale event per calcolare le vendite totali per i 10 eventi principali.

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

Visualizzazione del piano di query

Visualizza il piano delle query per la query precedente. Tenere presente le fasi S3 Seq Scan, S3 HashAggregate e S3 Query Scan eseguite nei dati in Amazon S3.

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)