Exportar dados de um cluster de banco de dados do Aurora PostgreSQL para o Amazon S3
Consulte dados em um Aurora PostgreSQLcluster de banco de dados e exporte-os diretamente para arquivos armazenados em um bucket do Amazon S3. Para fazer isso, primeiro instale a extensão aws_s3
do Aurora PostgreSQL . Essa extensão fornece as funções usadas para exportar os resultados de consultas para o Amazon S3. A seguir, é possível descobrir como instalar a extensão e exportar dados para o Amazon S3.
Você pode exportar de uma instância de banco de dados provisionada ou de uma instância de banco de dados do Aurora Serverless v2. Essas etapas não são compatíveis com o Aurora Serverless v1.
nota
A exportação entre contas não é compatível com o Amazon S3.
Todas as versões do Aurora PostgreSQL disponíveis no momento são compatíveis com a exportação de dados do Amazon Simple Storage Service. Para obter informações detalhadas sobre as versões, consulte Atualizações do Amazon Aurora PostgreSQL nas Notas de lançamento do Aurora PostgreSQL.
Se você não tiver um bucket configurado para sua exportação, consulte os tópicos a seguir no Guia do usuário do Amazon Simple Storage Service.
Configuração do Amazon S3
Por padrão, os dados exportados do Aurora PostgreSQL ao Amazon S3 usam criptografia do lado do servidor com uma Chave gerenciada pela AWS. Também é possível usar uma chave gerenciada pelo cliente que você já tenha criado. Se estiver usando a criptografia do bucket, o bucket do Amazon S3 deverá ser criptografado com uma chave do AWS Key Management Service (AWS KMS) (SSE-KMS). No momento, os buckets criptografados com chaves gerenciadas pelo Amazon S3 (SSE-S3) não são compatíveis.
nota
É possível salvar o banco de dados e os dados de snapshot do cluster de banco de dados no Amazon S3 usando o AWS Management Console, a AWS CLI ou a API do Amazon RDS. Para obter mais informações, consulte Exportar dados de snapshot de cluster de banco de dados para o Amazon S3.
Tópicos
- Instalar a extensão aws_s3
- Visão geral da exportação de dados para o Amazon S3
- Especificar o caminho do arquivo do Amazon S3 para o qual exportar
- Configurar o acesso a um bucket do Amazon S3
- Exportar dados de consulta usando a função aws_s3.query_export_to_s3
- Referência de funções
- Solução de problemas de acesso ao Amazon S3
Instalar a extensão aws_s3
Antes de usar o Amazon Simple Storage Service com o seu cluster de banco de dados do Aurora PostgreSQL, você precisa instalar a extensão aws_s3
. Essa extensão fornece funções para exportar dados da instância gravadora de um cluster de banco de dados do Aurora PostgreSQL para um bucket do Amazon S3. Também fornece as funções para importar dados do Amazon S3. Para ter mais informações, consulte Importar dados do Amazon S3 para um cluster de banco de dados do Aurora PostgreSQL. A extensão aws_s3
depende de algumas das funções auxiliares da extensão aws_commons
, que é instalada automaticamente quando necessária.
Como instalar a extensão aws_s3
Use psql (ou pgAdmin) para se conectar à instância gravadora de seu cluster de banco de dados do Aurora PostgreSQL como um usuário que tem privilégios
rds_superuser
. Se você manteve o nome padrão durante o processo de configuração, se conectará comopostgres
.psql --host=
111122223333
.aws-region
.rds.amazonaws.com --port=5432 --username=postgres --passwordPara instalar a extensão, execute o comando a seguir.
postgres=>
CREATE EXTENSION aws_s3 CASCADE;NOTICE: installing required extension "aws_commons" CREATE EXTENSION
Para verificar se a extensão está instalada, você pode usar o metacomando psql
\dx
.postgres=>
\dxList of installed extensions Name | Version | Schema | Description -------------+---------+------------+--------------------------------------------- aws_commons | 1.2 | public | Common data types across AWS services aws_s3 | 1.1 | public | AWS S3 extension for importing data from S3 plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language (3 rows)
As funções para importar dados do Amazon S3 e exportar dados para o Amazon S3 agora estão disponíveis para uso.
Confira se a sua versão do Aurora PostgreSQL oferece suporte a exportações para o Amazon S3
Você pode verificar se sua versão do Aurora PostgreSQL oferece suporte à exportação para o Amazon S3 usando o comando describe-db-engine-versions
. O exemplo a seguir verifica se a versão 10.14 pode ser exportada para o Amazon S3.
aws rds describe-db-engine-versions --region us-east-1 \ --engine aurora-postgresql --engine-version 10.14 | grep s3Export
Se a saída incluir a string "s3Export"
, o mecanismo é compatível com exportações do Amazon S3. Caso contrário, não há compatibilidade.
Visão geral da exportação de dados para o Amazon S3
Para exportar dados armazenados em um banco de dados Aurora PostgreSQL para um bucket do Amazon S3, use o procedimento a seguir.
Para exportar dados do Aurora PostgreSQL para o S3
-
Identifique um caminho de arquivo do Amazon S3 a ser usado para exportar dados. Para obter detalhes sobre esse processo, consulte Especificar o caminho do arquivo do Amazon S3 para o qual exportar.
-
Conceda permissão para acessar o bucket do Amazon S3.
Para exportar dados para um arquivo do Amazon S3, forneça ao cluster de bancos de dados Aurora PostgreSQL permissão para acessar o bucket do Amazon S3 a ser usado para armazenamento pela exportação. Isso inclui as seguintes etapas:
-
Crie uma política do IAM que forneça acesso a um bucket do Amazon S3 para o qual você deseja exportar.
-
Crie uma função do IAM.
-
Anexe a política criada à função criada.
-
Adicione esse perfil do IAM ao cluster de banco de dados.
Para obter detalhes sobre esse processo, consulte Configurar o acesso a um bucket do Amazon S3.
-
-
Identifique uma consulta de banco de dados para obter os dados. Exporte os dados da consulta chamando a função
aws_s3.query_export_to_s3
.Após concluir as tarefas de preparação anteriores, use a função aws_s3.query_export_to_s3 para exportar os resultados da consulta para o Amazon S3. Para obter detalhes sobre esse processo, consulte Exportar dados de consulta usando a função aws_s3.query_export_to_s3.
Especificar o caminho do arquivo do Amazon S3 para o qual exportar
Especifique as seguintes informações para identificar o local no Amazon S3 para o qual deseja exportar dados:
-
Nome do bucket – um bucket é um contêiner para objetos ou arquivos do Amazon S3.
Para obter mais informações sobre como armazenar dados com o Amazon S3, consulte Como criar um bucket e Visualização de um objeto no Guia do usuário do Amazon Simple Storage Service.
-
Caminho do arquivo – o caminho do arquivo identifica onde a exportação é armazenada no bucket do Amazon S3. O caminho do arquivo consiste no seguinte:
-
Um prefixo de caminho opcional que identifica um caminho de pasta virtual.
-
Um prefixo de arquivo que identifica um ou mais arquivos a serem armazenados. Exportações maiores são armazenadas em vários arquivos, cada um com um tamanho máximo de aproximadamente 6 GB. Os nomes de arquivos adicionais têm o mesmo prefixo de arquivo, mas com o acréscimo de
_part
. OXX
representa 2, depois 3 e assim por diante.XX
Por exemplo, um caminho de arquivo com uma pasta
exports
e um prefixo de arquivoquery-1-export
é/exports/query-1-export
. -
-
Região da AWS (opcional): a região da AWS onde o bucket do Amazon S3 está localizado. Se você não especificar um valor de região da AWS, o Aurora salvará os arquivos no Amazon S3, na mesma região da AWS que a instância de banco de dados de exportação.
nota
Atualmente, a região AWS deve ser a mesma que a região de exportação do cluster de banco de dados.
Para obter uma listagem de nomes de regiões da AWS e os valores associados, consulte Regiões e zonas de disponibilidade.
Para manter as informações do arquivo do Amazon S3 sobre onde a exportação deve ser armazenada, você pode usar a função aws_commons.create_s3_uri para criar uma estrutura aws_commons._s3_uri_1
composta da seguinte forma.
psql=> SELECT aws_commons.create_s3_uri( '
amzn-s3-demo-bucket
', 'sample-filepath', 'us-west-2' ) AS s3_uri_1 \gset
Posteriormente, você fornece esse valor de s3_uri_1
como um parâmetro na chamada para a função aws_s3.query_export_to_s3. Para ver exemplos, consulte Exportar dados de consulta usando a função aws_s3.query_export_to_s3.