Pensez à lire la Charte avant de poster !

$\newcommand{\K}{\mathbf K}$


Les-Mathematiques.net - Cours de mathématiques supérieures
 Les-Mathematiques.net - Cours de mathématiques universitaires - Forum - Cours à télécharger

A lire
Deug/Prépa
Licence
Agrégation
A télécharger
Télécharger
147 personne(s) sur le site en ce moment
E. Cartan
A lire
Articles
Math/Infos
Récréation
A télécharger
Télécharger
Théorème de Cantor-Bernstein
Théo. Sylow
Théo. Ascoli
Théo. Baire
Loi forte grd nbre
Nains magiques
 
 
 
 
 

Ouverture de bases de données "volumineuses"

Envoyé par Caetera 
Ouverture de bases de données "volumineuses"
il y a cinq mois
Bonjour,

J'aimerais travailler sur les données d'un mois de la base Damir (c'est une base de données de la Sécurité Sociale française). Le problème est que la base est très volumineuse 3,5 GO et la RAM de mon PC est de 3,5 GO aussi. Je n'arrive donc pas à l'ouvrir. Mon objectif est d'ouvrir la base pour sélectionner les lignes (quelques centaines de millier) qui m'intéressent et les enregistrer dans un csv pour pouvoir réaliser mon étude.

J'ai essayé d'ouvrir le fichier avec Excel, Access, Python (read_csv avec pandas) et R (read.csv), mais tout a échoué. Auriez-vous une idée à me proposer svp ?

Je vous remercie par avance
Re: Ouverture de bases de données "volumineuses"
il y a cinq mois
avatar
Elle se présente comment cette base de données? Fichier xls? Ou bien fichier texte ordinaire avec les items séparés par des virgules et le passage à la ligne un point virgule (je crois que ce sont les symboles utilisés à cette fin)?
Dans le dernier cas cela ne doit pas être trop difficile d'écrire un script/petit programme qui permette d'extraire les ligne de la $n$ème à la $m$ème. (m>n).

PS:
Je parlais du format de fichier CSV. chaque item est séparé par une virgule et le symbole de retour à la ligne est utilisé pour indiquer un changement de ligne.

Je vis parce que les montagnes ne savent pas rire, ni les vers de terre chanter.(Cioran)



Edité 2 fois. La dernière correction date de il y a cinq mois et a été effectuée par Fin de partie.
paf
Re: Ouverture de bases de données "volumineuses"
il y a cinq mois
Bonjour,

Pour ouvrir rapidement un gros CSV avec R, tu peux utiliser la fonction fread de la librairie data.table ou la fonction read_csv de la librairie readr.
Re: Ouverture de bases de données "volumineuses"
il y a cinq mois
avatar
J'imagine que Paf parle de ça:

[fr.wikibooks.org]

Je vis parce que les montagnes ne savent pas rire, ni les vers de terre chanter.(Cioran)
Re: Ouverture de bases de données "volumineuses"
il y a cinq mois
Bonjour.

Je ne programme plus depuis longtemps, mais dans les langages anciens il existait des lectures séquentielles des fichiers, qui permettaient de traiter de gros fichiers dans une mémoire très petite (quelques ko). A l'ouverture du fichier, rien n'était lu.

Cordialement.
Re: Ouverture de bases de données "volumineuses"
il y a cinq mois
Bonjour
Je vous prie de m'excuser de ma réponse un peu tardive.

@ Fin de partie :
Le fichier est un csv avec comme séparateur des points-virgules. Par contre j'ignore le symbole de retour à la ligne

@ paf et gerard0 :
Je vais mélanger vos deux idées. Je vais utiliser un découpeur de csv pour créer des sous fichiers avec un nombre de lignes supportable pour mon ordinateur puis je les ouvrirai avec un fread un par un en sauvegardant les éléments utiles dans un autre fichier

Un grand merci à vous trois pour vos réponses !
Re: Ouverture de bases de données "volumineuses"
il y a quatre mois
Bonjour,
j'arrive assez tard dans la discussion.

Beaucoup d'outils doivent charger en mémoire l'intégralité du fichier avant de le traiter, ce qui évidemment pose des problèmes sur de très gros fichiers; comme cela a été dit plus haut, certains langages permettent de "parser" le fichier, c'est à dire de le découper pour limiter les ressources, mais aussi afin paralléliser la lecture (et donc d'accélérer le traitement).

Sur un projet datant de 2 ans, et sur des fichiers Ascii de plusieurs dizaines de Go, j'ai utilisé Python et "readline" dans une boucle qui parcourt tout le fichier; de cette façon seule la ligne est chargée en mémoire puis traitée. Ensuite tout est question de stratégie.

Je n'ai pas eu l'occasion de tester Pandas, mais il est censé être puissant; j'ai laissé Python de côté depuis ce projet, mais il me faut vraiment que je m'y remette.

Paul



Edité 1 fois. La dernière correction date de il y a quatre mois et a été effectuée par AD.
Seuls les utilisateurs enregistrés peuvent poster des messages dans ce forum.

Cliquer ici pour vous connecter

Liste des forums - Statistiques du forum

Total
Discussions: 136 324, Messages: 1 317 849, Utilisateurs: 24 014.
Notre dernier utilisateur inscrit Matlac.


Ce forum
Discussions: 2 266, Messages: 16 684.

 

 
©Emmanuel Vieillard Baron 01-01-2001
Adresse Mail:

Inscription
Désinscription

Actuellement 16057 abonnés
Qu'est-ce que c'est ?
Taper le mot à rechercher

Mode d'emploi
En vrac

Faites connaître Les-Mathematiques.net à un ami
Curiosités
Participer
Latex et autres....
Collaborateurs
Forum

Nous contacter

Le vote Linux

WWW IMS
Cut the knot
Mac Tutor History...
Number, constant,...
Plouffe's inverter
The Prime page