Nozioni di base sull'utilizzo di query federate su PostgreSQL con AWS CloudFormation - Amazon Redshift

Amazon Redshift non supporterà più la creazione di nuove UDF Python a partire dal 1º novembre 2025. Se desideri utilizzare le UDF Python, creale prima di tale data. Le UDF Python esistenti continueranno a funzionare normalmente. Per ulteriori informazioni, consulta il post del blog.

Nozioni di base sull'utilizzo di query federate su PostgreSQL con AWS CloudFormation

È possibile utilizzare query federate per eseguire query su database operativi. In questa guida introduttiva, è possibile automatizzare la configurazione utilizzando un esempio di pila AWS CloudFormation 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 si desidera iniziare a utilizzare le query federate eseguendo istruzioni SQL per impostare uno schema esterno, senza utilizzare CloudFormation, consultare Nozioni di base sull'utilizzo di query federate su PostgreSQL.

Prima di eseguire la pila CloudFormation per le query federate, assicurati di disporre di un database serverless Amazon Aurora edizione compatibile con PostgreSQL con l'API dati attivato È 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 sulle nozioni di base della configurazione di un cluster Amazon Redshift, consulta Nozioni di base sui data warehouse con provisioning Amazon Redshift. Per ulteriori informazioni sulla configurazione di risorse con CloudFormation, consulta Cos'è AWS CloudFormation?. Per ulteriori informazioni sulla configurazione di un database di un cluster di database Aurora, consulta Creazione di un cluster di database Aurora Serverless v1.

Avvio di una pila CloudFormation per le query federate di Redshift

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

Per avviare la pila CloudFormation per query federate
  1. Fare clic su Avvio della pila CFN per lanciare il servizio CloudFormation nel Console di gestione AWS.

    Se ti viene richiesto, effettua l'accesso.

    Viene avviato il processo di creazione della pila, facendo riferimento a un file modello CloudFormation, memorizzato in Amazon S3. Un modello CloudFormation è un file di testo in formato JSON che dichiara le risorse AWS che compongono una pila.

  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

    Immetti anche i parametri per il database del cluster di database Aurora, 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.

    Scegli Next (Successivo).

    Vengono visualizzate le opzioni della pila.

  4. Scegliere Successivo per accettare le impostazioni predefinite.

  5. In Funzionalità, scegliere prendo atto che AWS CloudFormation può creare risorse IAM.

  6. Seleziona Crea stack.

Seleziona Crea stack. CloudFormation effettua il provisioning delle risorse del modello, 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 tabella Eventi di CloudFormation 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 del cluster di database Aurora che hai immesso al momento della creazione dello stack. Lo stack aggiunge una tabella al database del cluster di database Aurora, denominata category, e un’altra tabella denominata 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.