Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Vider un cluster de bases de données Amazon Neptune à l'aide de l'API de réinitialisation rapide
L'API REST de réinitialisation rapide Neptune vous permet de réinitialiser un graphe Neptune rapidement et facilement en supprimant toutes ses données.
Pour ce faire, utilisez la magie linéaire %db_reset dans un bloc-notes Neptune.
Note
Cette fonctionnalité est disponible à partir de la version 1.0.4.0 du moteur Neptune.
Dans la plupart des cas, une opération de réinitialisation rapide se termine en quelques minutes. La durée peut varier légèrement en fonction de la charge exécutée sur le cluster au lancement de l'opération.
Une opération de réinitialisation rapide n'entraîne pas d'E/S supplémentaires.
La taille du volume de stockage ne diminue pas après une réinitialisation rapide. Au lieu de cela, le stockage est réutilisé à mesure que de nouvelles données sont insérées. Par conséquent, les tailles de volume des instantanés créés avant et après une opération de réinitialisation rapide sont les mêmes. Les tailles de volume des clusters restaurés à l'aide des instantanés créés avant et après une opération de réinitialisation rapide sont également les mêmes
-
Dans le cadre de l'opération de réinitialisation, toutes les instances du cluster de bases de donnes sont redémarrées.
Note
Dans de rares cas, ces redémarrages de serveur peuvent également entraîner un basculement du cluster.
Important
L'utilisation de la réinitialisation rapide peut interrompre l'intégration de votre cluster de bases de données Neptune avec d'autres services. Par exemple :
La réinitialisation rapide supprime toutes les données de flux de votre base de données et réinitialise complètement les flux. En d'autres termes, les consommateurs de flux risquent de ne plus fonctionner sans une nouvelle configuration.
La réinitialisation rapide supprime toutes les métadonnées relatives aux ressources SageMaker utilisées par Neptune ML, y compris les tâches et les points de terminaison. Elles existent toujours dans SageMaker, et vous pouvez continuer à utiliser les points de terminaison SageMaker existants pour les requêtes d'inférence Neptune ML, mais les API de gestion Neptune ML ne fonctionnent plus avec elles.
Les intégrations telles que l'intégration de la recherche en texte intégral avec ElasticSearch sont également annulées par une réinitialisation rapide et devront être rétablies manuellement avant de pouvoir être réutilisées.
Pour supprimer toutes les données d'un cluster de bases de données Neptune à l'aide de l'API
-
Tout d'abord, générez un jeton que vous pourrez ensuite utiliser pour réinitialiser la base de données. Cette étape vise à empêcher quiconque de réinitialiser accidentellement une base de données.
Pour ce faire, envoyez une demande
HTTP POST
au point de terminaison/system
de l'instance d'enregistreur du cluster de bases de données afin de spécifier l'actioninitiateDatabaseReset
.Voici la commande
curl
qui utilise le type de contenu JSON :curl -X POST \ -H 'Content-Type: application/json' \ https://
your_writer_instance_endpoint
:8182/system \ -d '{ "action" : "initiateDatabaseReset" }'Ou celle qui utilise le type de contenu
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 demande
initiateDatabaseReset
renvoie le jeton de réinitialisation dans sa réponse JSON, comme suit :{ "status" : "200 OK", "payload" : { "token" : "
new_token_guid
" } }Le jeton reste valide pendant une heure (60 minutes) après son émission.
Si vous envoyez la demande à une instance de lecteur ou au point de terminaison de statut, Neptune génère une exception
ReadOnlyViolationException
.Si vous envoyez plusieurs demandes
initiateDatabaseReset
, seul le dernier jeton généré est valide pour la deuxième étape, étape au cours de laquelle vous effectuez réellement la réinitialisation.Si le serveur redémarre juste après la demande
initiateDatabaseReset
, le jeton généré n'est plus valide, et vous devez envoyer une nouvelle demande pour obtenir un nouveau jeton. -
Ensuite, envoyez une demande
performDatabaseReset
avec le jeton que vous avez obtenu viainitiateDatabaseReset
au point de terminaison/system
de l'instance d'enregistreur du cluster de bases de données. Cette action supprime toutes les données du cluster de bases de données.Voici la commande
curl
qui utilise le type de contenu JSON :curl -X POST \ -H 'Content-Type: application/json' \ https://
your_writer_instance_endpoint
:8182/system \ -d '{ "action" : "performDatabaseReset", "token" : "token_guid
" }'Ou celle qui utilise le type de contenu
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 demande renvoie une réponse JSON. Si la demande est acceptée, la réponse est la suivante :
{ "status" : "200 OK" }
Si le jeton que vous avez envoyé ne correspond pas à celui qui a été émis, la réponse est la suivante :
{ "code" : "InvalidParameterException", "requestId":"
token_guid
", "detailedMessage" : "System command parameter 'token' : 'token_guid
' does not match database reset token" }Si la demande est acceptée et que la réinitialisation commence, le serveur redémarre et supprime les données. Vous ne pouvez pas envoyer d'autres demandes au cluster de bases de données pendant sa réinitialisation.
Utilisation de l'API de réinitialisation rapide avec l'authentification IAM
Si l'authentification IAM est activée sur le cluster de bases de données, vous pouvez utiliser awscurl
Utilisation d'awscurl pour envoyer des demandes de réinitialisation rapide avec l'authentification IAM
Définissez correctement les variables d'environnement
AWS_ACCESS_KEY_ID
etAWS_SECRET_ACCESS_KEY
(ainsi qu'AWS_SECURITY_TOKEN
si vous utilisez des informations d'identification temporaires).-
Une demande
initiateDatabaseReset
se présente comme suit :awscurl -X POST --service neptune-db "$SYSTEM_ENDPOINT" \ -H 'Content-Type: application/json' --region us-west-2 \ -d '{ "action" : "initiateDatabaseReset" }'
-
Une demande
performDatabaseReset
se présente comme suit :awscurl -X POST --service neptune-db "$SYSTEM_ENDPOINT" \ -H 'Content-Type: application/json' --region us-west-2 \ -d '{ "action" : "performDatabaseReset" }'
Utilisation de la magie linéaire %db_reset
du workbench Neptune pour réinitialiser un cluster de bases de données
Le workbench Neptune intègre une magie linéaire %db_reset
qui vous permet de réinitialiser rapidement la base de données dans un bloc-notes Neptune.
Si vous invoquez la magie sans aucun paramètre, un écran vous demande si vous souhaitez supprimer toutes les données du cluster. Vous devez également cocher une case afin de confirmer que vous comprenez que les données du cluster ne seront plus disponibles une fois que vous les aurez supprimées. À ce stade, vous pouvez choisir de continuer et de supprimer les données, ou d'annuler l'opération.
Une option plus risquée consiste à invoquer %db_reset
avec l'option --yes
ou -y
, ce qui entraîne la suppression sans invite supplémentaire.
Vous pouvez également effectuer la réinitialisation en deux étapes, tout comme avec l'API REST :
%db_reset --generate-token
La réponse est :
{ "status" : "200 OK", "payload" : { "token" : "
new_token_guid
" } }
Continuez avec :
%db_reset --token
new_token_guid
La réponse est :
{ "status" : "200 OK" }
Codes d'erreur courants pour les opérations de réinitialisation rapide
Code d'erreur Neptune | Statut HTTP | Message | Exemple |
---|---|---|---|
|
400 |
Le paramètre de commande système « |
Paramètre non valide |
|
400 |
Trop de valeurs fournies pour : |
Demande de réinitialisation rapide avec plusieurs actions, envoyée avec l'en-tête 'Content-Type:Application/X-WWW-Form-URLEncoded' |
|
400 |
Champ 'action' en double |
Demande de réinitialisation rapide avec plusieurs actions, envoyée avec l'en-tête 'Content-Type: application/json' |
|
400 |
Route incorrecte : / |
Demande envoyée à un point de terminaison incorrect |
|
400 |
Paramètres obligatoires manquants : [action] |
Une demande de réinitialisation rapide ne contient pas le paramètre 'action' obligatoire |
|
400 |
Les écritures ne sont pas autorisées sur une instance de réplica en lecture |
Une demande de réinitialisation rapide a été envoyée à un point de terminaison de lecteur ou de statut |
|
403 |
Jeton d'authentification manquant |
Une demande de réinitialisation rapide a été envoyée sans les signatures correctes à un point de terminaison de base de données sur lequel l'authentification IAM est activée |
|
500 |
La réinitialisation de la base de données est en cours. Réessayez la requête une fois que le cluster sera disponible. |
Lorsque la réinitialisation rapide commence, les requêtes Gremlin/Sparql existantes et entrantes échouent. |