

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Conceitos básicos do compartilhamento de dados por meio do AWS CloudFormation no Amazon Redshift
<a name="data-sharing-within-account-CF"></a>

Você pode automatizar a configuração do compartilhamento de dados usando uma pilha do AWS CloudFormation, que provisiona recursos da AWS. A pilha do CloudFormation configura o compartilhamento de dados entre dois clusters do Amazon Redshift na mesma conta da AWS. Assim, é possível iniciar o compartilhamento de dados sem executar instruções SQL para provisionar seus recursos.

A pilha cria uma unidade de compartilhamento de dados no cluster designado por você. A unidade de compartilhamento de dados contém uma tabela e uma amostra de dados somente para leitura. Esses dados podem ser lidos por outro cluster do Amazon Redshift.

Se você quiser começar a compartilhar dados em uma conta da AWS executando instruções SQL para configurar uma unidade de compartilhamento de dados e conceder permissões, sem usar o CloudFormation, consulte [Compartilhar o acesso de leitura aos dados em uma Conta da AWS](within-account.md).

Antes de executar a pilha do CloudFormation de compartilhamento de dados, é necessário estar conectado a um usuário que tenha permissão para criar uma função do IAM e uma função do Lambda. Você também precisa ter dois clusters do Amazon Redshift na mesma conta. Use um, o *produtor*, para compartilhar os dados de exemplo, e o outro, *consumidor*, para lê-los. O principal requisito desses clusters é que cada um use nós RA3. Para requisitos adicionais, consulte [Considerações sobre compartilhamento de dados no Amazon Redshift](datashare-considerations.md).

