Importación masiva de datos
Importación masiva de datos
¿Por qué esta tarea?
Algunos proyectos requieren soluciones más complejas que las importaciones CSV habituales que ya hemos tratado en esta capacitación. Anteriormente, tratamos con dos tipos diferentes de importaciones CSV: importaciones básicas e importaciones avanzadas.
En primer lugar, en el primer curso abordamos archivos de registros relativamente "planos", orientados a la importación de contactos y productos (algo que se requiere en el 99% de las implementaciones). Luego, cubrimos un método de importación más avanzado, relacionado con el inventario y los saldos de cuentas, que a menudo también se requiere, pero es un poco más difícil de importar debido a la obligación de comprender bien el modelo de datos y usar los identificadores XML (identificadores externos).
Aquí abordaremos otro tema del curso relacionado con la importación, pero este se utilizará solo cuando el volumen de datos lo justifique. En tales casos, deberá importar sus archivos CSV mediante una rutina automatizada (programada) y el objetivo de este tema del curso es mostrarle cómo lo hacemos.
¿Cómo manejarlo?
Lea la siguiente documentación y vuelva a consultarla cuando sea necesario. Preste atención. Es importante comprender que creamos este elemento del curso para que conozca esta biblioteca que desarrollamos, pero no creemos que este tipo de importación deba ser manejada únicamente por un BA/PL. En cambio, debe involucrar a un desarrollador que pueda diseñar el script, con su ayuda.
¿De qué trata esta tarea?
La tarea consiste en comprender cómo se puede importar un mayor volumen de datos en una base de datos SaaS, en Odoo.sh y/o en sus propios servidores.
Documentación
ETL
Algo que no se cubrió durante nuestras sesiones anteriores es que una importación de un archivo en cualquier software ERP generalmente se procesa en 3 pasos diferentes, comúnmente llamados ETL : Extracción, Transformación y Carga.
La extracción se refiere a la forma en que se "extraen" (o exportan) los datos de un sistema de origen, mientras que la transformación se refiere a lo que estábamos cambiando manualmente en el archivo CSV (corrigiendo errores, renombrando campos, eliminando errores tipográficos, cambiando el modelo de datos para que coincida con el de Odoo, etc.).
Por último, viene la parte de "Cargar". Odoo se encarga fácilmente de esta parte una vez que la transformación manual se ha completado correctamente en el archivo CSV/XLS/XLSX. La mayor parte del tiempo de carga que tarda Odoo se debe a la creación de un registro para cada fila. Por supuesto, Odoo abortará el proceso en cuanto encuentre un error, en cuyo caso deberá revisar el archivo antes de volver a intentar la importación.
Este proceso se parece a la mayoría de los proyectos normales y normalmente se divide de manera similar:
- El tiempo de extracción lo gasta su cliente o su proveedor.
- El tiempo de transformación lo gastas tú
- El tiempo de carga lo gasta Odoo (una vez que se carga el archivo y se presiona el botón "importar", pero hay un poco de tiempo de su parte para cargar el archivo (y posiblemente también definir las columnas)).
La mayor parte del tiempo se suele dedicar al paso de Transformación. La cantidad de tiempo necesaria dependerá de:
- Si el archivo es particularmente largo (varios miles de filas)
- Si el archivo contiene muchos errores tipográficos o errores que necesita corregir
- Si el archivo debe importarse en varias iteraciones (o lotes)
- La importación debe probarse varias veces antes de la validación final.
Del lado de Odoo, la mayor parte del tiempo el manejo de la carga dependerá de lo siguiente:
- Cantidad de filas y columnas
- La complejidad del modelo que está importando (es más rápido importar registros planos, como saldos de apertura, en lugar de registros complejos, como selecciones de acciones)
- Longitud del lote, o cuántas filas estás importando a la vez. De forma predeterminada, Odoo propondrá 2000 en la interfaz
En ambos pasos, nuestra biblioteca de importación CSV podría ser de ayuda.
La cuestión del "volumen"
Además de la Extracción y Carga, pueden surgir otros factores que pueden afectar el tiempo de importación. Esto suele ocurrir cuando su importación tiene una o varias de las siguientes características:
- El recuento de filas es mayor a 50 000, lo que dificulta bastante la importación manual, incluso con el nuevo campo "rango" que le permite importar su archivo CSV poco a poco. Las fuentes de su importación cambian constantemente, por lo que no le deja tiempo para transformarlas "manualmente".
- Los archivos se extraen de varios otros sistemas y es necesario reagrupar los datos en un solo lugar
- Debe probar la importación varias veces (por ejemplo, durante una prueba de concepto o para validar su importación) y el tiempo que lleva la importación manual es demasiado largo para que este proceso sea eficiente.
- La transformación de datos es tan compleja que es imposible realizarla manualmente sin cometer errores (por ejemplo, muchos cambios en el modelo de datos en comparación con el programa de origen, muchos campos m2m u o2m).
En casos como los enumerados anteriormente, nuestra biblioteca también resulta útil.
La biblioteca de soluciones
Tanto si su objetivo es solucionar los problemas anteriores como si simplemente desea «programar» su importación para que sea más rápida, no dude en empezar a trabajar con esta biblioteca. Le aportará, entre otras cosas, las siguientes ventajas:
- Importación automatizada: La biblioteca se encargará de importar todos los archivos programados, sin tener que interactuar manualmente con Odoo entre lotes, ni detenerse cuando surge un error.
- Cómo evitar tiempos de espera (tiempo predeterminado de 15 minutos, fijo en nuestro SaaS) al agrupar sus importaciones: en lugar de solicitar la importación de archivos de 2000 registros en modo de transacción, esta biblioteca también puede importar por lotes de filas provenientes del mismo archivo, y la biblioteca se encarga de enviar el siguiente lote tan pronto como finaliza el lote anterior.
- Modo de transacción sin bloqueo: en lugar de entender la importación como un archivo que se importará en su totalidad o no se importará en absoluto, la biblioteca importará las filas una por una (tenga cuidado, ya que esto también es un inconveniente si no trabaja correctamente con XMLID)
Segundo paso: la biblioteca registrará todos los errores en un segundo archivo CSV, para que puedas verificar cuáles son los errores y eventualmente volver a importar el archivo en un segundo paso.
¿Documentación y formación?
Con excepción del siguiente video (grabado en un evento anterior de OXP), no existe un curso de capacitación típico para esta biblioteca. Puede solicitar ayuda a uno de nuestros consultores técnicos si está interesado en utilizarla y para recibir asesoramiento. Además, notará que la documentación README es bastante completa y ya le brinda una buena descripción general de las opciones de esta biblioteca.
Existen otras soluciones
Existen otras soluciones en línea para transformar archivos CSV de gran tamaño, a veces con una interfaz agradable y clara que lo ayudará a tomar decisiones. Pero, en la mayoría de los casos, estas soluciones tienen un costo elevado y no permiten una conexión RPC/json, lo que cubre solo una parte de lo que necesita en el proceso.
Producción
Ahora dispone de una herramienta, en forma de biblioteca, para importar sus datos de forma más rápida y “programada”. Incluso si, como consultor, no va a encargarse de toda la importación usted mismo, ahora está mejor preparado para analizar esta posible solución con su equipo técnico, en caso de que necesite importar un gran volumen de datos.
No hay comentarios por ahora.
Compartir este contenido
Compartir enlace
Compartir en redes sociales
Compartir por correo electrónico
Please iniciar sesión para compartir esto Artículo por correo electrónico.