R est un outil puissant de modélisation, mais dans le domaine du datamanagement il a un certain nombre de faiblesses : la taille des tables est limitée par la taille de la mémoire vive, les modules complémentaires de R qui facilitent le chargement de grosses tables ne permettent pas d'accéder à l'ensemble des librairies de modélisation.
Pour la partie modélisation, il semble difficile de s'astreindre des contraintes en mémoire vive, on utilisera volontiers des technologies cloud telles qu' Amazon EC2. Pour le datamanagement, il est possible de réaliser la plupart des manipulations de fichier avec des ressources très faibles avec PostgreSQL ou le langage de programmation PYTHON.
1. PostgreSQL
PostgreSQL est un système de gestion de base de données gratuit et très puissant, l'installation est très simple et permet de charger et manipuler des tables de grandes tailles.
Par le passé ayant déjà utilisé des bases de données sur des outils limités tels que Access je constate que la mise en place de PostgreSQL aurait permis à de nombreuses structures de gagner en rapidité et en optimisation des traitements.
Lors d'installation, il faut créer un utilisateur
Lancement de postgres : sudo -i -u postgres puis psql.
Commande base
Lister les tables : \d
Lister les colonnes d'une table : \d nom_de_la_table
Effacer table : drop table nom_de_la_table;
Création de la table et de ces variables
CREATE TABLE TRAIN (ID BIGINT PRIMARY KEY,TITLE TEXT,BODY TEXT,TAGS TEXT);
Importer un fichier csv dans la table TRAIN
COPY TRAIN FROM '/home/alfard/Documents/Kaggle/Facebook2/Train.csv' csv header;
Une fois la table importée on peut réaliser les traitements en utilisant le langage SQL.
Exporter une table en fichier csv
COPY matable TO '/root/pg/extraction.csv' WITH CSV;
Python est un langage de plus en plus en vogue dans le monde de la data, il est simple à apprendre, dispose de plus en plus de librairies spécialisées et a reçu récemment un soutient financier de près de 3 millions de dollars de la DARPA.
Il est possible avec Python de charger un fichier ligne et par ligne, d'y appliquer des traitements et de l'enregistrer ligne par ligne, la consommation en mémoire vive est alors très faible.