As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Esvaziar um cluster de banco de dados do Amazon Neptune usando a API de redefinição rápida
A API REST de redefinição rápida do Neptune permite redefinir um grafo do Neptune com rapidez e facilidade, removendo todos seus dados.
É possível fazê-lo em um bloco de anotações Neptune usando a magia de linha %db_reset.
nota
Esse atributo está disponível a partir da versão 1.0.4.0 do mecanismo do Neptune.
Na maioria dos casos, uma operação de redefinição rápida é concluída em alguns minutos. A duração pode variar um pouco dependendo da carga no cluster quando a operação é iniciada.
Uma operação de redefinição rápida não gera E/S adicionais.
O tamanho do volume de armazenamento não diminui após uma redefinição rápida. Em vez disso, o armazenamento é reutilizado à medida que novos dados são inseridos. Isso significa que os tamanhos dos volumes dos snapshots criados antes e depois de uma operação de redefinição rápida serão os mesmos. Os tamanhos dos volumes dos clusters restaurados usando os snapshots criados antes e depois de uma operação de redefinição rápida também serão os mesmos
-
Como parte da operação de redefinição, todas as instâncias no cluster de banco de dados são reiniciadas.
nota
Em raras condições, essas redefinições do servidor também podem ocasionar failover do cluster.
Importante
Usar a redefinição rápida pode interromper a integração do cluster de banco de dados do Neptune com outros serviços. Por exemplo:
A redefinição rápida exclui todos os dados de fluxo do banco de dados e redefine completamente os fluxos. Isso significa que os consumidores de fluxos podem não funcionar mais sem uma nova configuração.
A reinicialização rápida remove todos os metadados sobre os recursos de SageMaker IA usados pelo Neptune ML, incluindo trabalhos e endpoints. Eles continuam existindo na SageMaker IA, e você pode continuar usando os endpoints de SageMaker IA existentes para consultas de inferência do Neptune ML, mas o gerenciamento do Neptune ML não funciona mais com eles. APIs
Integrações como a full-text-search integração com também ElasticSearch são eliminadas pela reinicialização rápida e devem ser restabelecidas manualmente antes de poderem ser usadas novamente.
Como excluir todos os dados de um cluster de banco de dados do Neptune usando a API
-
Primeiro, você gera um token que pode ser usado para realizar a redefinição do banco de dados. Essa etapa tem como objetivo ajudar a impedir que redefinam acidentalmente um banco de dados.
Você faz isso enviando uma solicitação
HTTP POST
ao endpoint/system
na instância de gravador do cluster de banco de dados para especificar a açãoinitiateDatabaseReset
.O comando
curl
usando o tipo de conteúdo JSON seria:curl -X POST \ -H 'Content-Type: application/json' \ https://
your_writer_instance_endpoint
:8182/system \ -d '{ "action" : "initiateDatabaseReset" }'Ou, usando o tipo de conteúdo
x-www-form-urlencoded
:curl -X POST \ -H 'Content-Type: application/x-www-form-urlencoded' \ https://
your_writer_instance_endpoint
:8182/system \ -d 'action=initiateDatabaseReset 'A solicitação
initiateDatabaseReset
exibe o token de redefinição na resposta JSON, da seguinte forma:{ "status" : "200 OK", "payload" : { "token" : "
new_token_guid
" } }O token permanece válido por uma hora (sessenta minutos) após a emissão.
Se você enviar a solicitação a uma instância de leitor ou ao endpoint de status, o Neptune lançará um
ReadOnlyViolationException
.Se você enviar várias solicitações
initiateDatabaseReset
, somente o token mais recente gerado será válido para a segunda etapa, na qual você realmente executará a redefinição.Se o servidor for reiniciado logo após a solicitação
initiateDatabaseReset
, o token gerado se tornará inválido e você precisará enviar uma nova solicitação para obter um novo token. -
Depois, você envia uma solicitação
performDatabaseReset
com o token recebido de volta deinitiateDatabaseReset
ao endpoint/system
na instância de gravador do cluster de banco de dados. Isso exclui todos os dados do cluster de banco de dados.O comando
curl
usando o tipo de conteúdo JSON é:curl -X POST \ -H 'Content-Type: application/json' \ https://
your_writer_instance_endpoint
:8182/system \ -d '{ "action" : "performDatabaseReset", "token" : "token_guid
" }'Ou, usando o tipo de conteúdo
x-www-form-urlencoded
:curl -X POST \ -H 'Content-Type: application/x-www-form-urlencoded' \ https://
your_writer_instance_endpoint
:8182/system \ -d 'action=performDatabaseReset&token=token_guid
'A solicitação gera uma resposta JSON. Se a solicitação for aceita, a resposta será:
{ "status" : "200 OK" }
Se o token que você enviou não corresponder ao que foi emitido, a resposta será a seguinte:
{ "code" : "InvalidParameterException", "requestId":"
token_guid
", "detailedMessage" : "System command parameter 'token' : 'token_guid
' does not match database reset token" }Se a solicitação for aceita e a redefinição começar, o servidor será reiniciado e excluirá os dados. Você não pode enviar nenhuma outra solicitação ao cluster de banco de dados enquanto ele está sendo redefinido.
Usar a API de redefinição rápida com IAM-Auth
Se você tiver a IAM-Auth habilitada no cluster de banco de dados, poderá usar o awscurl
Usar o awscurl para enviar solicitações de redefinição rápida com IAM-Auth
Defina as variáveis de ambiente
AWS_ACCESS_KEY_ID
eAWS_SECRET_ACCESS_KEY
corretamente (e tambémAWS_SECURITY_TOKEN
se você estiver usando uma credencial temporária).-
Uma solicitação
initiateDatabaseReset
tem a seguinte aparência:awscurl -X POST --service neptune-db "$SYSTEM_ENDPOINT" \ -H 'Content-Type: application/json' --region us-west-2 \ -d '{ "action" : "initiateDatabaseReset" }'
-
Uma solicitação
performDatabaseReset
tem a seguinte aparência:awscurl -X POST --service neptune-db "$SYSTEM_ENDPOINT" \ -H 'Content-Type: application/json' --region us-west-2 \ -d '{ "action" : "performDatabaseReset" }'
Usar a magia de linha %db_reset
da bancada de trabalho do Neptune para redefinir um cluster de banco de dados
A bancada de trabalho do Neptune é compatível com uma magia de linha %db_reset
que permite realizar uma redefinição rápida do banco de dados em um bloco de anotações Neptune.
Se você invocar a magia sem nenhum parâmetro, verá uma tela perguntando se deseja excluir todos os dados do cluster, com uma caixa de seleção solicitando que você reconheça que os dados do cluster não estarão mais disponíveis após a exclusão. Nesse ponto, é possível optar por excluir os dados ou cancelar a operação.
Uma opção mais perigosa é invocar %db_reset
com a opção --yes
ou -y
, o que faz com que a exclusão seja executada sem nenhuma solicitação adicional.
Você também pode realizar a redefinição em duas etapas, assim como com a API REST:
%db_reset --generate-token
A resposta é:
{ "status" : "200 OK", "payload" : { "token" : "
new_token_guid
" } }
Então faça:
%db_reset --token
new_token_guid
A resposta é:
{ "status" : "200 OK" }
Códigos de erro comuns para operações de redefinição rápida
Código de erro do Neptune | Status HTTP | Mensagem | Exemplo |
---|---|---|---|
|
400 |
O parâmetro de comando do sistema |
Parâmetro inválido |
|
400 |
Muitos valores fornecidos para: |
Uma solicitação de reinicialização rápida com mais de uma ação enviada com o cabeçalho x-www-form-urlencoded 'Content-Type:Application/ ' |
|
400 |
Campo duplicado “ação” |
Uma solicitação de redefinição rápida com mais de uma ação enviada com o cabeçalho “Content-Type: application/json”. |
|
400 |
Rota ruim:/ |
Solicitação enviada a um endpoint incorreto |
|
400 |
Parâmetros obrigatórios ausentes: [ação] |
Uma solicitação de redefinição rápida não contém o parâmetro “ação” necessário. |
|
400 |
Não são permitidas gravações em uma instância de réplica de leitura. |
Uma solicitação de redefinição rápida foi enviada a um endpoint de status ou de leitor |
|
403 |
Token de autenticação ausente |
Uma solicitação de redefinição foi enviada sem assinaturas corretas a um endpoint de banco de dados com a IAM-Auth habilitada |
|
500 |
A redefinição do banco de dados está em andamento. Tente fazer a consulta novamente depois que o cluster estiver disponível. |
Quando a redefinição rápida começa, ocorre uma falha nas consultas existentes e recebidas do Gremlin/Sparql. |