Consulte mais informações sobre conceitos básicos da configuração de um cluster do Amazon Redshift em [Clusters provisionados do Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/new-user.html). Para obter mais informações sobre a automação da configuração com o CloudFormation, consulte [O que é o AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

**Importante**  
Antes de iniciar a pilha do CloudFormation, é necessário ter dois clusters do Amazon Redshift na mesma conta e os clusters devem usar nós RA3. Cada cluster deve ter um banco de dados e um superusuário. Para obter mais informações, consulte [CREATE DATABASE](r_CREATE_DATABASE.md) e [Superusuários](r_superusers.md).

**Para iniciar a pilha do CloudFormation para o compartilhamento de dados do Amazon Redshift:**

1. Clique em [https://console.aws.amazon.com/cloudformation/home?#/stacks/new?stackName=DataShare&templateURL=https://s3.amazonaws.com/redshift-downloads/docs-downloads/DataShare.yml](https://console.aws.amazon.com/cloudformation/home?#/stacks/new?stackName=DataShare&templateURL=https://s3.amazonaws.com/redshift-downloads/docs-downloads/DataShare.yml) (Iniciar a pilha do CFN), que leva você ao serviço do CloudFormation no Console de gerenciamento da AWS.

   Se for solicitado, faça login. 

   Inicia-se o processo de criação de pilha, fazendo referência a um arquivo de template do CloudFormation, que é armazenado no Amazon S3. O *template* do CloudFormation é um arquivo de texto em formato JSON que declara os recursos da AWS que compõem uma pilha. Para obter mais informações sobre modelos do CloudFormation, consulte [Conheça o básico de modelos](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/gettingstarted.templatebasics.html).

1. Selecione **Next** (Próximo) para inserir os detalhes da pilha.

1. Em **Parameters** (Parâmetros), para cada cluster, insira o seguinte:
   + O nome do cluster do Amazon Redshift, por exemplo **ra3-consumer-cluster**.
   + O nome do banco de dados; por exemplo **dev**
   + O nome de um usuário do banco de dados; por exemplo **consumeruser**

   Recomendamos o uso de clusters de teste, pois a pilha cria vários objetos de banco de dados.

   Escolha **Próximo**. 

1. São exibidas as opções de pilha. 

   Selecione **Next** (Próximo) para aceitar as configurações padrão.

1. Em **Capabilities** (Capacidades), escolha **I acknowledge that AWS CloudFormation might create IAM resources** (Estou ciente de que o pode criar recursos do IAM).

1. Selecione **Criar pilha**. 

O CloudFormation leva cerca de 10 minutos para criar a pilha do Amazon Redshift usando o modelo e cria uma unidade de compartilhamento de dados chamada `myproducer_share`. A pilha cria a unidade de compartilhamento de dados no banco de dados especificado nos detalhes da pilha. Somente objetos desse banco de dados podem ser compartilhados.

Se ocorrer um erro durante a criação da pilha, faça o seguinte:
+ Verifique se inseriu corretamente o nome do cluster, o nome do banco de dados e o nome do usuário do banco de dados de cada cluster do Redshift. 
+ Verifique se o cluster tem nós RA3.
+ Verifique se você está conectado com um usuário que tem permissão para criar um perfil do IAM e uma função do Lambda. Para obter mais informações sobre a criação de perfis do IAM, consulte [Criação de funções do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html). Para obter mais informações sobre políticas para a criação da função Λ, consulte [Desenvolvimento de função](https://docs.aws.amazon.com/lambda/latest/dg/access-control-identity-based.html#permissions-user-function).

## Consultar a unidade de compartilhamento de dados que você criou
<a name="data-sharing-within-account-CF-querying"></a>

Para usar o procedimento a seguir, verifique se você tem as permissões necessárias para executar consultas em cada cluster descrito.

**Para consultar sua unidade de compartilhamento de dados:**

1. Conecte-se ao cluster de produtor no banco de dados do Redshift inserido ao criar a pilha do CloudFormation usando uma ferramenta cliente, como o Editor de Consultas v2 do Amazon Redshift.

1. Consulte as unidades de compartilhamento de dados.

   ```
   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}}       |
   +------------------+-------------+-----------------+-------------------+------------+------------+---------------------+-----------+------------------+--------------------------------------+
   ```

   O comando anterior retorna o nome da unidade de compartilhamento de dados criada pela pilha, chamada `myproducer_share`. Também retorna o nome do banco de dados associado à unidade de compartilhamento de dados, ., `myconsumer_db`. 

   Copie o identificador de namespace do produtor para usar em uma etapa posterior.

1. Descreva os objetos na unidade de compartilhamento de dados.

   ```
   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        |
   +------------------+--------------------------------------+------------+------------------+-------------+-------------------------------------+-------------+
   ```

   Quando você descreve a unidade de compartilhamento de dados, ela retorna propriedades para tabelas e visualizações. A pilha adiciona ao banco de dados do produtor tabelas e visualizações com exemplos de dados, como `tickit_sales` e `tickit_sales_view`. Para obter mais informações sobre os bancos de dados de amostra TICKIT, consulte [Banco de dados de exemplo](c_sampledb.md).

   Não é necessário delegar permissões na unidade de compartilhamento de dados para executar consultas. A pilha concede as permissões necessárias.

1. Conecte-se ao cluster de consumidor usando sua ferramenta cliente. Descreva a unidade de compartilhamento de dados, especificando o namespace do produtor.

   ```
   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        |
   +------------------+--------------------------------------+------------+------------------+-------------+-------------------------------------+-------------+
   ```

1. É possível consultar tabelas na unidade de compartilhamento de dados especificando o banco de dados e o esquema da unidade de compartilhamento de dados. Para obter mais informações, consulte [Exemplos de consulta entre bancos de dados](cross-database_example.md). As consultas a seguir retornam dados de vendas e vendedores da tabela SALES no banco de dados de amostra TICKIT. Para obter mais informações, consulte [Banco de dados de exemplo](c_sampledb.md).

   ```
   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**  
A consulta é executada conforme a visualização no esquema compartilhado. Você não pode se conectar diretamente a bancos de dados criados com base em unidades de compartilhamento de dados. Eles são somente para leitura.

1. Para executar uma consulta que inclua agregações, use o exemplo a seguir.

   ```
   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 |
   +---------+--------+----------+---------+---------+--------+---------+-----------+------------+---------------------+
   ```

   A consulta retorna dados de vendas e de vendedor da amostra de dados do TICKIT.

   Para obter mais exemplos de consultas de unidade de compartilhamento de dados, acesse [Compartilhar o acesso de leitura aos dados em uma Conta da AWS](within-account.md).