Considerações ao acessar dados federados com o Amazon Redshift
Alguns recursos do Amazon Redshift não oferecem suporte ao acesso a dados federados. Você pode encontrar as limitações e as considerações relacionadas a seguir.
Veja as seguintes limitações e considerações ao usar consultas federadas com o Amazon Redshift:
Consultas federadas oferecem suporte ao acesso de leitura para fontes de dados externas. Não é possível gravar ou criar objetos de banco de dados na fonte de dados externa.
Em alguns casos, você pode acessar um cluster de banco de dados do Amazon RDS ou Aurora em uma região da AWS que não seja a do Amazon Redshift. Esses casos normalmente incorre em cobranças de latência de rede para transferir dados entre regiões da AWS. Recomendamos o uso de um banco de dados global Aurora com um endpoint local na mesma região da AWS que seu cluster do Amazon Redshift. Os bancos de dados globais Aurora usam infraestrutura dedicada para replicação baseada em armazenamento em quaisquer duas regiões da AWS com latência típica de menos de 1 segundo.
Considere o custo de acessar o cluster de banco de dados do Amazon RDS ou Aurora. Por exemplo, ao usar esse recurso para acessar o cluster de banco de dados do Aurora, as respectivas cobranças são baseadas em IOPS.
Consultas federadas não habilitam o acesso ao Amazon Redshift pelo cluster de banco de dados do RDS ou Aurora.
As consultas federadas estão disponíveis apenas em regiões da AWS onde o Amazon Redshift e o cluster de banco de dados do Amazon RDS ou Aurora estão disponíveis.
Atualmente, as consultas federadas não oferecem suporte a
ALTER SCHEMA
. Para alterar um esquema, useDROP
e, depois,CREATE EXTERNAL SCHEMA
.Consultas federadas não funcionam com a escalabilidade da simultaneidade.
Atualmente, as consultas federadas não oferecem suporte ao acesso por meio de um wrapper de dados externos do PostgreSQL.
Consultas federadas para RDS MySQL ou Aurora MySQL suportam o isolamento de transações no nível READ COMMITTED.
Se não for especificado, o Amazon Redshift se conectará ao RDS para MySQL ou ao Aurora MySQL na porta 3306. Confirme o número da porta MySQL antes de criar um esquema externo para o MySQL.
Se não for especificado, o Amazon Redshift se conectará ao RDS PostgreSQL ou ao Aurora PostgreSQL na porta 5432. Confirme o número da porta do PostgreSQL antes de criar um esquema externo para o PostgreSQL.
Ao buscar os tipos de dados TIMESTAMP e DATE do MySQL, os valores zero são tratados como NULL.
-
Se um endpoint leitor do cluster de banco de dados do Aurora for usado, poderá ocorrer um erro de “snapshot inválido”. Isso pode ser evitado por um dos seguintes métodos:
Use um endpoint de instância do cluster de banco de dados específico do Aurora (em vez de usar o endpoint de cluster de banco de dados do Aurora). Esse método usa o isolamento de transação REPEATABLE READ para os resultados do banco de dados PostgreSQL.
Use um endpoint de leitor do cluster de banco de dados do Aurora e defina
pg_federation_repeatable_read
como falso para a sessão. Esse método usa o isolamento de transação READ COMMITTED para os resultados do banco de dados PostgreSQL. Consulte mais informações sobre os endpoints de leitor do cluster de banco de dados do Aurora em Tipos de endpoints do Aurora no Guia do usuário do Amazon Aurora. Para obter mais informações sobre opg_federation_repeatable_read
, consulte pg_federation_repeatable_read.
A seguir estão as considerações para transações ao trabalhar com consultas federadas para bancos de dados do PostgreSQL:
-
Se uma consulta consistir em tabelas federadas, o nó líder iniciará uma transação READ ONLY REPEATABLE READ no banco de dados remoto. Esta transação permanece durante a transação do Amazon Redshift.
O nó líder cria um snapshot do banco de dados remoto chamando
pg_export_snapshot
e estabelece um bloqueio de leitura nas tabelas afetadas.Um nó de computação inicia uma transação e usa o snapshot criado no nó líder para emitir consultas no banco de dados remoto.
Versões compatíveis de bancos de dados federados
Um esquema externo do Amazon Redshift pode fazer referência a um banco de dados em um RDS PostgreSQL externo ou Aurora PostgreSQL. Quando isso acontece, estas limitações se aplicam:
Ao criar um esquema externo com referência ao cluster de banco de dados do Aurora, o banco de dados do Aurora PostgreSQL deve estar na versão 9.6 ou posterior.
Ao criar um esquema externo que faz referência ao Amazon RDS, o banco de dados do Amazon RDS PostgreSQL deve estar na versão 9.6 ou posterior.
Um esquema externo do Amazon Redshift pode fazer referência a um banco de dados em um RDS MySQL ou Aurora MySQL externo. Quando isso acontece, estas limitações se aplicam:
Ao criar um esquema externo com referência ao cluster de banco de dados do Aurora, o banco de dados do Aurora MySQL deve estar na versão 5.6 ou posterior.
Ao criar um esquema externo que faz referência ao Amazon RDS, o banco de dados do RDS MySQL deve estar na versão 5.6 ou posterior.