Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Svuotamento di un cluster database Amazon Neptune utilizzando l'API di ripristino rapido
La REST API di ripristino rapido Neptune consente di ripristinare un grafo Neptune in modo veloce e semplice, rimuovendo tutti i relativi dati.
Puoi farlo all'interno di un notebook Neptune usando il comando magic di riga %db_reset.
Nota
Questa funzionalità è disponibile a partire dalla versione 1.0.4.0 del motore Neptune.
Nella maggior parte dei casi, un'operazione di ripristino rapido viene completata entro un paio di minuti. La durata può variare leggermente a seconda del carico sul cluster al momento dell'avvio dell'operazione.
Un'operazione di ripristino rapido non comporta operazioni di I/O aggiuntive.
Le dimensioni del volume di archiviazione non si riducono dopo un ripristino rapido. Al contrario, l'archiviazione viene riutilizzata quando vengono inseriti nuovi dati. Ciò significa che le dimensioni del volume degli snapshot scattati prima e dopo un'operazione di ripristino rapido saranno le stesse. Anche le dimensioni dei volumi dei cluster ripristinati che utilizzano snapshot creati prima e dopo un'operazione di ripristino rapido saranno le stesse
-
Nell'ambito dell'operazione di ripristino, tutte le istanze nel cluster database vengono riavviate.
Nota
In casi rari, questi riavvii del server potrebbero anche causare il failover del cluster.
Importante
L'utilizzo del ripristino rapido può interrompere l'integrazione del cluster database Neptune con altri servizi. Per esempio:
Il ripristino rapido elimina tutti i dati dei flussi dal database e ripristina completamente i flussi. Ciò significa che i consumatori dei flussi potrebbero non funzionare più senza una nuova configurazione.
Il ripristino rapido rimuove tutti i metadati relativi alle risorse SageMaker AI utilizzate da Neptune ML, inclusi job ed endpoint. Continuano a esistere nell' SageMaker intelligenza artificiale e puoi continuare a utilizzare gli endpoint SageMaker AI esistenti per le query di inferenza di Neptune ML, ma la gestione di Neptune ML non funziona più con loro. APIs
Anche le integrazioni come l' full-text-searchintegrazione con ElasticSearch vengono eliminate dal ripristino rapido e devono essere ripristinate manualmente prima di poter essere riutilizzate.
Per eliminare tutti i dati da un cluster database Neptune utilizzando l'API
-
Genera anzitutto un token da utilizzare successivamente per eseguire il ripristino del database. Questo passaggio ha lo scopo di impedire che qualcuno ripristini accidentalmente un database.
A tale scopo, invia una richiesta
HTTP POST
all'endpoint/system
sull'istanza di scrittura del cluster database per specificare l'azioneinitiateDatabaseReset
.Il comando
curl
che utilizza il tipo di contenuto JSON sarebbe:curl -X POST \ -H 'Content-Type: application/json' \ https://
your_writer_instance_endpoint
:8182/system \ -d '{ "action" : "initiateDatabaseReset" }'Oppure, utilizzando il tipo di contenuto
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 'La richiesta
initiateDatabaseReset
restituisce il token di ripristino nella sua risposta JSON, ovvero:{ "status" : "200 OK", "payload" : { "token" : "
new_token_guid
" } }Il token rimane valido per un'ora (60 minuti) dopo l'emissione.
Se invii la richiesta a un'istanza reader o all'endpoint dello stato, Neptune genererà un'eccezione
ReadOnlyViolationException
.Se invii più richieste
initiateDatabaseReset
, solo l'ultimo token generato sarà valido per il secondo passaggio, in cui eseguirai effettivamente il ripristino.Se il server si riavvia subito dopo la richiesta
initiateDatabaseReset
, il token generato non è più valido e devi inviare una nuova richiesta per ottenerne uno nuovo. -
Successivamente, devi inviare una richiesta
performDatabaseReset
con il token ricevuto dainitiateDatabaseReset
all'endpoint/system
sull'istanza di scrittura del cluster database. In questo modo vengono eliminati tutti i dati dal cluster database.Il comando
curl
che utilizza il tipo di contenuto JSON è:curl -X POST \ -H 'Content-Type: application/json' \ https://
your_writer_instance_endpoint
:8182/system \ -d '{ "action" : "performDatabaseReset", "token" : "token_guid
" }'Oppure, utilizzando il tipo di contenuto
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
'La richiesta restituisce una risposta JSON. Se la richiesta viene accettata, la risposta è:
{ "status" : "200 OK" }
Se il token che hai inviato non corrisponde a quello emesso, la risposta è simile alla seguente:
{ "code" : "InvalidParameterException", "requestId":"
token_guid
", "detailedMessage" : "System command parameter 'token' : 'token_guid
' does not match database reset token" }Se la richiesta viene accettata e il ripristino ha inizio, il server si riavvia ed elimina i dati. Non è possibile inviare altre richieste al cluster database durante il ripristino.
Utilizzo dell'API di ripristino rapido con IAM-Auth
Se hai abilitato IAM-Auth nel cluster database, puoi usare awscurl
Utilizzo di awscurl per inviare richieste di ripristino rapido con IAM-Auth
Imposta correttamente le variabili di ambiente
AWS_ACCESS_KEY_ID
eAWS_SECRET_ACCESS_KEY
(e ancheAWS_SECURITY_TOKEN
se stai usando credenziali temporanee).-
Una richiesta
initiateDatabaseReset
è simile a questa:awscurl -X POST --service neptune-db "$SYSTEM_ENDPOINT" \ -H 'Content-Type: application/json' --region us-west-2 \ -d '{ "action" : "initiateDatabaseReset" }'
-
Una richiesta
performDatabaseReset
è simile a questa:awscurl -X POST --service neptune-db "$SYSTEM_ENDPOINT" \ -H 'Content-Type: application/json' --region us-west-2 \ -d '{ "action" : "performDatabaseReset" }'
Utilizzo del comando magic di riga %db_reset
del workbench Neptune per ripristinare un cluster database
Il workbench Neptune supporta un comando magic di riga %db_reset
che consente di eseguire un ripristino rapido del database in un notebook Neptune.
Se si richiama il comando magic senza alcun parametro, viene visualizzata una schermata in cui viene chiesto se si desidera eliminare tutti i dati del cluster. C'è anche una casella di controllo che richiedere di essere a conoscenza del fatto che i dati del cluster non saranno più disponibili dopo l'eliminazione. A quel punto, puoi scegliere di procedere con l'eliminazione dei dati o annullare l'operazione.
Un'opzione più rischiosa è richiamare %db_reset
con l'opzione --yes
o -y
, in modo che l'eliminazione venga eseguita senza ulteriori richieste.
Puoi anche eseguire il ripristino in due passaggi, come con REST API:
%db_reset --generate-token
La risposta è:
{ "status" : "200 OK", "payload" : { "token" : "
new_token_guid
" } }
Poi esegui:
%db_reset --token
new_token_guid
La risposta è:
{ "status" : "200 OK" }
Codici di errore comuni per operazioni di ripristino rapido
Codice di errore Neptune | Stato HTTP | Messaggio | Esempio |
---|---|---|---|
|
400 |
Il parametro del comando di sistema ' |
Parametro non valido |
|
400 |
Sono stati forniti troppi valori per: |
Una richiesta di ripristino rapido con più di un'azione inviata con l'intestazione 'Content-Type:Application/ 'x-www-form-urlencoded |
|
400 |
Campo 'action' duplicato |
Una richiesta di ripristino rapido con più di un'azione inviata con l'intestazione 'Content-Type: application/json' |
|
400 |
Percorso errato:/ |
Richiesta inviata a un endpoint errato |
|
400 |
Parametri obbligatori mancanti: [action] |
Una richiesta di ripristino rapido non contiene il parametro 'action' richiesto |
|
400 |
Le scritture non sono consentite su un'istanza di replica di lettura |
È stata inviata una richiesta di ripristino rapido endpoint di reader o di stato |
|
403 |
Token di autenticazione mancante |
Una richiesta di ripristino rapido è stata inviata senza firme corrette a un endpoint di database in cui è abilitato IAM-Auth |
|
500 |
Il ripristino del database è in corso. Riprova a eseguire la query dopo che il cluster diventa disponibile. |
Quando inizia il ripristino rapido, le query Gremlin/Sparql esistenti e in entrata non riescono. |