Historias
Slashboxes
Comentarios
 

¿Están de moda las bases de datos NoSQL?

editada por nettizen el Domingo, 10 Mayo de 2015, 21:53h   Printer-friendly   Email story
drsromero nos cuenta: «Últimamente veo más proyectos que usan base de datos NoSQL, aunque muchos de los cuales pienso que sólo lo hacen por moda, ya que su estructura podría hacerse sin problemas con base de datos relacionales. Pero en todas veo que usan MongoDB, existiendo tanta variedad de base de datos NoSQL, ¿porqué creéis que MongoDB se está imponiendo a las demás? ¿Usáis base de datos NoSQL en producción? Muchas gracias.»

Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • Si, estan de moda...

    (Puntos:2, Interesante)
    por sammael (16347) el Lunes, 11 Mayo de 2015, 11:28h (#1370346)
    ( http://barrapunto.com/ | Última bitácora: Lunes, 24 Febrero de 2014, 10:03h )
    Al igual que hace un par de decadas Oracle estaba de moda y tu aplicacion (sobre todo si era para bancos o entidades financieras) tenia que usarla aunque los datos se pudieran guardar en archivos de texto plano (de hecho, alguna aplicacion vi donde lo unico que se escribia en bbdd era la configuracion del programa).

    Ojo, que el que esten de moda no significa que no sean una buena opcion en algunos casos, solo que a veces se meten sin pensar.

    Por que MongoDB? Porque tienen un producto decente, se han gastado una pasta gansa en publicidad y han sabido asociarse a otros proyectos molones (ya se habla del stack MEAN; MongoDB, Angular y Node).

    En cuanto a produccion, pues yo uso una mezcla de SQL y NoSQL.

    - Los datos de la aplicacion, el contenido que generan los usuarios, transacciones monetarias y demas va a un cluster de MySql con Galera. Las escrituras son mas lentas, pero estan garantizadas (y en varios sitios).

    - Los datos de sesion de usuarios se guardan en memcache. Si un nodo se cae se pierden los datos que contiene y esos usuarios tendrian que hacer login. En mi caso no es un gran problema.

    - Las comunicaciones entre usuarios se guardan en Redis, configurado para escribir a disco. Las colas pub/sub hacen que el paso de mensajes sea muy sencillo y en caso de desastre solo se perderian los ultimos 2 segundos de datos.
    --

    Dale fuego a un hombre y estara caliente un dia, prendele fuego y estara caliente el resto de su vida.
    [ Responder ]
  • Es al reves

    (Puntos:2)
    por bigplac2 (20370) el Lunes, 11 Mayo de 2015, 12:00h (#1370347)
    Yo lo veo al reves, de lo que se abusa es del modelo relacional, el cual es inútil en el 99,9% de los casos.
    Todo informático tiende a pensar que está haciendo la base de datos de un hospital o algo así y se lía a hacer integridad referencial, foreign keys, transacciones, triggers y no se cuantas mierdas mas ¿para el stock de una tienda de ultramarinos? ¿cual es la posibilidad de que se produzca una condición de carrera en un paki? luego viene el gato, tira el bote de tomate al suelo y te descuadra el stock.
    Por no hablar de blog de internet, parece que es vital que si tengo 10678 fotos y 3856 mensajes, la suma de estos coincida exactamente con el numero que aparece, ni uno mas ni uno menos. Vamos por favor! ¡que no estáis programando una central nuclear.
    Por muchas transacciones ACID distribuidas que inventeis vuestra vida será igual de miserable :)
    [ Responder ]
    • Re:Es al reves de pobrecito hablador (Puntos:2) Lunes, 11 Mayo de 2015, 14:29h
      • Re:Es al reves de bigplac2 (Puntos:2) Lunes, 11 Mayo de 2015, 15:34h
        • Re:Es al reves de Pndel (Puntos:2) Miércoles, 13 Mayo de 2015, 14:34h
    • 2 respuestas por debajo de tu umbral de lectura actual.
  • hype

    (Puntos:3, Interesante)
    por xeper (24762) el Lunes, 11 Mayo de 2015, 12:10h (#1370348)
    ( Última bitácora: Viernes, 27 Septiembre de 2013, 22:48h )
    Bastante moda y bastante hype.

    No lo uses si tus datos son relacionales. Conozco empresas que intentan encajar una estructura relacional en mongo (a base de subdocumentos y desnormalización) y es un buen caos.

    Nosotros usamos mongo ahora mismo para ciertas colas de eventos, para las sesiones de usuario y para los delayed jobs.
    Para caché usamos redis (antes memcache). Y puede que movamos los dalayed jobs a redis también.

    En definitiva, una herramienta más. Analiza tus requisitos, haz unos benchmarks y úsala si lo crees conveniente, pero no sigas la estrategia de las moscas :)
    --
    Dave, this conversation can serve no purpose anymore. Goodbye.
    [ Responder ]
    • Re:hype de pobrecito hablador (Puntos:1) Lunes, 11 Mayo de 2015, 14:33h
      • Re:hype de xeper (Puntos:2) Lunes, 11 Mayo de 2015, 21:10h
        • Re:hype de xeper (Puntos:2) Martes, 12 Mayo de 2015, 09:08h
        • Re:hype de xeper (Puntos:2) Martes, 12 Mayo de 2015, 13:18h
        • 2 respuestas por debajo de tu umbral de lectura actual.
      • 1 respuesta por debajo de tu umbral de lectura actual.
  • ¿Tendencia o moda?

    (Puntos:3, Inspirado)
    por Epaminondas Pantulis (1747) el Lunes, 11 Mayo de 2015, 13:38h (#1370352)
    ( http://hronia.blogalia.com/ | Última bitácora: Jueves, 22 Enero de 2009, 06:57h )

    Tal y como yo lo veo, hay mucho de moda. Los programadores tenemos el defecto de querer usar lo más nuevo y brillante, y casi cualquier desarrollador que se precie de estar al día querrá usar una de estas tecnologías. Quien dice Mongo dice Redis, o ElasticSearch, o Cassandra. ¿Cuántos de nosotros va a implementar un Facebook? ;)

    Si bien es un problema bastante gordo empezar con un modelo relacional para darte cuenta de que tenías que haber usado un sistema NoSQL, peor sería empezar con un MongoDB para terminar tratando de atornillarle un modelo relacional.

    Como todo en esta vida, hay que estar más o menos al corriente de lo que existe y aplicar la regla del sentido común. No es como si MySQL, Postgres o incluso Oracle hayan quedado desfasados de la noche al día.

    Y ahora que mento Oracle, es curioso el movimiento de MongoDB, que está empujando mucho en el ámbito empresarial (con programas de partnership, certificaciones, etc.). Mi apuesta es que su objetivo es ser comprada por alguien... Lo cual no es ni bueno ni malo, por cierto.

    --
    ___
    "Tamparantán que te han visto Pepe, tamparantán que te han visto Juan"
    [ Responder ]
  • Depende el contexto

    (Puntos:1)
    por shaggyz (45103) el Lunes, 11 Mayo de 2015, 19:06h (#1370358)

    Sólo he utilizado MongoDB y Redis. Creo que lo más importante es saber cuando/donde aplicar la tecnología, más que la teconología própiamente dicha. Ahora, si alguno está afirmando que hay gente que despliega tecnologías por "moda" en producción, me parece que está flipando un poco ¿no? Y los que lo ven como un remplazo de BDs relacionales, pues otro tanto.

    Creo que Mongo está muy bien para datos volátiles, la penalización que a mi menos me gustaba (perder la integridad referencial) me parece ahora una de sus mejores virtudes. Imaginad quitar de en medio esa costosa y fundamental carga.

    Muchas veces ACID o hasta la integridad de los propios datos, es innecesaria, de lo contrario no existirían cosas como UDP. En el sector del turismo, por ejemplo, hay muchos datos que tienen un "TTL" muy bajo, pero el volumen es muy grande. Es necesario separar esos datos de la "chicha".

    --
    -- Where there's a shell, there's a way
    [ Responder ]
  • Novedad?

    (Puntos:2)
    por AlphaFreak (3955) el Sábado, 16 Mayo de 2015, 09:18h (#1370448)
    Llevo años usando una base de datos no SQL. Se llama IMS/DB, y existe desde 1968...
    [ Responder ]
  • por Observer (13195) el Lunes, 11 Mayo de 2015, 09:09h (#1370339)
    ( http://www.fsf.org/ | Última bitácora: Domingo, 09 Mayo de 2004, 05:32h )
    El problema es que lo normal es que las nosql sean también no relacionales así que es que no deberías utilizar esa bd si necesitas relaciones.

    Eso dejando aparte que seguramente no van a ser ACID tampoco.
    --
    Si no obtienes respuesta sera porque no la mereces.
  • por Observer (13195) el Lunes, 11 Mayo de 2015, 09:31h (#1370340)
    ( http://www.fsf.org/ | Última bitácora: Domingo, 09 Mayo de 2004, 05:32h )

    El peligro de estar de moda, es que se va a usar incluso para cosas en donde se debe usar una bbdd relacional en lugar de Nosql.
    No hay que confundir nosql con no relacional.
    La primera base de datos nosql era relacional.
    http://en.wikipedia.org/wiki/Strozzi_NoSQL [wikipedia.org]

    Aunque actualmente prácticamente significa lo mismo ya que las que conozco que se promocionan como nosql son ambas cosas.
    Básicamente nosql es una etiqueta que como dices está de moda.

    Y lo mejor que tienen es que escalan casi linealmente con el número de nodos que crees, por lo que si duplicas usuarios (duplicas carga), duplicas nodos y santas pascuas.
    Si no relacionas datos, solo los metes en tablas cualquier bd puede escalar casi linealmente.
    Puedes hacer shard parecido al de mongodb utilizando postgres decidiendo en el cliente en cuales de las bd quieres hacer la inserción o consulta.
    Y una replicación parecida a la de mongo utilizando el sistema de replicación propio de postgres.
    El problema... que tendrás que hacerlo tu(aunque con la ventaja de no tener un nodo central que distribuya la consulta y que va a ser ACID por cada nodo :P).
    --
    Si no obtienes respuesta sera porque no la mereces.
  • 3 respuestas por debajo de tu umbral de lectura actual.