Crear una tarea de AWS DMS replicación con Neptune como objetivo - 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.

Crear una tarea de AWS DMS replicación con Neptune como objetivo

Una vez que haya creado las configuraciones de mapeo de tablas y mapeo de gráficos, utilice el siguiente proceso para cargar datos desde el almacén de origen en Neptune. Consulte la AWS DMS documentación para obtener más detalles sobre el tema APIs en cuestión.

Cree una instancia AWS DMS de replicación

Cree una instancia de AWS DMS replicación en la VPC en la que se ejecuta el clúster de base de datos de Neptune (consulte Trabajar con una instancia de replicación de AWS DMS y CreateReplicationInstanceen la Guía del usuario). AWS DMS Para ello, puede utilizar un AWS CLI comando como el siguiente:

aws dms create-replication-instance \ --replication-instance-identifier (the replication instance identifier) \ --replication-instance-class (the size and capacity of the instance, like 'dms.t2.medium') \ --allocated-storage (the number of gigabytes to allocate for the instance initially) \ --engine-version (the DMS engine version that the instance should use) \ --vpc-security-group-ids (the security group to be used with the instance)

Cree un AWS DMS punto final para la base de datos de origen

El siguiente paso es crear un AWS DMS punto final para el almacén de datos de origen. Puedes usar la AWS DMS CreateEndpointAPI de la siguiente AWS CLI manera:

aws dms create-endpoint \ --endpoint-identifier (source endpoint identifier) \ --endpoint-type source \ --engine-name (name of source database engine) \ --username (user name for database login) \ --password (password for login) \ --server-name (name of the server) \ --port (port number) \ --database-name (database name)

Configuración de un bucket de Amazon S3 para que Neptune almacene provisionalmente los datos

Si no tiene un bucket de Amazon S3 que pueda utilizar para almacenar provisionalmente los datos, cree uno como se explica en Creación de un bucket en la Guía de introducción de Amazon S3 o ¿Cómo se puede crear un bucket de S3? en la Guía de usuario de la consola.

Tendrá que crear un política de IAM que conceda permisos GetObject, PutObject, DeleteObject y ListObject al bucket si no dispone de uno aún:

Si su clúster de base de datos de Neptune tiene habilitada la autenticación de IAM, también deberá incluir la siguiente política:

Cree un rol de IAM como documento de confianza al que asociar la política:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "dms.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Sid": "neptune", "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Después de asociar la política al rol, asocie el rol al clúster de base de datos de Neptune. Esto permitirá AWS DMS usar el depósito para organizar los datos que se están cargando.

Creación de un punto de conexión de Amazon S3 en la VPC de Neptune

Ahora cree un punto de conexión de la puerta de enlace de VPC para su bucket de Amazon S3 intermediario, en la VPC donde se encuentra su clúster de Neptune. AWS CLI Para ello, puede utilizar el Consola de administración de AWS o el, tal y como se describe en Creación de un punto final de puerta de enlace.

Cree un punto final de AWS DMS destino para Neptune

Cree un AWS DMS punto final para el clúster de base de datos Neptune de destino. Puede usar la AWS DMS CreateEndpointAPI con el NeptuneSettings parámetro de la siguiente manera:

aws dms create-endpoint \ --endpoint-identifier (target endpoint identifier) \ --endpoint-type target \ --engine-name neptune \ --server-name (name of the server) \ --port (port number) \ --neptune-settings '{ \ "ServiceAccessRoleArn": "(ARN of the service access role)", \ "S3BucketName": "(name of S3 bucket to use for staging files when migrating)", \ "S3BucketFolder": "(name of the folder to use in that S3 bucket)", \ "ErrorRetryDuration": (number of milliseconds to wait between bulk-load retries), \ "MaxRetryCount": (the maximum number of times to retry a failing bulk-load job), \ "MaxFileSize": (maximum file size, in bytes, of the staging files written to S3), \ "IamAuthEnabled": (set to true if IAM authentication is enabled on the Neptune cluster) }'

El objeto JSON que se pasa a la AWS DMS CreateEndpoint API en su NeptuneSettings parámetro tiene los siguientes campos:

  • ServiceAccessRoleArn: (obligatorio) el ARN de un rol de IAM que permite acceso detallado al bucket de S3 utilizado para el almacenamiento provisional de la migración de los datos a Neptune. Este rol también debe tener permisos para acceder al clúster de base de datos de Neptune si la autorización de IAM está habilitada en él.

  • S3BucketName: (obligatorio) para la migración de carga completa, la instancia de replicación convierte todos los datos RDS en archivos CSV quad, los carga en este bucket de almacenamiento provisional en S3 y, a continuación, realiza una carga masiva de los mismos en Neptune.

  • S3BucketFolder: (obligatorio) la carpeta que se va a utilizar en el bucket de almacenamiento provisional de S3.

  • ErrorRetryDuration: (opcional) el número de milisegundos que hay que esperar después de que la solicitud de Neptune devuelva un error antes de realizar una solicitud de reintento. El valor predeterminado es 250.

  • MaxRetryCount(opcional) El número máximo de solicitudes de reintento que se AWS DMS deben realizar tras un error que se pueda volver a intentar. El valor predeterminado es 5.

  • MaxFileSize: (opcional) el tamaño máximo en bytes de cada archivo de almacenamiento provisional guardado en S3 durante la migración. El valor predeterminado es 1.048.576 KB (1 GB).

  • IsIAMAuthEnabled: (opcional) establézcalo en true si la autenticación de IAM está habilitada en el clúster de base de datos de Neptune o en false si no es así. El valor predeterminado es false.

Prueba de las conexiones con los nuevos puntos de conexión

Puedes probar la conexión a cada uno de estos nuevos puntos de conexión mediante la API de la AWS DMS TestConnectionsiguiente manera:

aws dms test-connection \ --replication-instance-arn (the ARN of the replication instance) \ --endpoint-arn (the ARN of the endpoint you are testing)

Cree una tarea de AWS DMS replicación

Una vez que haya completado correctamente los pasos anteriores, cree una tarea de replicación para migrar los datos del banco de datos de origen a Neptune, utilizando AWS DMS CreateReplicationTaskla API de la siguiente manera:

aws dms create-replication-task \ --replication-task-identifier (name for the replication task) \ --source-endpoint-arn (ARN of the source endpoint) \ --target-endpoint-arn (ARN of the target endpoint) \ --replication-instance-arn (ARN of the replication instance) \ --migration-type full-load \ --table-mappings (table-mapping JSON object or URI like 'file:///tmp/table-mappings,json') \ --task-data (a GraphMappingConfig object or URI like 'file:///tmp/graph-mapping-config.json')

El parámetro TaskData proporciona el GraphMappingConfig que especifica cómo deben almacenarse en Neptune los datos que se copian.

Inicie la tarea de AWS DMS replicación

Ahora puede iniciar la tarea de replicación:

aws dms start-replication-task --replication-task-arn (ARN of the replication task started in the previous step) --start-replication-task-type start-replication