Envision está orientado hacia el procesamiento de archivos tabulados en lotes. Sin embargo, si bien los archivos de texto planos comunes (ej. CSV) son bastante sencillos de generar y de mover, la principal finalidad de utilizar esos formatos es la simplicidad, no un alto rendimiento en la computación. El formato de archivo de Ionic, en cambio, es un formato de almacenamiento en forma de columnas pensado para el procesamiento de Big Data. Los archivos de Ionic pueden leerse y escribirse mediante scripts de Envision. Este formato de archivo ofrece beneficios de escalabilidad significativos con respecto a los archivos de texto planos, así como una mejor determinación de tipo de datos.
Uso previsto para archivos de Ionic
Los archivos de Ionic (asociados a la extensión de archivo
.ion
) están pensados para respaldar el procesamiento de Big Data dentro de Lokad. Este tipo de archivo no solo puede ser procesado mucho más rápidamente por Envision (aproximadamente 5 a 10 veces más rápidamente que los archivos CSV), sino que también arroja resultados más fiables después del procesamiento gracias a la mejor determinación de tipo de datos. De hecho, cuando los archivos que deben procesarse exceden unos cientos de megabytes, sugerimos utilizar el formato de archivo de Ionic. Con Ionic, el procesamiento de hasta docenas de gigabytes al mismo tiempo puede realizarse de modo relativamente veloz.
El formato de archivo de Ionic está pensado como formato de datos interno restringido a la plataforma de Lokad misma. No esperamos que las empresas de nuestros clientes transfieran los archivos a Lokad en formato de archivo de Ionic, ni que recuperen archivos de datos de Ionic para el consumo en los sistemas de sus empresas.
Los archivos de Ionic habitualmente se generan al preparar los datos de entrada. De hecho, los datos de entrada sin procesar obtenidos de extracciones de ERP casi nunca son adecuados para ser procesados "como están" desde una perspectiva de optimización de negocios. Por este motivo, los archivos de datos de entrada sin procesar deben transformarse en archivos de datos preparados, ya que son más adecuados para el análisis que deberá realizarse llegado el momento. Estos archivos de datos "preparados" son los principales candidatos a ser escritos en el formato de archivo de Ionic.
Resumen técnico del formato de almacenamiento de Ionic
Ionic es un formato de almacenamiento en forma de columnas. Dentro de una cuenta de Lokad, este formato aparece en la forma de archivos binarios asociados a la extensión de archivo
.ion
. Este formato es similar al
Apache Parquet, si bien es relativamente más simple. Sin embargo, Ionic también incluye algoritmos optimizados que están específicamente adaptados para el análisis predictivo que a menudo se realiza en la plataforma de Lokad.
A diferencia de los archivos de texto planos, los archivos de Ionic están muy ligados a los tipos. Esto significa que cada columna tiene un tipo de dato, como texto, fecha o número. La relación estrecha con los tipos es una propiedad importante que ayuda a evitar que aparezcan errores de procesamiento de los datos en una secuencia de scripts, por ejemplo, cuando un script lee como archivo de entrada un archivo escrito anteriormente como archivo de salida por otro script.
El almacenamiento en forma de columnas significa que cada columna puede recuperarse y leerse de forma separada. Esta propiedad de los archivos de Ionic puede ayudar acelerar significativamente el procesamiento, primero porque le permite a Lokad cargar solo las columnas que realmente se necesitan para un cálculo, y segundo porque facilita la paralelización implícita del procesamiento de los datos. Esta propiedad es particularmente útil para la cadena de suministro o para la analítica de fijación de precios, ya que es habitual encontrar tablas con docenas, si no cientos, de columnas en estos dos campos.
El formato binario de Ionic asegura un grado de compresión de datos sin pérdidas. Como consecuencia, los archivos de Ionic tienden a ser significativamente más pequeños que sus contrapartidas de CSV, y a menudo se acercan al tamaño de un archivo CSV comprimido GZip. La reducción del tamaño del archivo también contribuye a mejorar el rendimiento de velocidad de procesamiento, porque —a diferencia de la compresión GZip— este formato binario también está diseñado para ser muy rápido (pero no genérico, ya que solo se aplica a datos tabulados, a diferencia del GZip, que se aplica a cualquier tipo de dato).
Uso de Ionic en Envision
En Envision, el formato de datos de Ionic se trata igual que cualquier otro formato de datos. Se identifica con la extensión de archivo
.ion
. La generación de un archivo de Ionic se realiza con el siguiente script:
show table "Products" export:"/sample/products.ion" with Id, Name
Luego, la lectura de un archivo de formato Ionic se realiza con el siguiente script:
read "/sample/products.ion" as Products[*]
Y reiteramos que no existen especificidades para los archivos de Ionic, con excepción de su extensión de archivo
.ion
.