Ionic, format de fichier pour Big Data


Accueil » Ressources » Ici

Envision est conçu pour traiter des lots de fichiers tabulaires. Les fichiers plats les plus courants (au format CSV par exemple) sont simples à générer et à déplacer mais leur but premier reste la simplicité et non la performance du traitement des données. À l’inverse, grâce au stockage en colonnes, Ionic est un format de fichier adapté au traitement Big Data. Les fichiers Ionic peuvent être lus et édités par des scripts Envision. Ils offrent plus d’extensibilité et un typage plus fort des données que les fichiers plats.

Utilisation des fichiers Ionic

Les fichiers Ionic (extension .ion) sont conçus pour faciliter le traitement Big Data au sein de Lokad. Via Envision, ce type de fichier est traité bien plus rapidement (5 à 10 fois plus vite que des fichiers CSV) et de façon beaucoup plus fiable, grâce à un typage plus fort des données. En fait, si les fichiers à traiter dépassent quelques centaines de mégaoctets, nous vous recommandons d’utiliser le format Ionic. Avec ce dernier, le traitement simultané de dizaines de gigaoctets peut être relativement bref.

Le format de fichier Ionic est un format de données interne dont l’utilisation est limitée à la plateforme Lokad. Il n’est pas prévu que nos clients nous envoient des fichiers dans ce format ni que nous en récupérions dans leur système d'information.

Les fichiers Ionic sont généralement générés lors de la préparation des données d’entrée. Les données d’entrée brutes obtenues à partir d’extractions ERP ne peuvent de toutes façons jamais être traitées « telles quelles » dans le cadre des optimisations métier que nous proposons. Par conséquent, les fichiers de données d’entrée brutes doivent être transformés en fichiers de données préparés, plus adaptés à l’analyse à venir. Ces fichiers de données « préparés » sont de bons candidats au format Ionic.

Présentation technique du format de stockage Ionic

Ionic est un format de stockage en colonnes. Dans un compte Lokad, ce format apparaît sous la forme de fichiers binaires associés à l’extension .ion. Bien que plus simple, ce format se rapproche d’Apache Parquet. Cependant, Ionic ne comprend que des algorithmes optimisés et spécialement adaptés aux analyses prédictives fréquemment réalisées sur la plateforme Lokad.

À la différence des fichiers texte plats, les fichiers Ionic sont fortement typés. Chaque colonne est associée à un type de données, texte, date ou nombre par exemple. C’est une caractéristique importante qui permet d’éviter les erreurs lors du traitement des données par une suite de scripts, c’est-à-dire lorsqu’un script utilise en entrée un fichier précédemment généré par un autre script.

Grâce au stockage en colonnes, chaque colonne peut être récupérée et lue individuellement. Cette propriété des fichiers Ionic peut significativement augmenter la vitesse de traitement : Lokad peut charger uniquement les colonnes nécessaires au calcul et le traitement parallèle des données s’en trouve facilité. Le stockage en colonnes est particulièrement utile aux analyses logistiques ou aux analyses des prix car, dans ces domaines, il n’est pas rare de manipuler des tables qui contiennent des dizaines voire des centaines de colonnes.

Le format binaire d’Ionic garantit un certain degré de compression des données sans perte. Ainsi, les fichiers Ionic sont généralement plus petits que leurs homologues au format CSV, proches de la taille d’un fichier CSV compressé par GZip. La réduction de la taille des fichiers contribue également à l’augmentation de la vitesse de traitement car — à la différence de la compression GZip — ce format binaire est aussi conçu pour être très rapide (mais non générique puisqu’il s’applique uniquement à des données tabulaires, alors que GZip s’applique à tous types de données).

Utilisation d’Ionic dans Envision

Du point de vue Envision, Ionic est traité comme n’importe quel format de données. Il est identifié par l’extension de fichier .ion. Le script suivant génère un fichier au format Ionic :
show table "Products" export:"/sample/products.ion" with Id, Name
Le script suivant lit un fichier au format Ionic :
read "/sample/products.ion" as Products[*]
Encore une fois, aucune spécificité, à part l’extension de fichier .ion.