Dynamo aceleró la revolución NoSQL que está impulsando el sector de las bases de datos.

Recientemente, Amazon anunciado PartiQL - Lenguaje de consulta compatible con SQL para su base de datos NoSQL insignia Amazon DynamoDB. Esto ha cerrado el círculo de la "re:evolución" NoSQL. Es maravilloso ver la investigación colaborativa de UCSD y Couchbase permitir que la industria avance.

NoSQL ha tenido una buena racha. MapReduce lo desencadenó en 2004. Dinamo  y BigTable  lo aceleró en 2007. NoSQL significaba no soportar SQL, no soportar transacciones multi-documento, no gestionar esquemas, no usar lenguajes procedimentales, y muchos más Noes. Sin embargo, NoSQL no era un rebelde sin causa. Prometía fiabilidad, escalabilidad y flexibilidad. Alguien bromeó: "¡Si no estás preparado para escalar, no estás preparado para triunfar!". Para diversión de la gente de SQL, MongoDB afirmó que es escala web. A pesar de la reservas y oposición de la comunidad de bases de datos, el movimiento NoSQL siguió adelante. Muchos se preguntaban si es útil para Amazon, Google y Facebook, ¿para quién más lo sería?

Aquí estamos. Con más de 200 NoSQL bases de datos.

Los sistemas NoSQL no se han quedado en simples almacenes de valores clave con operaciones get/set, map/reduce. MongoDB añadió una agregación marco, un moderno motor de almacenamientoy dejó caer ÁCIDO. DynamoDB añadido transacciones, índicesy ahora un lenguaje similar a SQL. Cassandra comenzó con CQLCouchbase, un lenguaje similar a SQL, ha hecho cambios significativos con la versión 3.0, y ha ido añadiendo nuevos tipos de datos, DDLs y DMLs. Couchbase comenzó con APIs sencillas, añadió vistas. En 2015, Couchbase introdujo N1QL - SQL para JSON, secundario global índices, y más tarde añadió el servicio analítico con soporte N1QL, y distribuido transacciones.

Si estás leyendo El dilema del innovadordebería recordarle la Toyota y el mini molinos historias. Los incumbentes dejaron la gama baja del mercado en manos de Toyota Corona y minifábricas, lo que les liberó para centrarse en mercados con mayores márgenes. En el sector de las bases de datos, los incumbentes veían a NoSQL con la misma burla o afirmaban que tenían bases de datos sin SQL ¡hace mucho tiempo! Aun así, los operadores tradicionales han hecho algunos intentos poco entusiastas de entrar en el mercado. Oracle incluso invirtió en NoSQL comprando Software Sleepycatfabricante de la base de datos BerkeleyDB NoSQL. IBM ha añadido compatibilidad con JSON y MongoDB a Informix y DB2. Esto equivale a que GM lance el Geo Metro - lancemos un modelo básico en el extremo inferior del mercado y acabemos de una vez. Microsoft probablemente hizo el mejor intento construyendo CosmosDB (antes DocumentDB) desde cero.

NoSQL no es simplemente la ausencia de SQL. Al igual que Toyota y los mini-molinos, NoSQL tiene los puntos fuertes. El punto fuerte de Toyota era el bastidor de un solo molde, que les permitía producir el coche en Japón, enviarlo a 10.000 kilómetros y seguir siendo asequible para el segmento más bajo de los compradores de coches. El bastidor de molde único también les proporcionó la base para iterar e innovar para mejorar el coche. Las minifábricas siguieron subiendo de nivel para producir acero de mejor calidad y las acerías integradas solían responder huyendo del mercado y evitando la competencia. Un buen día, GM se declaró en quiebra y las acerías integradas quebraron.

