Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
675 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Conseil "fléxibilité" pour stockage massif

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Conseil "fléxibilité" pour stockage massif

n°2325735
rockbottom
Posté le 06-12-2018 à 22:36:36  profilanswer
 

Bonsoir,  
 
Je cherche des conseils pour un projet m'amenant à brasser énormément de données svp.
 
J'ai aujourd'hui une base SQL Server contenant des dizaines de millions de lignes d'ID.  
 
Associés à ces IDs, j'ai une centaine de variables pour lesquelles j'ai plus ou moins de valeurs renseignées (parfois 100% des IDs ont une valeur pour une variable, parfois 1% renseignés & 99% NULL).  
 
Pour différents sujets pros, je vais être amené à générer des tables SQL (ou fichiers CSV) contenant X% de ces IDs et tout ou parties des variables.
 
Aussi, je tiens à ce que les variables soient "flexibles", c'est-à-dire que je puisse en ajouter ou en supprimant facilement. Sachant qu'elles seront toutes recalculées mensuellement.  
 
- Pensez vous que SQL Server soit prévu pour ce genre d'usage ?  
- Si oui, me conseillerez vous de faire une énorme table avec tout mes IDs et toutes mes variables, avec des "select" selon mes besoins d'exports ?  
 
Je crains cette solution car pour ajouter une variable, cela veut dire faire une jointure avec la grosse table + nouvelle table/nouveau fichier.  
 
Ou existe-t-il des solutions bigdata, opensource, ou autre, qui me permettrait de facilement :  
- ajouter/supprimer des variables pour ces millions d'IDs ?
 
Mon but est d'avoir une solution la plus flexible possible en terme d'ajout/suppression de variables, et pouvoir faire des exports relativement rapidement.
 
 
Merci beaucoup pour votre aide et conseils :jap:  
 
 
 

mood
Publicité
Posté le 06-12-2018 à 22:36:36  profilanswer
 

n°2325892
rufo
Pas me confondre avec Lycos!
Posté le 09-12-2018 à 15:03:00  profilanswer
 

Dans mon outil de gestion de conf Icare (cf. ma signature), j'avais fait une table "attributs" qui contenait un ID, un nom d'attribut et une valeur de cet attribut. Cette table avait une relation n-n avec la table des configurations à gérer. En effet, j'avais constaté que de nombreuses confs partageaient un bon nb d'attributs avec le même nom et la même valeur. Du coup, au lieu de les dupliquer, j'en avais qu'un exemplaire et la table entre les 2 (confs-attributs) stockait les liens entre les confs et les attributs. Quand plus aucune conf n'avait de lien avec un attribut donné, je le supprimais. Par rapport à un autre logiciel de gestion de confs, pour les mêmes infos à gérer (environ 270 confs avec chacune, entre 150 et 300 attributs), on est passé d'une BD de 100 Mo à 5 Mo et des temps d'accès bien mieux :)
Tu peux t'en inspirer. Après, tu peux regarder aussi du côté des BD NoSQL. Mais quelques millions d'enregistrements, c'est pas une grosse BD :o


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2325899
TotalRecal​l
Posté le 09-12-2018 à 16:10:13  profilanswer
 

En gros tu veux une BdD où tu puisses gérer des objets qui possèdent des champs qui ne sont jamais exactement les même d'un objet à l'autre.
Faire ça en relationnel pur avec 99% de colonnes vides c'est très moche. Et chiant à manipuler.

 

Ce que décrit rufo, c'est un modèle EAV :
- Une table qui liste les objets
- Une table qui liste les champs possibles pour tous les objets
- Une table qui contient des LIGNES où pour chaque ligne tu viens lier un objet à 1 champ, et spécifier pour chaque champ sa valeur. A la fin tu as x lignes par objet, x dépendant du nombre de champs que cet objet comporte.
T'as qu'à faire ça :o

 

Ou utiliser une base nosql, mais vu la taille modeste de ta base ça ne parait pas indispensable.


Message édité par TotalRecall le 09-12-2018 à 16:11:21

---------------
Topic .Net - C# @ Prog
n°2325914
rockbottom
Posté le 09-12-2018 à 21:31:58  profilanswer
 

Merci beaucoup à vous deux :jap:
J'ai mieux compris ton message totalrecall :o
Je vais étudier cette piste, en fait si je comprends bien, vous stockez tout en lignes plutôt qu'en colonnes.

n°2325915
rufo
Pas me confondre avec Lycos!
Posté le 09-12-2018 à 23:05:25  profilanswer
 

En quelque sorte.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Conseil "fléxibilité" pour stockage massif

 

Sujets relatifs
un conseil pour un debutant svp[divers] conseil langage programmation
Conseil pour un besoin d'un logicielconseil pour établir MCD relations table access
Conseil PortfolioConseil langage à choisir pour mon application
Python : besoin de conseil pour un projet[python] conseil pour la création d'un serveur de jeux
Map C# et stockageConseil techno visualisation/modif BDD via du web
Plus de sujets relatifs à : Conseil "fléxibilité" pour stockage massif


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR