Administración del uso compartido de datos con AWS CloudFormation - Amazon Redshift

Administración del uso compartido de datos con AWS CloudFormation

Puede automatizar la configuración del uso compartido de datos mediante el uso de una pila de AWS CloudFormation, que aprovisiona los recursos de AWS. La pila de CloudFormation configura el uso compartido de datos entre dos clústeres de Amazon Redshift en la misma cuenta de AWS. De este modo, puede iniciar el uso compartido de datos sin ejecutar instrucciones SQL para aprovisionar los recursos.

La pila crea un recurso compartido de datos en el clúster designado. El recurso compartido de datos incluye una tabla y datos de solo lectura de muestra. Otro clúster de Amazon Redshift puede leer estos datos.

Si desea comenzar a compartir datos en una cuenta de AWS mediante la ejecución de instrucciones SQL para configurar un recurso compartido de datos y conceder permisos sin utilizar CloudFormation, consulte Uso compartido de acceso de lectura a los datos en una Cuenta de AWS.

Antes de ejecutar la pila de CloudFormation para compartir datos, debe iniciar sesión con un usuario que tenga permiso para crear un rol de IAM y una función de Lambda. También necesitas dos clústeres de Amazon Redshift en la misma cuenta. Uno, el productor, se utiliza para compartir los datos de muestra, y el otro, el consumidor, para leerlos. El requisito principal para estos clústeres es que cada uno utilice nodos RA3. Para informarse de los requisitos adicionales, consulte Consideraciones al compartir datos en Amazon Redshift.

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 la automatización de la configuración con CloudFormation, consulte ¿Qué es AWS CloudFormation?

importante

Antes del lanzamiento de la pila de CloudFormation, asegúrese de que tiene dos clústeres de Amazon Redshift en la misma cuenta y que los clústeres usan nodos RA3. Asegúrese de que cada clúster tenga una base de datos y un superusuario. Para obtener más información, consulte CREATE DATABASE y superuser.

Para lanzar la pila de CloudFormation para el uso compartido de datos de Amazon Redshift, haga lo siguiente:
  1. Haga clic en Launch CFN stack (Lanzar la pila de CFN), lo que lo llevará al servicio de 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. Para obtener más información acerca de las plantillas de CloudFormation, consulte Más información sobre los aspectos básicos de las plantillas.

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

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

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

    • El nombre de la base de datos, por ejemplo dev

    • El nombre del usuario de la base de datos; por ejemplo, consumeruser

    Recomendamos utilizar clústeres de prueba porque la pila crea varios objetos de base de datos.

    Elija Next (Siguiente).

  4. Aparecerán las opciones de la pila.

    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.

CloudFormation tarda unos 10 minutos en crear la pila de Amazon Redshift con la plantilla y se crea un recurso compartido de datos denominado myproducer_share. La pila crea el recurso compartido de datos en la base de datos especificada en los detalles de la pila. Solo los objetos de esa base de datos pueden compartirse.

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

  • Asegúrese de haber ingresado el nombre del clúster, el nombre de la base de datos y el nombre del usuario de la base de datos correctos para cada clúster de Redshift.

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

  • Asegúrese de haber iniciado sesión con un usuario que tenga permiso para crear un rol de IAM y una función de Lambda. Para obtener más información acerca de cómo crear roles de IAM, consulte Creación de roles de IAM. Para obtener más información sobre las políticas de creación de la función Λ, consulte Desarrollo de funciones.

Consulta del recurso compartido de datos creado

Para utilizar el siguiente procedimiento, asegúrese de tener los permisos necesarios para ejecutar consultas en cada clúster descrito.

