Vider un cluster de bases de données Amazon Neptune en utilisant l'API de réinitialisation rapide - Amazon Neptune

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 en utilisant l'API de réinitialisation rapide

L'API REST de réinitialisation rapide de Neptune vous permet de réinitialiser rapidement et facilement un graphe Neptune, en supprimant toutes ses données.

Vous pouvez effectuer cette opération avec un bloc-notes Neptune à l'aide de la%db_resetmagie de la ligne.

Note

Cette fonction est disponible à partir deMoteur Neptune version 1.0.4.0.

  • Dans la plupart des cas, une opération de réinitialisation rapide s'effectue en quelques minutes. La durée peut varier quelque peu en fonction de la charge sur le cluster lorsque l'opération est lancée.

  • 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é lorsque de nouvelles données sont insérées. Cela signifie que les tailles de volume des instantanés pris avant et après une opération de réinitialisation rapide seront 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 seront également les mêmes

  • Dans le cadre de l'opération de réinitialisation, toutes les instances du cluster de bases de données sont redémarrées.

    Note

    Dans de rares conditions, ces redémarrages de serveurs 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. Cela signifie que vos consommateurs de flux peuvent ne plus fonctionner sans une nouvelle configuration.

  • La réinitialisation rapide supprime toutes les métadonnées concernant SageMaker ressources utilisées par Neptune ML, y compris les tâches et les points de terminaison. Ils continuent d'exister dans SageMaker, et vous pouvez continuer à utiliser SageMaker points de terminaison pour les requêtes d'inférence Neptune ML, mais les API de gestion Neptune ML ne fonctionnent plus avec eux.

  • Des intégrations telles que le full-text-search Intégration de à ElasticSearch sont également effacés par réinitialisation rapide et doivent être rétablis manuellement avant de pouvoir être réutilisés.

Pour supprimer toutes les données d'un cluster de bases de données Neptune à l'aide de l'API

  1. Tout d'abord, vous générez un jeton que vous pouvez ensuite utiliser pour effectuer la réinitialisation de la base de données. Cette étape vise à empêcher quiconque de réinitialiser accidentellement une base de données.

    Pour ce faire, vous devez envoyer unHTTP POSTde la demande au/systempoint de terminaison sur l'instance d'écriture de votre cluster de bases de données pour spécifier leinitiateDatabaseResetaction.

    Lecurlutilisant le type de contenu JSON serait :

    curl -X POST \ -H 'Content-Type: application/json' \ https://your_writer_instance_endpoint:8182/system \ -d '{ "action" : "initiateDatabaseReset" }'

    Ou, en utilisant lex-www-form-urlencodedtype de contenu :

    curl -X POST \ -H 'Content-Type: application/x-www-form-urlencoded' \ https://your_writer_instance_endpoint:8182/system \ -d 'action=initiateDatabaseReset '

    LeinitiateDatabaseResetrequest renvoie le jeton de réinitialisation dans sa réponse JSON, comme ceci :

    { "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 d'état, Neptune lancera unReadOnlyViolationException.

    Si vous envoyez plusieursinitiateDatabaseReset, seul le dernier jeton généré sera valide pour la deuxième étape, au cours de laquelle vous effectuez réellement la réinitialisation.

    Si le serveur redémarre juste après votreinitiateDatabaseReset, le jeton généré devient invalide et vous devez envoyer une nouvelle demande pour obtenir un nouveau jeton.

  2. Ensuite, vous envoyez unperformDatabaseResetdemande avec le jeton que vous avez reçuinitiateDatabaseResetau/systempoint de terminaison sur l'instance d'écriture de votre cluster de bases de données. Cela supprime toutes les données de votre cluster de bases de données.

    Lecurlutilisant le type de contenu JSON est la suivante :

    curl -X POST \ -H 'Content-Type: application/json' \ https://your_writer_instance_endpoint:8182/system \ -d '{ "action" : "performDatabaseReset", "token" : "token_guid" }'

    Ou, en utilisant lex-www-form-urlencodedtype de contenu :

    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 ressemble à ceci :

    { "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 la réinitialisation.

Utilisation de l'API de réinitialisation rapide avec IAM-Auth

Si IAM-Auth est activé sur votre cluster de bases de données, vous pouvez utiliserboucle awscurlpour envoyer des commandes de réinitialisation rapide authentifiées à l'aide de IAM-Auth :

Utiliser awscurl pour envoyer des demandes de réinitialisation rapide avec IAM-Auth

  1. Définir la propriétéAWS_ACCESS_KEY_IDetAWS_SECRET_ACCESS_KEYvariables d'environnement correctement (et aussiAWS_SECURITY_TOKENsi vous utilisez des informations d'identification temporaires).

  2. UninitiateDatabaseResetde la demande 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" }'
  3. UNperformDatabaseResetde la demande 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 l'atelier Neptune%db_resetline magic pour réinitialiser un cluster de bases de données

L'atelier Neptune prend en charge un%db_resetLine Magic qui vous permet d'effectuer une réinitialisation rapide de 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 de votre cluster, avec une case à cocher vous demandant de confirmer que les données du cluster ne seront plus disponibles après leur suppression. À ce stade, vous pouvez choisir de supprimer les données ou d'annuler l'opération.

Une option plus dangereuse consiste à invoquer%db_resetavec le--yesou-y, ce qui entraîne l'exécution de la suppression sans autre invite.

Vous pouvez également effectuer la réinitialisation en deux étapes, comme avec l'API REST :

%db_reset --generate-token

La réponse est :

{ "status" : "200 OK", "payload" : { token" : "new_token_guid" } }

Ensuite, faites :

%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

InvalidParameterException

400

Paramètre de commande système 'action« a une valeur non prise en charge »XXX'

Paramètre non valide

InvalidParameterException

400

Trop de valeurs fournies pour :action

Une demande de réinitialisation rapide avec plusieurs actions envoyées avec l'en-tête 'Content-type:Application/x-www-form-urlencoded'

InvalidParameterException

400

Champ « action » en double

Demande de réinitialisation rapide avec plusieurs actions envoyées avec l'en-tête « Content-Type : application/json »

MethodNotAllowedException

400

Mauvais itinéraire :/bad_endpoint

Demande envoyée à un point de terminaison incorrect

MissingParameterException

400

Paramètres obligatoires manquants : [action]

Une demande de réinitialisation rapide ne contient pas le paramètre « action » requis

ReadOnlyViolationException

400

Lois not permitted on a read replica instance is not permitted on a

Une demande de réinitialisation rapide a été envoyée à un lecteur ou à un point de terminaison d'état

AccessDeniedException

403

Jeton d'authentification manquant

Une demande de réinitialisation rapide a été envoyée sans signatures correctes à un point de terminaison de base de données avec IAM-Auth activé

ServerShutdownException

500

Database reset is en cours. Recommencez la requête une fois que le cluster est disponible.

Lorsque la réinitialisation rapide commence, les requêtes Gremlin/Sparql existantes et entrantes échouent.