Skip to main content

Visión general de las bases de datos NoSQL

How to Play: SU-130PM (Abril 2025)

How to Play: SU-130PM (Abril 2025)
Anonim

El acrónimo NoSQL se acuñó en 1998. Muchas personas piensan que NoSQL es un término peyorativo creado para empujar a SQL. En realidad, el término significa No sólo SQL. La idea es que ambas tecnologías puedan coexistir y cada una tenga su lugar. El movimiento NoSQL ha estado en las noticias en los últimos años ya que muchos de los líderes de la Web 2.0 han adoptado una tecnología NoSQL. Compañías como Facebook, Twitter, Digg, Amazon, LinkedIn y Google usan NoSQL de una forma u otra. Analicemos NoSQL para que pueda explicárselo a su CIO o incluso a sus compañeros de trabajo.

NoSQL surgió de una necesidad

Almacenamiento de datos: Los datos digitales almacenados en el mundo se miden en exabytes. Un exabyte es igual a mil millones de gigabytes (GB) de datos. Según Internet.com, la cantidad de datos almacenados agregados en 2006 fue de 161 exabytes. Solo 4 años después, en 2010, la cantidad de datos almacenados será de casi 1,000 ExaBytes, lo que representa un aumento de más del 500%. En otras palabras, hay una gran cantidad de datos que se almacenan en el mundo y simplemente va a seguir creciendo.

Datos interconectados: Los datos siguen estando más conectados. La creación de la web fomentada en hipervínculos, los blogs tienen pingbacks y cada sistema de red social importante tiene etiquetas que unen las cosas. Los principales sistemas están diseñados para ser interconectados.

Estructura de datos complejos: NoSQL puede manejar estructuras de datos anidadas jerárquicas fácilmente. Para lograr lo mismo en SQL, necesitaría varias tablas relacionales con todo tipo de claves. Además, existe una relación entre el rendimiento y la complejidad de los datos. El rendimiento puede degradarse en un RDBMS tradicional a medida que almacenamos las cantidades masivas de datos requeridos en las aplicaciones de redes sociales y la web semántica.

¿Qué es NoSQL?

Supongo que una forma de definir NoSQL es considerar lo que no es. No es SQL y no es relacional. Como sugiere su nombre, no es un reemplazo para un RDBMS sino que lo complementa. NoSQL está diseñado para almacenes de datos distribuidos para necesidades de datos a gran escala. Piense en Facebook con sus 500,000,000 usuarios o Twitter, que acumula Terabits de datos cada día.

En una base de datos NoSQL, no hay un esquema fijo ni uniones. Un RDBMS se "amplía" al obtener hardware cada vez más rápido y agregar memoria. NoSQL, por otro lado, puede aprovechar la "ampliación". La ampliación de escala se refiere a la distribución de la carga en muchos sistemas de productos básicos. Este es el componente de NoSQL que lo convierte en una solución económica para grandes conjuntos de datos.

Categorías NoSQL

El mundo actual de NoSQL encaja en 4 categorías básicas.

  1. Tiendas de valores-clave se basan principalmente en el Dynamo Paper de Amazon, que se escribió en 2007. La idea principal es la existencia de una tabla hash donde hay una clave única y un puntero a un elemento de datos en particular. Estas asignaciones suelen ir acompañadas de mecanismos de caché para maximizar el rendimiento.
    1. Tiendas Familiares Columna fueron creados para almacenar y procesar grandes cantidades de datos distribuidos en muchas máquinas. Todavía hay claves pero apuntan a múltiples columnas. En el caso de BigTable (modelo de la familia de columnas de Google NoSQL), las filas se identifican mediante una clave de fila con los datos ordenados y almacenados por esta clave. Las columnas están ordenadas por familia de columnas.
  2. Base de datos de documentoss fueron inspirados por Lotus Notes y son similares a las tiendas de valor-clave. El modelo consiste básicamente en documentos versionados que son colecciones de otras colecciones de valor-clave. Los documentos semiestructurados se almacenan en formatos como JSON.
  3. Base de datos gráficas se construyen con nodos, relaciones entre notas y las propiedades de los nodos. En lugar de tablas de filas y columnas y la estructura rígida de SQL, se utiliza un modelo de gráfico flexible que puede escalar a través de muchas máquinas.

Principales jugadores NoSQL

Los principales actores en NoSQL han surgido principalmente debido a las organizaciones que los han adoptado. Algunas de las mayores tecnologías NoSQL incluyen:

  • Dinamo: Dynamo fue creado por Amazon.com y es la base de datos NoSQL de Key-Value más prominente. Amazon necesitaba una plataforma distribuida altamente escalable para sus negocios de comercio electrónico, por lo que desarrollaron Dynamo. Amazon S3 utiliza Dynamo como mecanismo de almacenamiento.
  • Casandra Cassandra fue de código abierto por Facebook y es una base de datos NoSQL orientada a columnas.
  • Mesa grande: BigTable es la base de datos de Google orientada a columnas. Google permite el uso de BigTable pero solo para el motor de aplicaciones de Google.
  • SimpleDB: SimpleDB es otra base de datos de Amazon. Utilizado para Amazon EC2 y S3, forma parte de los servicios web de Amazon que cobran tarifas según el uso.
  • CouchDB: CouchDB junto con MongoDB son bases de datos NoSQL de código abierto orientadas a documentos.
  • Neo4J: Neo4j es una base de datos gráfica de código abierto.

Consultando NoSQL

La pregunta sobre cómo consultar una base de datos NoSQL es en lo que la mayoría de los desarrolladores están interesados. Después de todo, los datos almacenados en una gran base de datos no hacen ningún bien a nadie si no se puede recuperar y mostrar a los usuarios finales o servicios web. Las bases de datos NoSQL no proporcionan un lenguaje de consulta declarativo de alto nivel como SQL. En cambio, la consulta de estas bases de datos es específica del modelo de datos.

Muchas de las plataformas NoSQL permiten interfaces RESTful a los datos. Otras API de consulta de oferta. Se han desarrollado un par de herramientas de consulta que intentan consultar varias bases de datos NoSQL. Estas herramientas normalmente funcionan en una sola categoría NoSQL. Un ejemplo es SPARQL. SPARQL es una especificación de consulta declarativa diseñada para bases de datos de gráficos. Aquí hay un ejemplo de una consulta SPARQL que recupera la URL de un blogger en particular (cortesía de IBM):

PREFIX foaf: ¿SELECCIONAR? UrlDESDE DÓNDE {? contribuyente foaf: nombre "Jon Foobar".? contribuyente foaf: weblog? url.}

Futuro de NoSQL

Las organizaciones que tienen necesidades masivas de almacenamiento de datos están considerando seriamente NoSQL. Aparentemente, el concepto no está recibiendo tanta tracción en organizaciones más pequeñas. En una encuesta realizada por Information Week, el 44% de los profesionales de TI de negocios no han oído hablar de NoSQL. Además, solo el 1% de los encuestados informó que NoSQL es parte de su dirección estratégica. Claramente, NoSQL tiene su lugar en nuestro mundo conectado, pero tendrá que seguir evolucionando para obtener el atractivo masivo que muchos piensan que podría tener.