Para consultar su recurso compartido de datos:
  1. Conéctese al clúster productor de la base de datos que ingresó cuando creó la pila de CloudFormation, utilizando una herramienta de cliente como el Editor de consultas de Amazon Redshift versión 2.

  2. Consulte los recursos compartidos de datos.

    SHOW DATASHARES; +------------------+-------------+-----------------+-------------------+------------+------------+---------------------+-----------+------------------+--------------------------------------+ | share_name | share_owner | source_database | consumer_database | share_type | createdate | is_publicaccessible | share_acl | producer_account | producer_namespace | +------------------+-------------+-----------------+-------------------+------------+------------+---------------------+-----------+------------------+--------------------------------------+ | myproducer_share | 100 | sample_data_dev | myconsumer_db | INBOUND | NULL | true | NULL | producer-acct | your-producer-namespace | +------------------+-------------+-----------------+-------------------+------------+------------+---------------------+-----------+------------------+--------------------------------------+

    El comando anterior devuelve el nombre del recurso compartido de datos que creó la pila, denominado myproducer_share. También devuelve el nombre de la base de datos asociada al recurso compartido de datos, myconsumer_db.

    Copie el identificador de espacio de nombres productor para utilizarlo en un paso posterior.

  3. Describa los objetos del recurso compartido de datos.

    DESC DATASHARE myproducer_share; +------------------+--------------------------------------+------------+------------------+-------------+-------------------------------------+-------------+ | producer_account | producer_namespace | share_type | share_name | object_type | object_name | include_new | +------------------+--------------------------------------+------------+------------------+-------------+-------------------------------------+-------------+ | producer-acct | your-producer-namespace | OUTBOUND | myproducer_share | schema | myproducer_schema | true | | producer-acct | your-producer-namespace | OUTBOUND | myproducer_share | table | myproducer_schema.tickit_sales | NULL | | producer-acct | your-producer-namespace | OUTBOUND | myproducer_share | view | myproducer_schema.ticket_sales_view | NULL | +------------------+--------------------------------------+------------+------------------+-------------+-------------------------------------+-------------+

    Cuando describe el recurso compartido de datos, devuelve las propiedades de las tablas y las vistas. La pila agrega tablas y vistas con datos de muestra a la base de datos productora; por ejemplo, tickit_sales y tickit_sales_view. Para obtener más información acerca de la base de datos de ejemplo TICKIT, consulte Base de datos de muestra.

    No es necesario delegar permisos en el recurso compartido de datos para ejecutar las consultas. La pila otorga los permisos necesarios.

  4. Conéctese al clúster consumidor con la herramienta del cliente. Describa el recurso compartido de datos y especifique el espacio de nombres del productor.

    DESC DATASHARE myproducer_share OF NAMESPACE '<namespace id>'; --specify the unique identifier for the producer namespace +------------------+--------------------------------------+------------+------------------+-------------+-------------------------------------+-------------+ | producer_account | producer_namespace | share_type | share_name | object_type | object_name | include_new | +------------------+--------------------------------------+------------+------------------+-------------+-------------------------------------+-------------+ | producer-acct | your-producer-namespace | INBOUND | myproducer_share | schema | myproducer_schema | NULL | | producer-acct | your-producer-namespace | INBOUND | myproducer_share | table | myproducer_schema.tickit_sales | NULL | | producer-acct | your-producer-namespace | INBOUND | myproducer_share | view | myproducer_schema.ticket_sales_view | NULL | +------------------+--------------------------------------+------------+------------------+-------------+-------------------------------------+-------------+
  5. Para consultar las tablas del recurso compartido de datos, puede especificar la base de datos y el esquema del recurso compartido de datos. Para obtener más información, consulte Ejemplos de uso de una consulta entre bases de datos. Las siguientes consultas muestran datos de ventas y vendedores de la tabla VENTAS de la base de datos de ejemplo TICKIT. Para obtener más información, consulte Tabla SALES.

    SELECT * FROM myconsumer_db.myproducer_schema.tickit_sales_view; +---------+--------+----------+---------+---------+--------+---------+-----------+------------+---------------------+ | salesid | listid | sellerid | buyerid | eventid | dateid | qtysold | pricepaid | commission | saletime | +---------+--------+----------+---------+---------+--------+---------+-----------+------------+---------------------+ | 1 | 1 | 36861 | 21191 | 7872 | 1875 | 4 | 728 | 109.2 | 2008-02-18 02:36:48 | | 2 | 4 | 8117 | 11498 | 4337 | 1983 | 2 | 76 | 11.4 | 2008-06-06 05:00:16 | | 3 | 5 | 1616 | 17433 | 8647 | 1983 | 2 | 350 | 52.5 | 2008-06-06 08:26:17 | | 4 | 5 | 1616 | 19715 | 8647 | 1986 | 1 | 175 | 26.25 | 2008-06-09 08:38:52 | | 5 | 6 | 47402 | 14115 | 8240 | 2069 | 2 | 154 | 23.1 | 2008-08-31 09:17:02 | +---------+--------+----------+---------+---------+--------+---------+-----------+------------+---------------------+
    nota

    La consulta se ejecuta en la vista del esquema compartido. No puede conectarse de manera directa a las bases de datos que se hayan creado a partir de los recursos compartidos de datos. Son de solo lectura.

  6. Para ejecutar una consulta que incluya agregaciones, utilice el siguiente ejemplo.

    SELECT * FROM myconsumer_db.myproducer_schema.tickit_sales ORDER BY 1,2 LIMIT 5; +---------+--------+----------+---------+---------+--------+---------+-----------+------------+---------------------+ | salesid | listid | sellerid | buyerid | eventid | dateid | qtysold | pricepaid | commission | saletime | +---------+--------+----------+---------+---------+--------+---------+-----------+------------+---------------------+ | 1 | 1 | 36861 | 21191 | 7872 | 1875 | 4 | 728 | 109.2 | 2008-02-18 02:36:48 | | 2 | 4 | 8117 | 11498 | 4337 | 1983 | 2 | 76 | 11.4 | 2008-06-06 05:00:16 | | 3 | 5 | 1616 | 17433 | 8647 | 1983 | 2 | 350 | 52.5 | 2008-06-06 08:26:17 | | 4 | 5 | 1616 | 19715 | 8647 | 1986 | 1 | 175 | 26.25 | 2008-06-09 08:38:52 | | 5 | 6 | 47402 | 14115 | 8240 | 2069 | 2 | 154 | 23.1 | 2008-08-31 09:17:02 | +---------+--------+----------+---------+---------+--------+---------+-----------+------------+---------------------+

    La consulta devuelve datos de las ventas y los vendedores de los datos de ejemplo de TICKIT.

    Para obtener más ejemplos de consultas del recurso compartido de datos, consulte Uso compartido de acceso de lectura a los datos en una Cuenta de AWS.