Vaciado de un clúster de base de datos de Amazon Neptune con la API de restablecimiento rápido - Amazon Neptune

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Vaciado de un clúster de base de datos de Amazon Neptune con la API de restablecimiento rápido

La API de REST de restablecimiento rápido de Neptune le permite restablecer un gráfico de Neptune de forma rápida y sencilla, eliminando todos sus datos.

Puede hacerlo en un cuaderno de Neptune con el comando mágico de línea %db_reset.

nota

Esta característica está disponible a partir de la versión 1.0.4.0 del motor de Neptune.

  • En la mayoría de los casos, la operación de restablecimiento rápido se completa en un par de minutos. La duración puede variar un poco en función de la carga del clúster cuando se inicia la operación.

  • Una operación de restablecimiento rápido no genera E/S adicionales.

  • El tamaño del volumen de almacenamiento no se reduce después de un restablecimiento rápido. En cambio, el almacenamiento se vuelve a utilizar a medida que se introducen nuevos datos. Esto significa que los tamaños de volumen de las instantáneas tomadas antes y después de una operación de restablecimiento rápido serán los mismos. Los tamaños de volumen de los clústeres restaurados con las instantáneas creadas antes y después de una operación de restablecimiento rápido también serán los mismos

  • Como parte de la operación de restablecimiento, se reinician todas las instancias en el clúster de base de datos.

    nota

    En casos excepcionales, estos reinicios del servidor también pueden provocar una conmutación por error del clúster.

importante

El uso del restablecimiento rápido puede interrumpir la integración del clúster de base de datos de Neptune con otros servicios. Por ejemplo:

  • El restablecimiento rápido elimina todos los datos de transmisión de la base de datos y restablece completamente las transmisiones. Esto significa que es posible que los consumidores de transmisiones ya no funcionen sin una nueva configuración.

  • El restablecimiento rápido elimina todos los metadatos sobre los recursos de SageMaker que utiliza Neptune ML, incluidos los trabajos y los puntos de conexión. Siguen existiendo en SageMaker, y puede seguir utilizando los puntos de conexión de SageMaker existentes para las consultas de inferencia de Neptune ML, pero las API de administración de Neptune ML ya no funcionan con ellos.

  • Las integraciones, como, por ejemplo, la integración de búsqueda de texto completo con ElasticSearch, también se eliminan con el restablecimiento rápido y se tienen que restablecer manualmente antes de que sea posible volver a utilizarlas.

Para eliminar todos los datos de un clúster de base de datos de Neptune con la API
  1. En primer lugar, se genera un token que, a continuación, se puede utilizar para restablecer la base de datos. El objetivo de este paso es evitar que alguien restablezca por error una base de datos.

    Para ello, debe enviar una solicitud HTTP POST al punto de conexión /system de la instancia de escritor del clúster de base de datos para especificar la acción initiateDatabaseReset.

    El comando curl con el tipo de contenido JSON sería:

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

    O bien, con el tipo de contenido 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 solicitud initiateDatabaseReset devuelve el token de restablecimiento en su respuesta JSON, tal y como se indica a continuación:

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

    El token sigue siendo válido durante una hora (60 minutos) después de su emisión.

    Si envía la solicitud a una instancia de lector o al punto de conexión de estado, Neptune lanzará una ReadOnlyViolationException.

    Si envía varias solicitudes initiateDatabaseReset, solo el último token generado será válido para el segundo paso, en el que realmente realiza el restablecimiento.

    Si el servidor se reinicia justo después de la solicitud initiateDatabaseReset, el token generado deja de ser válido y tendrá que enviar una nueva solicitud para obtener uno nuevo.

  2. A continuación, envíe una solicitud performDatabaseReset con el token que ha recibido de initiateDatabaseReset a punto de conexión /system de la instancia de escritor del clúster de base de datos. De este modo, se eliminan todos los datos del clúster de base de datos.

    El comando curl con el tipo de contenido JSON es:

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

    O bien, con el tipo de contenido 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 solicitud devuelve una respuesta JSON. Si se acepta la solicitud, la respuesta es:

    { "status" : "200 OK" }

    Si el token que envió no coincide con el que se emitió, la respuesta tendrá el siguiente aspecto:

    { "code" : "InvalidParameterException", "requestId":"token_guid", "detailedMessage" : "System command parameter 'token' : 'token_guid' does not match database reset token" }

    Si se acepta la solicitud y comienza el restablecimiento, el servidor se reinicia y elimina los datos. No puede enviar ninguna otra solicitud al clúster de base de datos mientras se está restableciendo.

