Bonjour à tous,
Pour commencer, veuillez m'excuser si mon message est placé au mauvais endroit, je débute sur ce forum
Actuellement étudiant en Data Science, je suis aujourd'hui en stage dans un laboratoire de recherche qui aimerait mettre en place une architecture clients / serveur pour y stocker les données utilisées. Je possède des compétences en programmation, en analyse de données et en machine learning (R, Python), en Markdown, un peu de HTML/CSS, de bonnes notions en bases de données relationnelles et en SQL, mais je n'ai jamais été confronté à ce genre de projet. Je me permets donc de solliciter votre aide à propos de quelques interrogations.
Permettez-moi avant tout de vous expliquer le contexte :
Aujourd'hui les différents acteurs du laboratoire travaillent localement.
- Ils ont chacun leur sujet de recherche, qui interfère parfois avec celui d'autres personnes.
- Les données de chacun sont stockées localement sur PC ou disques durs externes, et chacun classe les données à sa manière.
- Les données sont issues de ressources en ligne en open data, ou sont produites par le laboratoire.
- Les données sont très variées : on va retrouver du .xlsx, de l'image, du .pdf, du .shp, des rasters, du .geojson, .csv, .txt, scripts de code, et j'en passe.
- La fréquence de récolte et de création des données et la taille des données sont quasi aléatoires selon les projets.
...Et maintenant les objectifs :
- L'objectif principal est de stocker ces données sur un serveur distant de manière sécurisée afin que les données ne soient plus réparties sur chaque ordinateurs localement, en se mettant d'accord sur une hiérarchie et une manière de classification.
- L'idée est que les chercheurs doivent pouvoir accéder aux données à distance, télécharger les éléments qui les intéressent pour travailler, puis uploader de nouvelles données.
- Il faudra avoir un système de classement, de métadonnées et de tags sur les données avec un moteur de recherche, afin de retrouver des fichiers particuliers (un peu à la manière de https://www.data.gouv.fr/)
- Idéalement, il faudra mettre en place un système de profils utilisateurs : certains profils pourront simplement consulter les données tandis que d'autres pourront modifier les données, en rajouter, en supprimer.
- Le labo aimerait mettre en place un wiki interne collaboratif.
- Enfin, le laboratoire aimerait si possible récupérer de manière automatique les données disponibles en open data et les stocker directement dans le serveur.
Pffffiou ! Ca fait beaucoup, je sais ! Si je ne vous ai pas perdu ici, merci d'être encore là . Le fait est que mes connaissances en bases de données se limitent au SQL classique et aux bases de données relationnelles. Et pour tout vous dire, je n'ai absolument aucune idée de comment mettre en place tout cela... Rassurez-vous, j'ai 6 mois pour mettre en place correctement cette architecture. Il s'agit donc pour moi dans un premier temps de découvrir les différentes solutions existantes et de faire un état de l'art. Je me permets donc de solliciter votre aide à propos des questions suivantes :
- Première question peut-être naïve : par où démarrer tout simplement ?
- Je n'imagine pas du tout comment pourraient être stockés les éléments, s'agirait-il de simples lignes dans une table faisant référence à de réels fichiers stockés dans un dossier ? (Dans ce cas, à quoi bon utiliser une table ?)
- Vers quelles technologies dois-je me rapprocher ?
- Quels sont les domaines dans lesquels il faut que je creuse ? (Réseau ? Web ?)
- Quelles sont les étapes de mise en place d'un serveur ? Est-ce au prestataire qui fournit le serveur de s'en occuper ?
Un grand merci par avance si vous pouvez m'éclairer et me donner déjà quelques pistes solides. N'hésitez pas à me suggérer tout ce qui vous semble plausible, découvrir une nouvelle technologie ou un nouveau langage de 0 ne me fait pas peur :p.
Merci !
Partager