Optimización de una carga masiva de Amazon Neptune - 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.

Optimización de una carga masiva de Amazon Neptune

Utilice las siguientes estrategias para reducir al mínimo el tiempo de carga de una carga masiva de Neptune:

  • Limpie sus datos:

    • Asegúrese de convertir los datos a un formato de datos compatible antes de cargarlos.

    • Elimine cualquier duplicado o error conocido.

    • Reduzca el número de predicados únicos (por ejemplo, propiedades de bordes y vértices) en la medida de lo posible.

  • Optimice sus archivos:

    • Si carga archivos de gran tamaño, como CSV archivos de un bucket de Amazon S3, el cargador gestiona la simultaneidad por usted analizándolos en fragmentos que puede cargar en paralelo. El uso de una gran cantidad de archivos pequeños puede ralentizar este proceso.

    • Si carga varios archivos de una carpeta de Amazon S3, el programa de carga carga automáticamente primero los archivos de vértices y, después, los archivos de bordes.

    • La compresión de los archivos reduce los tiempos de transferencia. El programa de carga admite la compresión gzip de archivos de origen.

  • Compruebe la configuración del programa de carga:

    • Si no necesita realizar ninguna otra operación durante la carga, utilice el parámetro OVERSUBSCRIBEparallelism. Esta configuración de parámetros hace que el cargador masivo utilice todos los CPU recursos disponibles cuando se ejecuta. Por lo general, se necesita entre un 60 y un 70% de la CPU capacidad para mantener la operación funcionando tan rápido como lo permitan las restricciones de E/S.

      nota

      Cuando parallelism se establece en OVERSUBSCRIBE o HIGH (la configuración predeterminada), al cargar openCypher datos, existe el riesgo de que los subprocesos se encuentren en una condición de carrera y se bloqueen, lo que provoque un error. LOAD_DATA_DEADLOCK En este caso, ajuste parallelism a un valor inferior y vuelva a intentar realizar la carga.

    • Si su trabajo de carga incluye varias solicitudes de carga, utilice el parámetro queueRequest. Si configura queueRequest en TRUE, Neptune pone en cola sus solicitudes para que no tenga que esperar a que termine una para emitir otra.

    • Si las solicitudes de carga están en cola, puede configurar niveles de dependencia mediante el parámetro dependencies, de modo que si falla un trabajo, los trabajos dependientes también fallan. Esto puede evitar incoherencias en los datos cargados.

    • Si un trabajo de carga va a implicar la actualización de valores cargados anteriormente, asegúrese de establecer el parámetro updateSingleCardinalityProperties en TRUE. Si no lo hace, el programa de carga considerará un error el intento de actualizar un valor de cardinalidad única existente. En el caso de los datos de Gremlin, la cardinalidad también se especifica en los encabezados de las columnas de propiedades (consulte Encabezados de columnas de propiedades).

      nota

      El updateSingleCardinalityProperties parámetro no está disponible para los datos del Resource Description Framework (RDF).

    • Puede usar el parámetro failOnError para determinar si las operaciones de carga masiva deben fallar o continuar cuando se detecta un error. Además, puede usar el parámetro mode para asegurarse de que un trabajo de carga reanude la carga desde el punto en el que falló un trabajo anterior, en lugar de volver a cargar los datos que ya se habían cargado.

  • Escalamiento vertical: defina la instancia del escritor del clúster de base de datos en el tamaño máximo antes de cargarla de forma masiva. Tenga en cuenta que, si lo hace, también debe escalar verticalmente las instancias de réplica y lectura del clúster de base de datos o eliminarlas hasta que haya terminado de cargar los datos.

    Cuando se complete la carga masiva, asegúrese de volver a reducir verticalmente la instancia del escritor.

importante

Si experimenta un ciclo de reinicios repetidos de réplicas de lectura debido a un retardo en la replicación durante una carga masiva, es probable que sus réplicas no puedan mantener el ritmo del escritor en el clúster de base de datos. Escale los lectores a un tamaño superior al del escritor o quítelos temporalmente durante la carga masiva y vuelva a crearlos una vez finalizada la operación.

Consulte Parámetros de la solicitud para obtener más información sobre cómo configurar los parámetros de las solicitudes de carga.