IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

NoSQL Discussion :

Choix de technos


Sujet :

NoSQL

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2014
    Messages : 23
    Points : 17
    Points
    17
    Par défaut Choix de technos
    Bonjour,

    pour faire simple je dois faire une appli qui indexe et retrouve des documents semi-structurés et géolocalisés :

    je souhaite stocker de données de différents fichiers semi-structurés dans une base et pouvoir réaliser des recherches.
    L'idée naive serait de partir sur des technos genre "JSON" et une indexation sous forme de tag pour accélerer les recherches. Les éléments que je vais indexer vont être géolocalisés. J'ai donc besoin de faire une recherche par distance.

    Se pose alors la question pour moi NoSQL ou pas ?

    Mes réflexions sont : Le NoSQL est bien car je stocke un JSON ou autre chose très facilement, sans évolution de schéma relationnel. Sachant que j'ai besoin de souplesse et pas des contraintes d'intégrité, et plutot de performance ou de "scalability", c'est plutôt sympa.
    L'inconvénient du noSQL c'est l'indexation , la recherche, et en particulier la présence de critère géographique dont il ne dispose pas. Donc autant partir sur un PostgresSQL qui embarque des API SIG, permet d'indexer, en utilisant d'un coté un mécanisme de tag pour les recherches et de requêtes indexés, et de l'autre coté qui possède un type de données NoSQL.


    Alors je sais bien ce que je peux attendre de PG. Mais ma question est de savoir si le NoSQL répond à mes besoins. Les limites que j'entrevois en sont-elle ou existe-t-il des solutions que je ne maitrise pas et qui répondent à mon besoin (serveur NoSQL auquel j'ai pas pensé, Elastic Search,...) ?

    Merci pour vos conseils.

  2. #2
    Rédacteur

    Homme Profil pro
    Geek entrepreneur
    Inscrit en
    Novembre 2004
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Geek entrepreneur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 224
    Points : 2 373
    Points
    2 373
    Par défaut
    Une base comme MongoDb a de bonnes capacités en indexation et permet des recherches géolocalisées. La structure json lui est parfaitement adapté, les documents sont justement stockés en json binaire (bson).
    Elasticsearch propose d'excellentes capacités de recherche et gère très bien la géolocalisation.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2014
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par hugo123 Voir le message
    Une base comme MongoDb a de bonnes capacités en indexation et permet des recherches géolocalisées. La structure json lui est parfaitement adapté, les documents sont justement stockés en json binaire (bson).
    Elasticsearch propose d'excellentes capacités de recherche et gère très bien la géolocalisation.
    Ok, merci.

    Bon, je vais regarder de plus pres alors ces deux technologies et essaye une "poc"...

    Tu partirais sur un outil plus simple et basique genre mongodb ou au contraire sur un elasticsearch qui peut sembler plus adapté mais semble aussi plus "commercial" a priori ?

  4. #4
    Rédacteur

    Homme Profil pro
    Geek entrepreneur
    Inscrit en
    Novembre 2004
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Geek entrepreneur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 224
    Points : 2 373
    Points
    2 373
    Par défaut
    les deux solutions sont toute autant commerciales l'une que l'autre. Tu as une version open source et un support commercial si besoin. Mongodb a même une version entreprise (mais la version community est déjà très bien).

    Perso j'utilise les deux conjointement. Dès lors que les recherches à faire sur du texte sont complexe, elasticsearch est bien meilleur. Mais mongo est plus pratique comme stockage primaire je trouve.

    A toi de tester

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2014
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par hugo123 Voir le message
    les deux solutions sont toute autant commerciales l'une que l'autre. Tu as une version open source et un support commercial si besoin. Mongodb a même une version entreprise (mais la version community est déjà très bien).

    Perso j'utilise les deux conjointement. Dès lors que les recherches à faire sur du texte sont complexe, elasticsearch est bien meilleur. Mais mongo est plus pratique comme stockage primaire je trouve.

    A toi de tester
    Ok, merci.

    Pour toi, dans la mesure où j'ai pas de problématique "acid" ou autre, c'est plus intéressant de partir sur une base comme cela pour un développement rapide de proto pouvant passer à une échelle supérieur ?

    Pas d'intérêt à rester sur un système traditionnel genre Postrges ?

    merci

  6. #6
    Rédacteur

    Homme Profil pro
    Geek entrepreneur
    Inscrit en
    Novembre 2004
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Geek entrepreneur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 224
    Points : 2 373
    Points
    2 373
    Par défaut
    The 1 million dollar question

    Sans connaitre le cas d'usage, les évolutions possibles etc... difficile de répondre. Pour du POC en tout cas, c'est un bon moyen de découvrir Mongo et de l'évaluer en vu de futures utilisations.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2002
    Messages : 332
    Points : 502
    Points
    502
    Par défaut
    Je ne crois pas que le type de DB soit critique pour ce genre de projet.

    Pour la performance, je regarderais plutôt à aider la DB avec quelque chose comme Redis pour les lectures performantes et distribuées.

    Pour la recherche et les calculs avec des données géolocalisée, je regarderais les graph DB comme Neo4j .

    Bonne chance!

Discussions similaires

  1. [choix de techno]comment programmer un jeu de carte
    Par roilion dans le forum Général Conception Web
    Réponses: 8
    Dernier message: 16/08/2010, 16h43
  2. Réponses: 1
    Dernier message: 04/05/2009, 11h56
  3. Choix de techno lors de l'entretien d'embauche
    Par takamo dans le forum SSII
    Réponses: 9
    Dernier message: 25/06/2008, 09h52
  4. choix de techno et d'environnement de développement
    Par Derivatives dans le forum Outils
    Réponses: 1
    Dernier message: 22/05/2008, 09h07
  5. [Choix de techno] Mise à jour dynamique de contenu Web
    Par ridefmx dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 02/04/2008, 13h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo