Conceitos básicos do uso de consultas federadas no PostgreSQL com o AWS CloudFormation
É possível usar consultas federadas para consultar bancos de dados operacionais. Neste guia de conceitos básicos, você pode automatizar a configuração usando uma pilha de exemplo do AWS CloudFormation para habilitar uma consulta federada de um cluster do Amazon Redshift para um banco de dados sem servidor do Aurora PostgreSQL. Você pode iniciar a execução rapidamente sem precisar executar instruções SQL para provisionar seus recursos.
A pilha cria um esquema externo, referenciando sua instância do Aurora PostgreSQL, que inclui tabelas com amostra de dados. É possível consultar tabelas no esquema externo pelo cluster do Redshift.
Caso prefira começar a usar consultas federadas executando instruções SQL para configurar um esquema externo, sem usar o CloudFormation, consulte Conceitos básicos do uso de consultas federadas no PostgreSQL.
Antes de executar a pilha do CloudFormation para consultas federadas, certifique-se de ter um banco de dados sem servidor Amazon Aurora edição compatível com PostgreSQL com a API Data ativada. Ative a API Data nas propriedades do banco de dados. Se não conseguir encontrar a configuração, verifique se está executando uma instância sem servidor do Aurora PostgreSQL. Certifique-se também de que tem um cluster do Amazon Redshift que use nós RA3. Recomendamos que tanto o cluster do Redshift como a instância do Aurora PostgreSQL sem servidor estejam na mesma Virtual Private Cloud (VPC) e grupo de sub-rede. Dessa forma, você pode adicionar o grupo de segurança para o cluster Amazon Redshift às regras de entrada do grupo de segurança para sua instância de banco de dados do Aurora PostgreSQL.
Consulte mais informações sobre conceitos básicos da configuração de um cluster do Amazon Redshift em Clusters provisionados do Amazon Redshift. Para obter mais informações sobre configurar recursos com o CloudFormation, consulte O que é o AWS CloudFormation?. Consulte mais informações sobre a configuração de um cluster de banco de dados do Aurora em Criar um cluster de banco de dados do Aurora Serverless v1.
Iniciar uma pilha do CloudFormation para consultas federadas do Redshift
Use o procedimento a seguir para iniciar a pilha do CloudFormation para o Amazon Redshift a fim de habilitar consultas federadas. Antes, certifique-se de que o cluster do Amazon Redshift e a instância do Aurora PostgreSQL sem servidor estão configurados.
Para iniciar uma pilha do CloudFormation para consultas federadas
Clique em Launch CFN stack
(Iniciar a pilha CFN) aqui para iniciar o serviço CloudFormation no AWS Management Console. 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.
Selecione Next (Próximo) Para inserir os detalhes da pilha.
-
Em Parameters (Parâmetros), para o cluster, insira o seguinte:
-
O nome do cluster do Amazon Redshift, por exemplo
ra3-consumer-cluster
-
Um nome do banco de dados específico, por exemplo
dev
-
O nome de um usuário do banco de dados, por exemplo
consumeruser
Insira também os parâmetros para o cluster de banco de dados do Aurora, incluindo usuário, nome do banco de dados, porta e endpoint. Recomendamos usar um cluster de teste e testar o banco de dados sem servidor, pois a pilha criará vários objetos de banco de dados.
Escolha Próximo.
São exibidas as opções de pilha.
-
Selecione Next (Próximo) para aceitar as configurações padrão.
Em Capabilities (Capacidades), escolha I acknowledge that AWS CloudFormation might create IAM resources (Estou ciente de que o pode criar recursos do IAM).
Selecione Criar pilha.
Selecione Criar pilha. O CloudFormation provisiona os recursos do template, o que leva cerca de 10 minutos, e cria um esquema externo.
Se ocorrer um erro durante a criação da pilha, faça o seguinte:
Acesse a guia Events (Eventos) do CloudFormation para obter informações que podem ajudar você a solucionar o erro.
Verifique se inseriu o nome correto, o nome do banco de dados e o nome de usuário do banco de dados do cluster do Redshift. Confira também os parâmetros para a instância do Aurora PostgreSQL.
Verifique se o cluster tem nós RA3.
Certifique-se de que o banco de dados e o cluster do Redshift estejam na mesma sub-rede e no mesmo grupo de segurança.
Consultar dados do esquema externo
Para usar o procedimento a seguir, verifique se você tem as permissões necessárias para executar consultas no cluster e no banco de dados descrito.
Para consultar um banco de dados externo com consulta federada
Conecte-se ao banco de dados do Redshift que você inseriu ao criar a pilha, usando uma ferramenta cliente, como o editor de consultas do Redshift.
Realize a consulta para o esquema externo criado pela pilha.
select * from svv_external_schemas;
A visualização SVV_EXTERNAL_SCHEMAS retorna informações sobre esquemas externos disponíveis. Nesse caso, o esquema externo criado pela pilha é retornado,
myfederated_schema
. Outros esquemas externos também poderão ser retornados, se houver alguma configuração. A visualização também retorna o banco de dados associado do esquema. O banco de dados é o do cluster de banco de dados do Aurora que você inseriu ao criar a pilha. A pilha adiciona uma tabela ao cluster de banco de dados do Aurora, chamadacategory
, e outra tabela chamadasales
.-
Execute consultas SQL em tabelas do esquema externo que referencia os bancos de dados do Aurora PostgreSQL. O exemplo a seguir mostra uma consulta.
SELECT count(*) FROM myfederated_schema.category;
A tabela
category
retorna vários registros. Também é possível retornar registros da tabelasales
.SELECT count(*) FROM myfederated_schema.sales;
Para obter mais exemplos, consulte Exemplo de uso de uma consulta federada.