Entonces, ¿cuál es el núcleo diferenciador de NoSQL? Base de datos distribuida desde el núcleo. Los sistemas RDBMS tradicionales se construyeron para ejecutarse en una sola máquina y se ampliaron para situaciones de espera en caliente y luego se extendieron a escala. Los sistemas NoSQL están diseñados para funcionar en un clúster de máquinas desde el principio. Los fallos de hardware y software se esperan y se gestionan a nivel sistémico. De hecho, COUCH en COUCHBASE significa Cluster Of Unreliable Commodity Hardware. El núcleo de NoSQL comienza con una base de datos distribuida que proporciona fiabilidad y escalabilidad. Claro, ha habido sistemas de bases de datos distribuidas durante 40 años. Se centraban en el almacenamiento, no en OLTP.

NoSQL empezó con las míseras API get()/set(): lo justo para cubrir los casos de uso básicos con carritos de la compra, almacenes de sesiones y gestores de perfiles. No había forma de que su funcionalidad pudiera igualar la sofisticación de SQL. Las burlas a NoSQL por parte de los proveedores de bases de datos tradicionales son evocador de la respuesta de GM y las acerías integradas. Los "sumos sacerdotes" de Oracle e IBM estaban encantados de sembrar este mercado de gama baja a un puñado de "ignorantes".

Desde entonces, las bases de datos NoSQL han añadido índices, SQL con uniones, agregados, funciones de ventana, búsqueda y transacciones. DE ACUERDO. Esto es sólo Couchbase. Pero, otras tienen algunos de estos. En Couchbase, trabajamos con clientes que migran de Oracle, Db2, Informix, SQL Server y Sybase. Estas son grandes bases de datos, pero su núcleo es diferente. Construidas para uno, ampliadas para unos pocos. Los sistemas NoSQL se construyen para la escala masiva y la fiabilidad. Incluso cuando se añaden las capacidades de índice, consulta y búsqueda de nivel superior, este núcleo todavía tiene que funcionar a escala y ser fiable. Con todas estas capacidades, NoSQL se ha convertido en el pilar de las empresas. Cargas de trabajo de misión crítica y miles de clusters ejecutan rutinariamente CouchbaseMongoDBElásticoy otros sistemas NoSQL. Los sistemas NoSQL han hecho que la base de datos moderna esté lista y sea asequible para las empresas modernas.

El propio SQL se ha irrazonablemente eficaz. Muchos Los sistemas NoSQL se han ampliado para soportar muchos aspectos de SQL. La competencia entre los sistemas NoSQL para proporcionar un mejor SQL -lo que significa mejor sintaxis, funcionalidad, rendimiento, optimizador y escala- es feroz. A medida que estos sistemas crecen para crear una base de datos aún mejor, demos la bienvenida a Amazon DynamoDB y digamos: NoSQL ha muerto, larga vida a NoSQL.

Referencias

  1. https://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf
  2. https://dzone.com/articles/keep-calm-and-query-json
  3. https://dzone.com/articles/keep-calm-and-json
  4. https://cassandra.apache.org/doc/latest/architecture/overview.html
  5. https://hostingdata.co.uk/nosql-database/
  6. http://www.vldb.org/pvldb/vol2/vldb09-938.pdf
  7. https://www.singlestore.com/blog/why-nosql-databases-wrong-tool-for-modern-application/
  8. https://www.couchbase.com/blog/unreasonable-effectiveness-of-sql/
  9. https://www.couchbase.com/blog/the-unreasonable-effectiveness-of-sql-in-nosql-databases/

Autor

Publicado por Keshav Murthy

Keshav Murthy es Vicepresidente de Couchbase R&D. Anteriormente, estuvo en MapR, IBM, Informix, Sybase, con más de 20 años de experiencia en diseño y desarrollo de bases de datos. Dirigió el equipo de I+D de SQL y NoSQL en IBM Informix. Ha recibido dos premios President's Club en Couchbase y dos premios Outstanding Technical Achievement en IBM. Keshav es licenciado en Informática e Ingeniería por la Universidad de Mysore (India), es titular de diez patentes estadounidenses y tiene tres pendientes.

Dejar una respuesta