Migración de RDBMS a NoSQL: Cómo prepararse para el cambio en la gestión de datos
La industria se encuentra al borde de cambios tectónicos en cómo y dónde se almacenan y procesan los datos. Durante más de 30 años, el venerable sistema de gestión de bases de datos relacionales (RDBMS, por sus siglas en inglés), funcionando en los centros de datos corporativos, ha sido el responsable de la mayor parte de los datos del mundo. Esto ya no puede continuar. La tecnología de los RDBMS ya no puede mantener el ritmo de la velocidad, volumen y variedad de datos que se crean y consumen actualmente. Para este nuevo mundo de Big Data, se necesitan bases de datos NoSQL.
Migrar hacia estas bases de datos NoSQL de código abierto en la nube requiere cierta preparación para el departamento de TI de la empresa que creció con los RDBMS.
Cómo el Big Data lo cambia todo
No hay nada malo con el RDBMS tradicional. Sencillamente ya no se adapta al mundo en el que vivimos. La movilidad, las redes sociales y la nube: estas y otras tendencias complican la variedad de datos y aumentan drásticamente el volumen de datos almacenados en la empresa.
Como argumenta el analista de RedMonk, James Governor:
El mercado de bases de datos está nuevamente en juego después de un congelamiento de 30 años en el que Oracle dominaba en el segmento alto y Microsoft en el segmento medio. Y luego llegaron el código abierto, la nube, NoSQL, la memoria y todo cambió... La idea de que todo sea relacional ya no existe.
Este no es un problema que solo concierne a las llamadas empresas web como Google y Foursquare. También es relevante para las organizaciones "tradicionales" en las industrias de Finanzas, Salud, Gobierno, Retail y otras verticales, y se prevé que impulse un gasto de $28 mil millones en TI en 2012, según Gartner. A medida que las organizaciones se enfrentan a sus problemas de Big Data, cuando los datos crecen más allá de un servidor o se distribuyen, generalmente terminan en el mismo camino que las empresas web: bases de datos NoSQL de código abierto.
Vale la pena invertir en minería de datosAunque el Big Data a menudo se asocia con tecnologías de análisis de datos como Hadoop y Storm, en realidad es mucho más amplio que esto y se preocupa más por el almacenamiento de datos que por el análisis. Después de todo, si una empresa no puede escalar el almacenamiento de manera efectiva, nunca tendrá un problema de "Big Data" para analizar. Por lo tanto, de los $30 mil millones del mercado global de bases de datos, solo el 25% se dedica al análisis, y el resto son bases de datos OLTP o operativas. Irónicamente, el reciente surgimiento de innovaciones en análisis de datos como Hadoop se debe al fracaso de los RDBMS para manejar las tres V del Big Data según Gartner: alto volumen, alta velocidad y alta variedad de datos.
Migrando de RDBMS a NoSQL
Está claro que la base de datos es fundamental para administrar con éxito la explosión de datos. Lo que no está tan claro es cómo hacer la transición de los antiguos RDBMS a las modernas bases de datos NoSQL. Migrar con éxito de un mundo relacional a un mundo NoSQL requiere una planificación cuidadosa.
De hecho, una de las principales críticas contra las bases de datos NoSQL como MongoDB o Neo4j es que son tan fáciles de usar que los desarrolladores terminan lanzándose de lleno sin preocuparse por construir correctamente su modelo de datos, lo que eventualmente genera problemas. Si bien las bases de datos NoSQL brindan una mayor agilidad y flexibilidad para los desarrolladores, no deben usarse de manera indiscriminada.
Esto es especialmente cierto para aquellos que vienen de un entorno de RDBMS, ya que NoSQL difiere significativamente de lo relacional. En el mundo de RDBMS, un ingeniero diseña el esquema de datos desde el principio y luego se ejecutan consultas SQL contra la base de datos. Si los cambios empresariales o de las aplicaciones requieren cambios en la base de datos, debe intervenir un administrador de bases de datos. No es un proceso fácil, ya que el administrador de bases de datos debe navegar por complejas uniones (es decir, relaciones entre tablas). Las bases de datos NoSQL se adaptan mejor al desarrollo de aplicaciones modernas y ofrecen beneficios significativos en rendimiento de bases de datos y agilidad para los desarrolladores, aunque esto se hace a expensas de algunas funciones.
Capacitación
Las bases de datos NoSQL son lo suficientemente nuevas como para que muchos ingenieros de bases de datos sean expertos en RDBMS pero no en NoSQL. Esto no debería desalentar a los desarrolladores que desean utilizar NoSQL en un nuevo proyecto. Después de todo, la mayoría de las bases de datos NoSQL son de código abierto y cuentan con comunidades integradas dispuestas a ayudar a los nuevos usuarios a ponerse al día.
Parte de este cambio tiene que ver con la nomenclatura. Por ejemplo, como señala el experto en bases de datos relacionales Chris Bird, la sintaxis en el mundo de NoSQL difiere mucho de SQL y puede requerir ciertas acrobacias mentales para los nuevos usuarios.
Fase de análisis: Entendiendo lo que el cliente quiereSegún Daniel Doubrovkine, director de ingeniería de Art.sy, tanto las bases de datos NoSQL como las RDBMS imponen una curva de aprendizaje a los nuevos usuarios. Sin embargo, él argumenta que las bases de datos NoSQL como MongoDB son fáciles de comenzar y se vuelven más complejas con el tiempo, lo cual funciona porque la experiencia de los desarrolladores con la base de datos también madura con el tiempo. Con SQL, según Doubrovkine, es difícil desde el principio y solo se vuelve más complejo cuando se escala, si es que la escala necesaria es posible con RDBMS.
Por supuesto, lograr que todo sea "perfecto" desde el principio es difícil sin importar la tecnología de la base de datos que esté utilizando. Como señala Jamie Zawinski, desarrollador de Mozilla y XEmacs:
El proceso de diseño es definitivamente algo continuo; nunca sabes cómo es el diseño hasta que el programa esté terminado.
De hecho, una de las ventajas de NoSQL es la capacidad de iterar en el modelo de datos según lo requiera el negocio.
Esto no significa que los desarrolladores deban actuar a ciegas. Para algunos, consultar los foros y la documentación en línea es suficiente. No importa qué base de datos NoSQL prefiera un desarrollador, hay suficiente documentación en línea para cada una de ellas.
Para otros, la capacitación práctica es preferible. Además de la capacitación estándar en el aula ofrecida por DataStax, Basho y otros proveedores de bases de datos NoSQL de código abierto, también hay capacitación en línea gratuita. Solo como indicación de la gran demanda de capacitación en NoSQL, más de 30,000 personas se inscribieron en el primer curso en línea de 10gen.
Los 12 errores más comunes al trabajar con el objeto Recordset en AccessMigración
Armados con la información sobre cómo desarrollar mejor una aplicación utilizando tecnología NoSQL, el siguiente paso para muchos nuevos usuarios es migrar desde el antiguo mundo relacional que conocen.
Pero el problema más grande es la planificación cuidadosa de esa migración.
Con más de 25 millones de usuarios y 2.5 mil millones de check-ins, Foursquare funciona a una escala seria. Pero no siempre fue así. Aunque Foursquare ahora registra check-ins en Marte, hace unos pocos años solo registraba sus primeros check-ins en la Tierra. A medida que la empresa creció, el equipo de desarrollo de Foursquare tuvo que esforzarse para asegurarse de que su infraestructura de datos pudiera mantenerse al día con la adopción de usuarios.
Originalmente, Foursquare comenzó con MySQL. Cuando Harry Heymann, vicepresidente de ingeniería de Foursquare, se unió en 2009, lo mudó a PostgreSQL porque se adaptaba mejor a las herramientas que estaba utilizando. Todo eso cambió cuando el servicio despegó con los usuarios, como ha indicado Jon Hoffman, líder de ingeniería de infraestructura de almacenamiento de Foursquare. Escalar PostgreSQL implicaba un trabajo significativo, por lo que Heymann comenzó a revisar otras opciones, incluyendo MongoDB, Cassandra, CouchDB y MySQL fragmentado.
Una vez que Foursquare determinó que MongoDB se adaptaba mejor a sus requisitos, la empresa se trasladó a MongoDB lentamente, debido a los cambios de código necesarios y al riesgo potencial de romper cosas en la transición. Durante un tiempo, Foursquare duplicó los datos, almacenándolos en PostgreSQL y MongoDB en dos conjuntos paralelos sincronizados. Para una colección, este proceso llevó varios meses, ya que ya tenía un millón de usuarios y un tráfico significativo. Para colecciones más pequeñas, las migraciones de datos fueron más rápidas.
Sin embargo, hacerlo así dio resultados. Uno de los mayores éxitos iniciales fue trasladar las funciones de búsqueda geográfica de PostgreSQL a MongoDB, lo que permitió que Foursquare manejara la misma carga con menos recursos.
Las mejores herramientas de inteligencia empresarial para tomar decisiones basadas en datosArt.sy, que indexa y hace que sean buscables más de 30,000 obras de arte de más de 3,000 artistas, también hizo la transición de RDBMS a NoSQL, aunque el proceso de transición fue mucho más sencillo que en el caso de Foursquare. Su migración de lo relacional a NoSQL ocurrió mientras la empresa aún estaba en medio de una fase de beta cerrada. Después de un reinicio en frío, la empresa pasó de sus inicios relacionales a NoSQL.
Es importante tener en cuenta que el proceso de migración de datos dependerá de la tecnología NoSQL que una empresa elija. El proceso para mover datos de un RDBMS a una base de datos columnar como Cassandra difiere de las migraciones de datos a almacenes de key-value como Riak o a MongoDB.
En cada caso, el proceso involucra en gran medida los mismos cuatro pasos, como identificaron Kristina Chodorow y Michael Dirolf:
- Familiarícese con su base de datos NoSQL. Descárguela, lea los tutoriales, intente algunos proyectos de prueba.
- Piense en cómo representar su modelo en su almacén de documentos [o clave/valor, columna, gráfico, según corresponda].
- Migre los datos de la base de datos relacional a su base de datos NoSQL, probablemente simplemente escribiendo una serie de consultas SELECT * FROM contra la base de datos y luego cargando los datos en su modelo de documento [o clave/valor, columna, gráfico] NoSQL utilizando el lenguaje que prefiera.
- Modifique su código de aplicación para consultar su base de datos NoSQL mediante sentencias como insert() o find().
Este proceso se verá diferente según el estilo de base de datos NoSQL, pero es una guía aproximada útil.
Conclusiones
Las aplicaciones de Foursquare y Art.sy pueden ser algo únicas, pero su necesidad de adoptar una infraestructura de datos flexible y escalable no lo es. Las empresas inteligentes diseñan para escalar desde el principio, lo que generalmente significa recurrir a NoSQL. Para aquellos que comienzan con una base de datos relacional, no todo está perdido: el proceso de migración de RDBMS a NoSQL está bien establecido, con una gran cantidad de información disponible en línea y fuera de línea para ayudar con el proceso.
Cómo agregar una barra de desplazamiento a un gráfico en ExcelEn Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Big Data, allí encontraras muchos artículos similares a Migración de RDBMS a NoSQL: Cómo prepararse para el cambio en la gestión de datos , tenemos lo ultimo en tecnología 2023.
Artículos Relacionados