Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/01/2012, 15h38   #1
Nouveau Membre du Club
 
Inscription : septembre 2004
Messages : 182
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 182
Points : 29
Points : 29
Par défaut Stocker des XLS dans BLOB

Bonjour,

Il a été décidé pour le projet sur lequel je bosse de stocker des fichiers XLS dans une colonne de type BLOB. La verison actuelle de la base est la 10.2.0.5, avec dans l'année une migration en 11g.

Les fichiers XLS vont servir à restituer des tableaux et des graphes. Comme les calculs seront assez lourds et longs, ils veulent tout pré-calculer dans des fichiers et les stocker en base.

J'avais plutôt proposer un stockage des fichiers sur un serveur dédié avec une colonne en VARCHAR ou BFILE car je pense que c'est plus efficace pour la base. Mais on m'a dit que ça n'était pas envisageable car trop lourd.

J'ai créé le sujet pour avoir des retours d'expérience, des avis, préconisations ou arguments.
J'espère donc que vous allez soit lever mes craintes, soit m'apporter des arguments infaillibles pour le projet.

Merci.
Hobbi1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 17h55   #2
Membre Expert
 
Inscription : août 2009
Messages : 779
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 779
Points : 1 098
Points : 1 098
Je l'ai déjà fait sur un projet, ça ne pose pas vraiment de problème, sauf qu'il ne faut pas oublier que quand tu vas récupérer ton fichier, cela va transiter par ton appli (forcément, on ne peut pas juste donner un lien, par exemple) et donc qu'il va falloir tailler la mémoire allouable en fonction de la taille des fichiers et du nombre d'utilisateurs pouvant sauvegarder/demander de tels fichiers en parallèle.
Rei Ichido est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 18h15   #3
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 440
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 440
Points : 4 183
Points : 4 183
La différence BFILE vs BLOB, c'est que le BFILE ne stocke pas le fichier dans la base, mais sur le serveur. Donc il peut y avoir un problème de sécurité (n'importe qui ayant accès au serveur a accès aux fichiers).. et aussi de cohérence en cas de suppression manuelle des fichiers.
J'ai une base avec des blob (images), choix du blob pour la sécurité. Par contre on les a mis dans une seconde base pour un problème de sauvegarde et d'export, et ce choix n'était pas très judicieux, car les BLOB par dblink, c'est très restreint.

@Rei Ichido : Tu peux toujours accéder à tes fichiers dans un BLOB avec une URL avec modsql (je l'ai fait pour afficher des pdf), très pratique.
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 14h16   #4
Nouveau Membre du Club
 
Inscription : septembre 2004
Messages : 182
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 182
Points : 29
Points : 29
Merci pour vos réponses.
Donc pour vous, le BLOB ne pose pas de problèmes particulier ?

Les utilisateurs ne feront que de la lecture. Ils iront juste chercher des fichiers contenant des tableaux d'indicateurs pré-calculés.
Les calculs seront fait par batch la nuit.
Hobbi1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 16h21   #5
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 686
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 686
Points : 10 435
Points : 10 435
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Question bête peut-être, les calculs sont fait dans Oracle ou par d'autres mécanismes ?

Si vous avez une structure, plutôt que de stocker des BLOB ça vaut le coup de stocker des données relationnelles.

Recréer un fichier .csv exploitable par Excel depuis une table est relativement simple.
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/01/2012, 16h06   #6
Nouveau Membre du Club
 
Inscription : septembre 2004
Messages : 182
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 182
Points : 29
Points : 29
Les calculs sont faits par batch et insérés dans Oracle.
Les tables contiennent les données à extraire directement.

L'IHM est en java et les utilisateurs passent par un explorateur.
L'architecte et les développeurs java ont dit qu'extraire les données directement de la base pour générer un XLS en dynamique à chaque demande des utilisateurs est impossible. Les fichiers contiennent beaucoup de lignes et beaucoup d'onglets et on m'a dit qu'il n'y aura jamais assez de mémoire.
Je dis ça juste pour infos car je n'y connais rien.

Les utilisateurs ont besoin de plusieurs onglets et veulent avoir une certaines présentations : couleurs, polices ...
Donc le csv est difficile.
Hobbi1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2012, 16h26   #7
Membre Expert
 
Inscription : août 2009
Messages : 779
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 779
Points : 1 098
Points : 1 098
On a donc fait face au même problème

Attention quand même au moment où les utilisateurs vont vouloir récupérer leurs fichiers, ça va passer par la jvm, et là ça peut faire mal si les xls sont volumineux et que plein d'utilisateurs le font en même temps (à tout hasard, vers la fin du mois quand ils commencent à récupérer les données pour faire leurs rapports).
Il va falloir, ou bien gérer du process de mise en file pour ne pas traiter plein de fichiers en parallèle, ou bien avoir une heap size conséquente pour la jvm !
Rei Ichido est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 12h29   #8
Nouveau Membre du Club
 
Inscription : septembre 2004
Messages : 182
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 182
Points : 29
Points : 29
Ok
Merci pour l'info. Je vais en parler aux personnes concernées.
Hobbi1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h35.


 
 
 
 
Partenaires

Hébergement Web