Uso de la API de restablecimiento rápido con IAM-Auth

Si ha habilitado IAM-auth en el clúster de base de datos, puede utilizar awscurl para enviar comandos de restablecimiento rápido que se autentiquen mediante IAM-Auth:

Uso de awscurl para enviar solicitudes de restablecimiento rápido con IAM-Auth
  1. Configure las variables de entorno AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY correctamente (y también AWS_SECURITY_TOKEN si utiliza una credencial temporal).

  2. Una solicitud initiateDatabaseReset tiene este aspecto:

    awscurl -X POST --service neptune-db "$SYSTEM_ENDPOINT" \ -H 'Content-Type: application/json' --region us-west-2 \ -d '{ "action" : "initiateDatabaseReset" }'
  3. Una solicitud performDatabaseReset tiene este aspecto:

    awscurl -X POST --service neptune-db "$SYSTEM_ENDPOINT" \ -H 'Content-Type: application/json' --region us-west-2 \ -d '{ "action" : "performDatabaseReset" }'

Uso del comando mágico de línea %db_reset del entorno de trabajo de Neptune para restablecer un clúster de base de datos

El entorno de trabajo de Neptune admite un comando mágico de línea %db_reset que le permite restablecer rápidamente la base de datos en un cuaderno de Neptune.

Si invoca el comando mágico sin ningún parámetro, verá una pantalla en la que se le preguntará si desea eliminar todos los datos del clúster, con una casilla de verificación en la que se le pide que confirme que los datos del clúster dejarán de estar disponibles después de eliminarlos. En ese momento, puede elegir entre eliminar los datos o cancelar la operación.

Una opción más peligrosa es invocar %db_reset con la opción --yes o -y, lo que hace que la eliminación se realice sin más solicitudes.

También puedes realizar el restablecimiento en dos pasos, igual que con la API de REST:

%db_reset --generate-token

La respuesta es:

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

Haga lo siguiente:

%db_reset --token new_token_guid

La respuesta es:

{ "status" : "200 OK" }

Códigos de error comunes para las operaciones de restablecimiento rápido

Código de error de Neptune Estado HTTP Mensaje Ejemplo

InvalidParameterException

400

El parámetro del comando del sistema “acción” tiene el valor no admitido “XXX

Parámetro no válido

InvalidParameterException

400

Se han proporcionado demasiados valores para: acción

Una solicitud de restablecimiento rápido con más de una acción enviada con el encabezado “Content-type:application/x-www-form-urlencoded”

InvalidParameterException

400

Campo duplicado “acción”

Una solicitud de restablecimiento rápido con más de una acción enviada con el encabezado “Content-Type: application/json”

MethodNotAllowedException

400

Ruta incorrecta: /bad_endpoint

Solicitud enviada a un punto de conexión incorrecto

MissingParameterException

400

Faltan parámetros obligatorios: [acción]

Una solicitud de restablecimiento rápido no incluye el parámetro “acción” necesario

ReadOnlyViolationException

400

No se permiten escritores en una instancia de réplica de lectura

Se ha enviado una solicitud de restablecimiento rápido a un lector o punto de conexión de estado

AccessDeniedException

403

Falta token de autenticación

Se ha enviado una solicitud de restablecimiento rápido sin las firmas correctas a un punto de conexión de base de datos con la opción IAM-Auth habilitada

ServerShutdownException

500

El restablecimiento de la base de datos está en curso. Vuelva a intentar la consulta cuando el clúster esté disponible.

Cuando comienza el restablecimiento rápido, se produce un error en las consultas de Gremlin/Sparql existentes y entrantes.