Base de Datos NOSQL o SQL?

on martes, 12 de agosto de 2014
Bueno iniciando de nuevo con el blog, intentare comentar los proyectos que tengo en el trabajo en partes y pues mas que nada por si algunos tienen tropiezos o dudas como las que yo tengo en busca de soluciones para proyectos pues esto podría servirles.



Bueno ya sin tanto blablabla, empecemos.
Últimamente he estado en un proyecto donde ocuparía hacer una Base de Datos Distribuida ya que se planea manejar Sucursales, pero he aqui un pequeño gran problema que es y entonces que Motor de Base de Datos usar ? (*Contando que habría mas de 1 millon de registros*)

Ahí entre a pensar y a leer lo que me ofrecían varios entre los cuales destacaron para mi proyecto los siguientes:


  • MySQL
  • MariaDB (*Es parecido a MySQL de hecho es un fork, pero con mejoras*)
  • Postgresql
  • Cassandra
  • MongoDB


Bueno fueron esas mis primeras o las que mas conocía, entonces había pros y contras al final quede por seleccionar MariaDB, ya que buscaba una que tuviera en si replicacion Master to Master y que a la vez fuera rápida, aquí inicialmente me fui hacia Cassandra ya que en viejos proyectos de escuela me había ido bastante bien y era sencillo de montar, pero hubo unos pequeños problemas, entre los cuales ocuparía relaciones entre datos y si se que es posible hacerlo aun ahí, pero no es lo optimo igual sentí que mas que porque fuera lo "mejor" era porque es la moda de hoy en día las base de datos NoSQL, donde igual leyendo a Monty Widenius hablando acerca del porque para el no es buena idea mudar las base de datos a un gestión tipo Big Data y NoSQL, como muchos desean hacer incluyéndome.
http://readwrite.com/2013/01/21/dont-write-off-relational-databases-for-big-data-just-yet

 Ese articulo me hizo ver que realmente estaba en lo incorrecto ya que aun no tenia la suficiente experiencia para trabajar con una base de datos NoSQL para un proyecto así, entonces quede al final por decidir entre Postgresql y MariaDB,  Postgresql que ha sido mi motor de base de datos favorita, tenia un pequeño problema y es que a la hora de hacer replicas solamente encontré documentación para hacer de Master to Slave y pues no deseaba hacer eso, tenia ideas de como hacerlo aun asi funcionar pero pues si algo ya esta hecho y que tiene soporte porque aplicarle algo extra que si luego llegan a cambiar algo en ello no me funcionaria mas, entonces al final en mi opinión la mejor opción es hacer uso de MariaDB.


No digo que no este bien usar las otras opciones sino que leyendo y revisando sobre la dificultad de las cosas MariaDB se me acomodaba sencillamente lo que realmente ocupaba, ya que para hacer replicas en otras sucursales para darlas de alta, no quería molestarme en ir haya, en cambio en el mismo proyecto podría hacer los comandos para que acepte las replicas y las reciba sin problemas mediante código y en la base de datos tener almacenado la información de los Master y que al ver que hay uno nuevo sacar tal información y darlos de alta y como todo es mediante comandos es sencillo, cuando por otra parte Postgresql es modificación de archivos y hacer uso de Slony  que era un poco mas complicado al a hora de programarlo para que se hiciese automático las cosas ademas de agregar que funcionase de forma Master to Master.


Bueno esa fue mi experiencia en busca de el mejor Motor para una base de Datos Distribuidas claro que a a ustedes podría servirle cualquier otra siempre dependerá sobre la logística y necesidades que se tengan.


Después haré una demostración y explicación de como hacer Replicas con MariaDB, ya que actualmente solo cuento con una Laptop por el momento pero dentro de unos días ya tendré 1 pc, para hacer las pruebas.

Saludos  ~

0 comentarios:

Publicar un comentario