Iniziare a utilizzare le query federate su PostgreSQL con AWS CloudFormation - 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à.

Iniziare a utilizzare le query federate su PostgreSQL con AWS CloudFormation

È possibile utilizzare query federate per eseguire query su database operativi. In questa guida introduttiva, puoi automatizzare la configurazione utilizzando uno AWS CloudFormation stack di esempio per abilitare una query federata da un cluster Amazon Redshift a un database serverless Aurora PostgreSQL. Pertanto, è possibile eseguire rapidamente l'esecuzione senza dover eseguire istruzioni SQL per effettuare il provisioning delle risorse.

La pila crea uno schema esterno che fa riferimento all'istanza Aurora PostgreSQL, che include tabelle con dati di esempio. È possibile eseguire query sulle tabelle nello schema esterno dal cluster Redshift.

Se invece desideri iniziare con le query federate eseguendo istruzioni SQL per configurare uno schema esterno, senza utilizzarlo, consulta. CloudFormation Nozioni di base sull'utilizzo di query federate su PostgreSQL

Prima di eseguire lo CloudFormation stack per le query federate, assicurati di disporre di un database serverless Edition compatibile con Amazon Aurora PostgreSQL con l'API Data attivata. È possibile attivare l'API dati nelle proprietà del database. Se non riesci a trovare l'impostazione, controlla di aver eseguito un'istanza serverless di Aurora PostgreSQL. Assicurati inoltre di disporre di un cluster Amazon Redshift che utilizza nodi RA3. È consigliabile che il cluster Redshift e l'istanza Aurora PostgreSQL serverless siano nello stesso cloud privato virtuale (VPC) e gruppo di sottoreti. In questo modo, è possibile aggiungere il gruppo di sicurezza per il cluster Amazon Redshift alle regole in ingresso del gruppo di sicurezza per l'istanza database RDS o Aurora PostgreSQL.

Per ulteriori informazioni su come iniziare a configurare un cluster Amazon Redshift, consulta Amazon Redshift provisioned clusters. Per ulteriori informazioni sulla configurazione delle risorse con CloudFormation, consulta What is? AWS CloudFormation . Per ulteriori informazioni sulla configurazione di un database cluster Aurora DB, vedere Creazione di un cluster Aurora DB Serverless v1 DB cluster.

Avvio di uno CloudFormation stack per le query federate di Redshift

Utilizza la seguente procedura per avviare lo CloudFormation stack per Amazon Redshift e abilitare le query federate. Prima di farlo, assicurati di aver configurato il cluster Amazon Redshift e l'istanza Aurora PostgreSQL serverless.

Per avviare lo stack per le query federate CloudFormation
  1. Fai clic su Avvia lo stack CFN qui per avviare il servizio in. CloudFormation AWS Management Console

    Se ti viene richiesto, effettua l'accesso.

    Viene avviato il processo di creazione dello stack, facendo riferimento a un file CloudFormation modello archiviato in Amazon S3. Un CloudFormation modello è un file di testo in formato JSON che dichiara AWS le risorse che compongono uno stack.

  2. Scegliere Successivo per inserire i dettagli della pila.

  3. In Parametri, per il cluster, immettere quanto segue:

    • Il nome del cluster Amazon Redshift, ad esempio ra3-consumer-cluster

    • Un nome di database specifico, ad esempio dev

    • Il nome utente di database, ad esempio consumeruser

    Immettete anche i parametri per il database del cluster Aurora DB, inclusi l'utente, il nome del database, la porta e l'endpoint. Si consiglia di utilizzare un cluster di prova e testare il database serverless, poiché la pila crea diversi oggetti di database.

    Seleziona Successivo.

    Vengono visualizzate le opzioni della pila.

  4. Scegliere Successivo per accettare le impostazioni predefinite.

  5. In Capacità, scegli Riconosco che AWS CloudFormation potrebbe creare risorse IAM.

  6. Seleziona Crea stack.

Scegli Create stack. CloudFormation effettua il provisioning delle risorse del modello, operazione che richiede circa 10 minuti, e crea uno schema esterno.

Se si verifica un errore durante la creazione della pila, procedere come segue:

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

  • Assicurarsi di aver immesso il nome, il nome del database e il nome utente del database corretti per il cluster Redshift. Controllare anche i parametri per l'istanza Aurora PostgreSQL.

  • Assicurarsi che il cluster disponga di nodi RA3.

  • Assicurati che il database e il cluster Redshift si trovino nella stessa sottorete e gruppo di sicurezza.

Interrogazione di dati dallo schema esterno

Per utilizzare la procedura seguente, assicurarsi di disporre delle autorizzazioni necessarie per l'esecuzione di query sul cluster e sul database descritto.

Per eseguire query su un database esterno con query federata
  1. Connettersi al database Redshift immesso al momento della creazione della pila, utilizzando uno strumento client come l'editor di query Redshift.

  2. Interrogazione dello schema esterno creato dalla pila.

    select * from svv_external_schemas;

    La visualizzazione SVV_EXTERNAL_SCHEMAS restituisce informazioni sugli schemi esterni disponibili. In questo caso, viene restituito lo schema esterno creato dalla pila, myfederated_schema. È possibile che vengano restituiti anche altri schemi esterni, se avete delle impostazioni attive. La vista restituisce anche il database associato allo schema. Il database è il database cluster Aurora DB che hai inserito quando hai creato lo stack. Lo stack aggiunge una tabella al database del cluster Aurora DB, category chiamata, e un'altra tabella chiamata. sales

  3. Esegui query SQL sulle tabelle nello schema esterno che fa riferimento al database Aurora PostgreSQL. Il seguente esempio mostra una query.

    SELECT count(*) FROM myfederated_schema.category;

    La tabella category restituisce diversi registri. È inoltre possibile restituire i registri dalla tabella sales.

    SELECT count(*) FROM myfederated_schema.sales;

    Per ulteriori esempi, consulta Esempio di utilizzo di una query federata.