En 1922, el fabricante de automóviles Henry Ford escribió que sus clientes podían pintar un automóvil del color que quisieran, siempre que fuera negro. Hasta hace poco, los gerentes de TI, los desarrolladores de aplicaciones y los ejecutivos comerciales se enfrentaban a opciones igualmente limitadas en la selección de tecnologías de bases de datos. Las bases de datos relacionales creadas sobre el lenguaje de programación SQL fueron los motores dominantes que impulsaron los sistemas empresariales y de TI corporativos, sin ningún desafío real a la vista.
Pero las cosas han cambiado. A partir de mediados de la década de 2000, Yahoo, Google, Facebook, Amazon.com y eBay deshicieron la supremacía absoluta de SQL. En esos gigantes de Internet y otras empresas, la necesidad de ejecutar aplicaciones web enormemente escalables con requisitos de datos variados y que cambian rápidamente impulsó esfuerzos para encontrar alternativas a las bases de datos relacionales convencionales. Eso marcó el comienzo de un flujo, y en los últimos años un torrente, de nuevas tecnologías que evitaban los rígidos principios de desarrollo de SQL en favor de diseños de datos más flexibles y escalables. Esas bases de datos se distribuyen en varias categorías de productos distintas basadas en diferentes modelos de datos. Pero comparten un término general conciso con un sonido de juego en el suelo: NoSQL.
Sin embargo, la verdad es que el movimiento NoSQL no es realmente una revolución contra la pared que busca erradicar las bases de datos relacionales. Sí, algunos proveedores de NoSQL hablan como si ese fuera su objetivo final. Pero el termino NoSQL se ha suavizado para que también signifique «no solo SQL», en reconocimiento del hecho de que muchas de las bases de datos incorporan algunos elementos de SQL. Más sustancialmente, las tecnologías NoSQL no están posicionadas como reemplazos al por mayor para el software relacional; tienden a construirse para usos específicos, generalmente involucrando grandes conjuntos de datos a los que se debe acceder y actualizar con frecuencia. Y así es como se están desarrollando las cosas en el terreno hasta ahora: las bases de datos NoSQL se han convertido en elementos imprescindibles para las empresas con bóvedas de rápido crecimiento de datos web, de redes sociales, demográficos y de máquinas, pero a menudo comparten cargas de trabajo de procesamiento y análisis de datos. con software basado en SQL.
Por ejemplo, Crittercism Inc. es una startup que ayuda a las organizaciones a monitorear el desempeño de sus aplicaciones móviles, basándose en datos en tiempo real recopilados de más de 800 millones de dispositivos móviles. En el lenguaje de la gestión del rendimiento de las aplicaciones, la interacción del usuario con una aplicación se denomina solicitud; El criticismo extrae información sobre más de 30,000 solicitudes por segundo, una tasa que suma casi 3 mil millones por día. Eso ha creado un grupo de más de 20 terabytes de datos, y el total solo sigue creciendo, dijo Lars Kamp, vicepresidente de desarrollo comercial de la compañía de San Francisco.
En la mezcla se incluyen datos sobre errores de aplicaciones, diagnósticos de fallas y lo que Crittercism llama «rutas de exploración de la red» que documentan el rastro de las llamadas de red y otros eventos de procesamiento que conducen a problemas de la aplicación. Esos datos «son muy desestructurados y no uniformes, y varían mucho de un cliente a otro y de una aplicación a otra», dijo Mike Chesnut, director de ingeniería de operaciones de la empresa.
Encontrando el viejo camino a mitad de camino
La gran cantidad de información involucrada y su naturaleza variable exigían un nuevo enfoque para formatear los datos. El uso de software relacional habría requerido una sobrecarga de procesamiento sustancial para mantener un esquema de base de datos que pudiera acomodar toda la información, además de un tiempo de inactividad frecuente para realizar cambios en el esquema, dijo Chesnut; Añadió que la empresa tenía que poder modificar la forma en que recopila y almacena los datos «sobre la marcha, a menudo varias veces al día». Kamp fue aún más contundente: «El criticismo como empresa no habría sido posible hace 10 años», cuando SQL era la única opción, dijo.
Estamos muy comprometidos con la exploración de todas y cada una de las ofertas de tecnología que pueden ayudarnos a resolver nuestros problemas y brindar un mejor servicio a nuestros clientes.
Mike Chesnut, director de ingeniería de operaciones, Crittercism Inc.
Ingrese a MongoDB, una base de datos NoSQL que se ejecuta en la nube de Amazon Web Services. Al igual que otras tecnologías NoSQL, ofrecía flexibilidad en el diseño de esquemas. Eso hizo posible que Crittercism almacenara los datos de errores y fallas en una sola «colección», el equivalente en MongoDB de una tabla relacional, sin imponer un esquema estricto a la información. A su vez, la falta de una estructura de datos fija con campos uniformes ha permitido que el servicio de gestión del desempeño de la empresa «evolucione orgánicamente» para satisfacer las necesidades de diferentes clientes, dijo Chesnut.
Crittercism también utiliza la base de datos DynamoDB NoSQL de Amazon.com para almacenar datos en una ruta de solicitud específica que requiere un rendimiento particularmente rápido, según Chesnut. Pero también hay SQL en la arquitectura de la base de datos de la empresa. Una base de datos de código abierto de PostgreSQL contiene datos de operaciones altamente relacionales, y toda la información se resume en un almacén de datos de Amazon Redshift basado en SQL para su análisis y generación de informes. Chesnut y sus colegas no son puristas de NoSQL: «Estamos muy comprometidos con la exploración de todas y cada una de las ofertas de tecnología que pueden ayudarnos a resolver nuestros problemas y servir mejor a nuestros clientes», dijo.
Encuestas recientes muestran que las bases de datos NoSQL están logrando avances entre los usuarios de big data, pero en general, la adopción sigue siendo relativamente baja. Por ejemplo, la Encuesta de lectores de análisis y almacenamiento de datos de Krypton Solid de 2013 encontró que el 21% de los 222 encuestados con programas de big data activos o en proceso estaban usando o planeaban implementar sistemas NoSQL como parte de los esfuerzos. Otra encuesta realizada el año pasado por Enterprise Management Associates Inc. y 9sight Consulting produjo un resultado casi idéntico: en ese caso, el 22% de los 259 encuestados dijeron que tenían plataformas NoSQL instaladas. En una tercera encuesta, realizada por The Data Warehousing Institute, el 32% de 189 encuestados dijeron que sus organizaciones estaban usando software NoSQL. Incluso allí, sin embargo, la tecnología NoSQL fue la última en la lista de adopción, detrás de las bases de datos relacionales, los dispositivos de datos, el software en columnas y el compañero de viaje de big data Hadoop (consulte la Figura 1).
Se espera una mayor penetración de los centros de datos en el futuro: el grupo de analistas Wikibon pronosticó el año pasado que los ingresos mundiales por software y servicios NoSQL crecerían de $ 286 millones en 2012 a $ 1.825 mil millones en 2017. Y los capitalistas de riesgo están apostando fuerte por ese tipo de crecimiento. MongoDB Inc., que lidera el desarrollo de su base de datos homónima, recaudó $ 150 millones en nuevos fondos el otoño pasado. Eso se produjo poco después de las rondas de financiación de $ 45 millones y $ 25 millones de DataStax Inc. y Couchbase Inc., otros dos proveedores de NoSQL.
Los jugadores relacionales golpean desde ambos lados
Incluso los grandes proveedores de bases de datos relacionales se han metido en el juego NoSQL. Oracle introdujo una base de datos NoSQL a finales de 2011 y fue uno de los patrocinadores principales de NoSQL Now! conferencia; Los representantes de Oracle dieron un discurso de apertura y dirigieron dos sesiones técnicas en el evento. En junio pasado, IBM agregó soporte para la interfaz de programación de aplicaciones de MongoDB a su base de datos relacional DB2, lo que permite a los usuarios almacenar datos en el formato JavaScript Object Notation (JSON). DB2 también puede manejar gráficos y datos XML, e IBM en marzo adquirió Cloudant Inc., un proveedor NoSQL que ejecuta una versión alojada de la base de datos CouchDB basada en JSON. Microsoft ofrece un almacén de datos NoSQL como parte de su plataforma en la nube Windows Azure.
Las necesidades de datos impulsadas por aplicaciones y el creciente movimiento hacia la computación en la nube están creando una apertura más amplia para los métodos NoSQL, dijo Carl Olofson, analista de bases de datos en la compañía de investigación de mercado IDC. Sin embargo, para los gerentes de TI y los ejecutivos de negocios, comparó la compra de NoSQL con la inversión en una nueva acción que no tiene mucha historia de mercado.
«La mayoría de las bases de datos NoSQL son nuevas. Todavía necesitan ser probadas en batalla», dijo Olofson. «Si está cambiando constantemente las definiciones de datos y no puede cambiar su base de datos relacional lo suficientemente rápido, puede buscar en NoSQL. Pero existe un riesgo».
Por un lado, las tecnologías NoSQL generalmente no brindan capacidades ACID completas (atomicidad, consistencia, aislamiento y durabilidad) para garantizar la integridad de las transacciones, como lo hacen las bases de datos relacionales. Además, a menudo carecen de servicios de clase empresarial en áreas como recuperación ante desastres, seguridad y calidad de datos, según Olofson. Al igual que otros analistas, también espera una reducción de las filas bien pobladas de proveedores de NoSQL a medida que el mercado madura.
«Las bases de datos NoSQL son realmente buenas para manejar datos XML y JSON, que incluyen muchas cosas en las que los desarrolladores de Java están trabajando en estos días», dijo Wayne Eckerson, analista de la industria de Krypton Solid y presidente de la consultora Eckerson Group Inc. En particular, son muy adecuado para aplicaciones web de alto rendimiento «con un alto volumen de lecturas y escrituras», dijo Eckerson. Pero, agregó, no son tan buenos para «consultas de larga duración» y otros trabajos de análisis complejos.
El software NoSQL proporciona un aumento de velocidad
Eso se asigna a la arquitectura de la base de datos en Exelate, un proveedor de tecnología y servicios de datos de marketing que utiliza una amplia gama de herramientas para proporcionar información sobre la demografía y las compras de los hogares a los anunciantes y editores en línea. «Los datos son lo que hacemos», dijo Elad Efraim, cofundador y director de tecnología de la empresa de Nueva York. Eso hace que el rendimiento sea primordial, agregó. Y aunque Exelate no comenzó con la tecnología NoSQL cuando se fundó hace siete años, la necesidad de velocidad finalmente llevó a Efraim y a su equipo a implementar Aerospike, una base de datos NoSQL en memoria que ha ayudado a escalar la infraestructura de la empresa para manejar rápidamente como hasta un billón de transacciones de datos en tiempo real al mes.
Aerospike proporciona un repositorio de alto rendimiento para datos sobre la actividad de la sesión del usuario de los visitantes del sitio web que se actualiza constantemente, dijo Efraim. «Estamos hablando de un sistema a gran escala con una capacidad muy alta de lecturas y escrituras que deben completarse en algunos milisegundos. Es muy importante para nosotros asegurarnos de que podemos acceder a los datos de manera que se puedan realizar disponible [to our customers] para la toma de decisiones «.
La base de datos se ejecuta en servidores en cuatro centros de datos completamente replicados en todo el mundo, indexando todo en la memoria y manteniéndolo en el clúster de servidores para su posterior procesamiento. A partir de ahí, los datos se pueden extraer y correlacionar con otra información en los sistemas de análisis y back-office. Sin embargo, para que eso suceda, las aplicaciones de Exelate no solo usan software NoSQL. Una capa por encima del repositorio de Aerospike es una base de datos relacional MySQL «bastante estándar» que permite a los clientes agregar datos, dijo Efraim. La empresa también utiliza un dispositivo IBM Netezza y una base de datos relacional como almacén de datos para usos analíticos.
Para poner las cosas en los términos de Henry Ford, los usuarios como Exelate y Crittercism ya no tienen que limitarse a bases de datos relacionales básicas en negro, y están aprovechando las nuevas opciones de color de NoSQL para impulsar aplicaciones para las que el software relacional convencional no es adecuado. . Pero SQL black no pasa de moda entre los compradores de TI. Por ahora, es probable que las dos tecnologías compartan espacio en los garajes de bases de datos.
Jack Vaughan es el editor de noticias y sitios de SearchDataManagement. Envíele un correo electrónico a [email protected]y síguenos en Twitter: @sDataManagement.