Las bases de datos sin esquema son el último grito en el mundo de la informática. A los programadores les encanta su flexibilidad y bajo coste, atributos que han animado a muchas empresas de nueva creación. Como provengo de un entorno de bases de datos eminentemente relacionales, el valor que las bases de datos sin esquema aportan a una empresa me ha abierto los ojos. Es hora de sacar las bases de datos sin esquema del patio trasero de los desarrolladores y llevarlas a la empresa en general.
Este blog examina por qué es tan importante en el mundo actual, centrado en los datos. Si hay algo que las empresas matarían por hacer hoy en día, es comprender y obtener rápidamente información procesable a partir de sus datos. Y siguen invirtiendo millones de dólares para hacerlo con eficacia. Los macrodatos son una parte importante de esta ecuación. Gartner ha inmortalizado las tres V de los macrodatos. Volumen, variedad y velocidad. Y si hay un ámbito en el que los sistemas de bases de datos tradicionales tienen dificultades es el de la velocidad a la que llegan los datos. Casi todas las herramientas informáticas imponen algún tipo de modelo o formato de datos, lo que dificulta su rápida lectura o creación de instancias.
Aquí es donde las bases de datos sin esquema aportan un valor añadido enorme.
¿Qué es una base de datos sin esquema?
Definamos primero el significado del término: base de datos sin esquema:
- No requiere ajustarse a un esquema rígido (base de datos, esquema, tipos de datos, tablas, etc.) que se deba utilizar a lo largo de la vida de un sistema.
- No impone limitaciones de tipo de datos a los valores individuales pertenecientes a un único tipo de columna.
- Modela el uso empresarial y no un esquema de base de datos, una aplicación o un producto.
- Puede almacenar datos estructurados y no estructurados
- Elimina la necesidad de introducir capas adicionales (capa ORM) para abstraer el modelo relacional y exponerlo en un formato orientado a objetos.
En pocas palabras, bases de datos sin esquema, fundamentalmente:
- No requieren ninguna modelización (forma de normalización 3NF) que ha hecho la carrera de muchos diseñadores de arquitecturas de bases de datos sin esquema, incluido un servidor.
- No es necesario preconfigurar los tipos de datos en el repositorio, lo que reduce en gran medida el tiempo necesario para crear un repositorio de datos.
- Puede almacenar datos con características diferentes y tolerar cambios en esa definición sin tener que planificar con antelación interrupciones y cambios complejos, y elimina las migraciones complejas de esquemas.
- Puede transformarse fácilmente, por ejemplo, un número de cuenta podría empezar siendo todo caracteres o podría ser números o una combinación de ambos. El único límite es la definición y la imaginación del usuario.
Las bases de datos sin esquema almacenan los datos como pares Clave/Valor (también conocidos como KV) o como documentos JSON.. En función de los casos de uso, los usuarios tienen la opción de almacenar los datos como pares KV o como documentos JSON. Los documentos JSON suelen ser muy ricos en la forma de representar los datos y permiten a los usuarios modelar muy de cerca el modelo entidad-relación con el que todos estamos muy familiarizados y que nos ha resultado muy útil. Por ejemplo Una entidad Cuenta puede modelarse en un documento JSON con todos los atributos necesarios y valores anidados que acompañan a un objeto Cuenta típico: las múltiples direcciones, correos electrónicos, alias, etc. Los documentos JSON también ofrecen la ventaja añadida de poder indexar valores individuales, lo que hace que el acceso sea mucho más eficaz y permite unir datos de diferentes documentos.
Este blog no se centra en las complejidades de un documento JSON, pero sólo para proporcionar una introducción rápida de un documento JSON en un mundo de base de datos sin esquema es muy similar a una fila en una base de datos relacional con la capacidad de, por ejemplo, una fila de la cuenta a ser completamente diferente de otra fila de la cuenta que es exactamente como los datos de negocios de la vida real se parece.
Ventajas de las bases de datos sin esquema
¿Qué significa todo esto para una empresa que ha estado invirtiendo varios millones de dólares en complejas soluciones propietarias de hardware y software de bases de datos para frenar las 3V? Examinemos primero la cantidad de tiempo que las empresas dedican a las actividades mencionadas. En mi opinión, las actividades que más tiempo y dinero consumen son:
Diseño o normalización de bases de datos
Diseñar el esquema, lo que se conoce como normalización de datos, para convertirlos en un formato relacional requiere varias semanas, si no meses, y recursos muy cualificados. En el mundo relacional, cada dato pertenece a una tabla, base de datos o esquema y permanece allí en su mayor parte durante toda la vida del producto. Cualquier cambio requerirá que las aplicaciones y los usuarios creen copias de estos datos, lo que podría causar anomalías y va en contra de los principios de la normalización.
Las bases de datos sin esquema eliminan esta actividad en gran medida y reduce enormemente la complejidad de esta actividad. La única decisión que un usuario tiene que predeterminar es qué atributos de una entidad quiere mantener colocados.
ETL/ELT de necesarios para reformatear y almacenar datos estructurados/no estructurados
Extraer datos de las fuentes y aterrizarlos (lo que comúnmente se denomina ETL o ELT) a una zona de almacenamiento en bases de datos requiere que la fuente y el destino comprendan la estructura de los datos en un mundo relacional. El usuario necesita conocer la disposición de la base de datos/tabla/columna/campo. Existen limitaciones e implicaciones de rendimiento a la hora de extraer los datos. A menos que la cantidad de datos sea muy pequeña, realmente no hay forma de extraer y cargar estos datos en el sistema de base de datos sin algún tipo de flujo por lotes. Y esto suele traducirse en muchas horas o procesos nocturnos y unos cuantos miles de líneas de código o costosas herramientas ETL. Hay muy poca tolerancia al error en este proceso back to back y cualquier error suele traducirse en no disponer de datos precisos a tiempo. Para una empresa que depende de los datos para sobrevivir, esto supone un enorme contratiempo, y cualquier empresa que no dependa de sus datos y pueda tolerar la latencia probablemente no se preocupe por la competencia. Intentar cumplir con la latencia requiere un enorme gasto de capital y operativo para adquirir equipos de última generación. Y este gasto es continuo y crece cada año.
Las bases de datos sin esquema no necesitan largos procesos de transformación y depuración porque el modelo es flexible y el usuario no está encasillado en un esquema estricto.
Gestión continua del cambio
Incluidos los cambios de esquema que podrían provocar cambios masivos de código en los sistemas (capa de aplicación, capa ORM) que leen y escriben datos en y desde la base de datos. Una vez que se llega a un esquema, cambiarlo requiere interrupciones planificadas para desconectar los objetos afectados y completar y probar los cambios en la capa de aplicación para aprovechar los cambios. Los errores de despliegue manual podrían causar impactos de varios días o meses. En un mundo donde el cambio es la única constante, este modelo parece un poco anticuado. Las bases de datos sin esquema modelan el negocio en lugar de un modelo de datos. La definición y los atributos de un dato cambian constantemente, así que ¿por qué vivir con una base de datos que te obliga a ajustarte a la misma definición?
Las bases de datos sin esquema eliminan las complejas actividades de migración y la sincronización de cambios gracias a su modelo flexible de almacenamiento de datos.
Análisis en tiempo real de datos en flujo
La necesidad de poder extraer valor de los datos es de vital importancia en el mundo actual, impulsado por los datos, en el que las empresas generan petabytes de datos de distintas fuentes, algunos de gran valor y otros no. Tener que esperar a que los datos estén completamente depurados y cargados en el sistema para comprender su valor supone un aumento de los costes de almacenamiento, depuración y transformación de los datos. Una base de datos sin esquema permite aterrizar, analizar y dimensionar el valor de los datos muy rápidamente. Si los datos no tienen ningún valor, hay que actuar con rapidez y eliminar los datos sin valor para reducir los costes de almacenamiento y procesamiento.
Algunos casos de uso, como la detección de fraudes o el marketing "justo a tiempo", exigen analizar los datos y proporcionar información en tiempo real. Las necesidades son muy tácticas. Es necesario combinar los nuevos datos con los ya existentes para obtener información. Todo esto se traduce en mucho dinero y en una enorme ventaja competitiva. Hoy en día, no son sólo los ingenieros expertos en tecnología los que acceden a los datos y los analizan: muchos de los usuarios de estos datos no son muy técnicos.
Una base de datos sin esquema permite definir la vista de los datos en lugar de crear un esquema. que tenga que luchar para extraer valor. Esto permite a su personal no técnico dependiente de TI extraer información de forma rápida y sencilla y hacer aquello para lo que han sido contratados, en lugar de entender complejos modelos de datos y pasar horas creando su universo de datos. De nuevo, esto se traduce en un enorme ahorro de costes.
Escalabilidad a petición para hacer frente a volúmenes, velocidad y variedad de datos extremos
Los días en que las empresas tenían la comodidad de planificar con antelación cualquier anomalía en los volúmenes, la velocidad y la variedad de los datos han quedado tristemente atrás. Si no escalas, sencillamente fracasas: por crudo que suene, esto es realmente cierto, ya que cuesta millones de dólares en beneficios y oportunidades perdidas.
Las bases de datos sin esquema no requieren una infraestructura compleja o patentada. que requieren enormes gastos de capital y operativos para su ampliación. Una pequeña instancia puede ampliarse muy fácilmente con sólo pulsar un botón. Aunque algunas bases de datos tradicionales ofrecen esta característica, la rigidez del esquema impone límites. La escalabilidad no es sólo la capacidad de fragmentar los datos, sino también la de adaptarse rápidamente a los cambios de esquema. Y todo esto puede desplegarse en hardware barato.
Resumen
Como se describe en este artículo, está claro que las bases de datos sin esquema ("schema-less") desempeñan un papel muy importante en el mundo actual, centrado en los datos. Está claro que, de una forma u otra, están aquí para quedarse. ¿Significa esto que el mundo va a dejar de utilizar bases de datos tradicionales, de ETL/ELT de sus datos y de soluciones propietarias? Aunque sólo el tiempo responderá a esa pregunta, Wisdom me dice que las fuentes de datos tradicionales no pueden seguir ignorando las ventajas que aportan las bases de datos sin esquema. Es sólo cuestión de tiempo que adopten algunas de estas características de las bases de datos sin esquema, lo que podría suponer una ganancia para los exigentes clientes actuales.
_____________________________________________________________________________________
Este artículo ha sido escrito por Sandhya Krishnamurthy, Ingeniera Superior de Soluciones de Couchbaseproveedor líder de bases de datos sin esquema.
Póngase en contacto con el autor en sandhya.krishnamurthy@couchbase.com
- Contacte con nosotros en Foros
- Síguenos en @couchbasedev y @couchbase
Más información sobre Couchbase productospara descargas gratuitas de productos y formación gratuita sobre NoSQL.