Athento permite la migración de grandes cantidades de documentos, aproximadamente 100 millones documentos al día, esta cifra puede variar dependiendo del tipo de instancia, infraestructura, etc.
Para realizar una migración de este tipo, se debe realizar lo siguiente:
- Solicitar acceso SFTP a la ruta del repositorio donde se ubicarán los documentos. Normalmente será una ruta del estilo /var/www/athentose/media/uploads/repo_XXX/team_YYY/space_ZZZ/bulk_load/carpeta_migracion .
- Usando un cliente SFTP, subir los documentos a dicha ruta. Este proceso durará un tiempo determinado, pero puede seguirse con el siguiente paso para continuar la migración aunque aún no estén subidos los binarios.
- En dicha ruta, ubicar un fichero llamado "XXX_migration.csv" donde XXX debe reemplazarse por un nombre único para dicha migración.
- El fichero "XXX_migration.csv" debe tener las siguientes columnas:
- filepath: Con la ruta relativa al fichero a migrar dentro de la carpeta "carpeta_migracion". Este campo puede incluir o no el nombre del fichero
- filename: Con el nombre del fichero binario a migrar.
- Tantas columnas como sea necesario para los metadatos a migrar, usando como cabecera el nombre del metadato.
Como separador de las columnas se recomienda usar ; - En la administración avanzada, ir a "Bulk migration config" y añadir la configuración para el espacio en el que se va a realizar la carga. Es suficiente indicar el campo "Serie", ya que el resto de parámetros tienen una opción por defecto. Este paso generará un Get path que se verá desde la pantalla "Bulk migration configs"
- Crear enlace simbólico en el servidor: ln -s /mnt/hotpaths/nombre del usuario del sftp /Get path generado en el paso anterior
- Al finalizar la carga, se generará un fichero en la ruta de migración llamado "XXX_migration.csv_output.csv" con el listado de documentos creado y el UUID generado para cada uno de ellos.
- Si se ha marcado dicha opción, también se exportará un fichero en formato JSONL con los resultados de la salida. En este caso, el fichero también incluye la información de si el binario asociado a cada línea de metadatos se ha encontrado o no. Este dato viene en la clave binary_exists, que puede tener valores true o false.
IMPORTANTE: En ningún caso se deben borrar los documentos depositados en el SFTP, de lo contrario, podrían producirse pérdidas de información.
Ejemplo de cabecera para el fichero CSV de migración
filepath|filename|metadata.contract|metadata.invoice_number|metadata.invoice_total
Supongamos en el SFTP se ha creado la carpeta carga1
:
content/carga1
En carga1
contienen los siguientes elementos:
content/carga1/ejemplo1.pdf
content/carga1/subcarpeta1/ejemplo2.pdf
content/carga1/datos_carga.csv
El CSV tendría el siguiente formato:
filepath;filename
;ejemplo1.pdf
subcarpeta1;ejemplo2.pdf
Nota: Si no se incluye una subcarpeta a la carpeta de carga, el filepath se deja en blanco.
El archivo CSV incluido en la carpeta de carga, no se debe relacionar como un registro del CSV.
Buenas prácticas y controles a seguir
- Usar codificación UTF8 tanto para el fichero CSV como para las rutas de los documentos.
- No almacenar en una carpeta más de 50.000 elementos, usar subcarpetas cuando haya más documentos en cada carga masiva.
- Revisar el formato de la cabecera, respetando mayúsculas y minúsculas.
- Revisar el formato del CSV, asegurando que no se utilice el campo separador dentro del valor de un campo.
- Revisar que se respeten mayúsculas y minúsculas en los nombres de los documentos. Por ejemplo, si tenemos un documento llamado factura.pdf en el SFTP en el fichero CSV debe llamarse exactamente igual, no puede llamarse Factura.pdf ni factura.PDF.
- Asegurar que ni en el sistema de ficheros ni en el fichero CSV los nombres de carpetas o binario tengan espacios al principio o al final.
- Cada carpeta sólo se puede usar una vez para la carga masiva. Si ya se ha usado una carpeta, aunque la carga no haya sido satisfactoria, hay que generar una nueva carpeta para realizar la carga.
- Es recomendable que cada carga no supere el millón de documentos. Si es necesario cargar varios millones, es más recomendable crear carpetas por paquetes de, aproximadamente 1 millón de documentos cada uno.
Activación de la tarea para carga automática
Para que el proceso de carga sea automático se debe configurar el comando automatic_bulk_migration
Velocidad de la migración
Si bien Athento ha realizado migraciones a velocidades de 100.000.000 documentos al día, esta velocidad puede verse afectada por muchos aspectos, tales como la infraestructura, configuración de la instancia, etc.
Si fuese necesario migrar a mayor velocidad, por favor, consultar a soporte@athento.com
La velocidad de 100.000.000 documentos al día no incluye el tiempo de migración de los binarios, el cual dependerá en gran medida del ancho de banda durante la migración vía SFTP y del tamaño de los documentos.
Como referencia, si se realiza una migración vía API REST, la velocidad puede ser aproximadamente de 1.000.000 documentos al día.
¿Cómo se puede deshacer una migración masiva?
Si ha realizado una carga que necesita eliminar, puede ir a la zona de administración avanzada, a los "Bulk migration logs", encontrar el registro de la carga que se desea eliminar y abrirlo.
En este registro, marcar la opción "Undo bulk load".
El comando undo_bulk_migration se encargará de realizar el borrado lógico de los documentos.
Al realizar cargas masivas, intente evitar demasiados errores de carga, dado que el borrado de cientos de miles o millones de documentos es un proceso costoso.
Migración de metadatos
Para migración de metadatos, será necesario utilizar un comando posterior a la migración de documentos. Este comando es:
./manage.py bulk_migration_metadata --space_name=SpaceZZZ
Este comando no es necesario cuando se utiliza automatic_bulk_migration, ya que éste ejecuta tanto la carga de documentos (comando bulk_migration), como la carga de metadatos (bulk_migration_metadata).
Dudas frecuentes
¿Por qué es necesario reindexar documentos?
Comentarios
0 comentarios
Inicie sesión para dejar un comentario.