Introducción al uso de consultas federadas en PostgreSQL con AWS CloudFormation - Amazon Redshift

Introducción al uso de consultas federadas en PostgreSQL con AWS CloudFormation

Puede utilizar consultas federadas para realizar consultas en bases de datos operativas. En esta guía de introducción, puede automatizar la configuración mediante una pila de AWS CloudFormation de muestra para habilitar una consulta federada desde un clúster de Amazon Redshift hacia una base de datos sin servidor de Aurora PostgreSQL. Puede ponerse en marcha rápidamente sin tener que ejecutar instrucciones SQL para aprovisionar sus recursos.

La pila crea un esquema externo que hace referencia a la instancia de Aurora PostgreSQL, que incluye tablas con datos de muestra. Puede consultar tablas del esquema externo desde el clúster de Redshift.

Si desea en cambio empezar a utilizar las consultas federadas ejecutando instrucciones SQL para configurar un esquema externo sin utilizar CloudFormation, consulte Introducción al uso de consultas federadas en PostgreSQL.

Antes de ejecutar la pila de CloudFormation para las consultas federadas, asegúrese de tener una base de datos sin servidor de la Edición compatible con PostgreSQL de Amazon Aurora con la API de datos activada. Puede activar la API de datos en las propiedades de la base de datos. Si no puede encontrar la configuración, verifique bien que está ejecutando una instancia sin servidor de Aurora PostgreSQL. Asegúrese también de tener un clúster de Amazon Redshift que utilice nodos RA3. Se recomienda que tanto el clúster de Redshift como la instancia sin servidor de Aurora PostgreSQL se encuentren en la misma nube virtual privada y el mismo grupo de subredes. De esta manera, puede agregar el grupo de seguridad para el clúster de Amazon Redshift a las reglas de entrada del grupo de seguridad de la instancia de base de datos de Aurora PostgreSQL.

Para obtener más información acerca de cómo empezar a configurar un clúster de Amazon Redshift, consulte Clústeres aprovisionados de Amazon Redshift. Para obtener más información acerca de cómo configurar recursos con CloudFormation, consulte ¿Qué es AWS CloudFormation? Para obtener más información acerca de cómo configurar una base de datos de clúster de Aurora DB, consulte Creación de un clúster de base de datos de clúster de Aurora DB sin servidor v1.

Lanzamiento de una pila de CloudFormation para las consultas federadas de Redshift

Utilice el siguiente procedimiento para lanzar la pila de CloudFormation para Amazon Redshift con el objetivo de habilitar las consultas federadas. Antes de hacerlo, asegúrese de tener configurados el clúster de Amazon Redshift y la instancia sin servidor de Aurora PostgreSQL.

Para lanzar una pila de CloudFormation para las consultas federadas
  1. Haga clic aquí en Launch CFN stack (Lanzar pila de CFN) para lanzar el servicio CloudFormation en la AWS Management Console.

    Si se le solicita, inicie sesión.

    El proceso de creación de la pila se inicia si hace referencia a un archivo de plantilla de CloudFormation que se almacena en Amazon S3. Una plantilla de CloudFormation es un archivo de texto en formato JSON que establece los recursos de AWS que componen una pila.

  2. Elija Next (Siguiente) para ingresar los detalles de la pila.

  3. En Parameters (Parámetros), para el clúster, ingrese lo siguiente:

    • el nombre del clúster de Amazon Redshift, por ejemplo, ra3-consumer-cluster

    • un nombre de base de datos específico; por ejemplo, dev

    • el nombre de un usuario de base de datos; por ejemplo, consumeruser

    También ingrese los parámetros de la base de datos del clúster de Aurora DB, incluidos el usuario, el nombre de la base de datos, el puerto y el punto de conexión. Recomendamos utilizar un clúster de prueba y una base de datos sin servidor de prueba porque la pila crea varios objetos de base de datos.

    Elija Next (Siguiente).

    Aparecerán las opciones de la pila.

  4. Elija Next (Siguiente) para aceptar la configuración predeterminada.

  5. En Capabilities (Capacidades), elija I acknowledge that AWS CloudFormation might create IAM resources (Confirmo que AWS CloudFormation puede crear recursos de IAM).

  6. Seleccione Crear pila.

Seleccione Crear pila. CloudFormation aprovisiona los recursos de la plantilla, proceso que demora unos 10 minutos, y crea un esquema externo.

Si se produce un error durante la creación de la pila, haga lo que se indica a continuación:

  • Consulte la pestaña Events (Eventos) de CloudFormation para obtener información que pueda serle de utilidad para resolver el error.

  • Asegúrese de haber ingresado el nombre correcto, el nombre de la base de datos y el nombre del usuario de la base de datos para el clúster de Redshift. Compruebe también los parámetros de la instancia de Aurora PostgreSQL.

  • Asegúrese de que el clúster tenga nodos RA3.

  • Asegúrese de que la base de datos y el clúster de Redshift estén en la misma subred y el mismo grupo de seguridad.

Consulta de datos desde el esquema externo

Para utilizar el siguiente procedimiento, asegúrese de tener los permisos necesarios para ejecutar consultas en el clúster y la base de datos descritos.

Para consultar una base de datos externa con las consultas federadas
  1. Conéctese a la base de datos de Redshift que ingresó cuando creó la pila por medio de una herramienta de cliente, como el editor de consultas de Redshift.

  2. Consulta del esquema externo creado por la pila

    select * from svv_external_schemas;

    La vista SVV_EXTERNAL_SCHEMAS devuelve información sobre los esquemas externos disponibles. En este caso, se devuelve el esquema externo creado por la pila, myfederated_schema. Es posible que también se devuelvan otros esquemas externos si tiene alguno configurado. La vista también devuelve la base de datos asociada del esquema. La base de datos es la base de datos del clúster de Aurora DB que ingresó cuando creó la pila. La pila agrega una tabla a la base de datos del clúster de Aurora DB, llamada category y otra tabla llamada sales.

  3. Ejecute consultas de SQL en las tablas del esquema externo que hace referencia a la base de datos de Aurora PostgreSQL. En el siguiente ejemplo, se muestra una consulta.

    SELECT count(*) FROM myfederated_schema.category;

    La tabla category devuelve varios registros. También puede devolver registros desde la tabla sales.

    SELECT count(*) FROM myfederated_schema.sales;

    Para obtener más ejemplos, consulte Ejemplos de uso de una consulta federada.