Red de conocimiento informático - Material del sitio web - La mejor opción para aplicaciones de big data: SQL o NoSQL

La mejor opción para aplicaciones de big data: SQL o NoSQL

Una de las decisiones clave que enfrentan las empresas que ejecutan proyectos de big data[nota] es qué base de datos utilizar, ¿SQL o NoSQL? Veamos qué tienen que decir dos expertos sobre el tema.

Experto

- Ryan Betts, director de tecnología de VoltDB, dijo que SQL ya está ampliamente implementado en grandes empresas y que big data es otra área que puede respaldar.

Bob Wiederhold, director ejecutivo de Couchbase Inc., dijo que NoSQL es una opción viable y, en muchos sentidos, la mejor opción para big data, especialmente cuando se trata de escalabilidad.

SQL ha resistido la prueba del tiempo y sigue prosperando

Ryan Betts, director de tecnología de VoltDB

El lenguaje de consulta estructurado (SQL) es una tecnología A de larga data Un ganador demostrado que ha dominado durante décadas, las empresas y organizaciones de big data como Google, Facebook, Cloudera y Apache ahora están invirtiendo activamente en SQL. Las ventajas únicas de SQL incluyen:

1.SQL mejora la interacción con los datos y permite formular preguntas sobre diseños de bases de datos individuales. Esta es una capacidad crítica porque los datos con los que no se puede interactuar son esencialmente inútiles, y una interactividad mejorada puede generar nuevos conocimientos, nuevas preguntas e interacciones futuras más significativas.

2.SQL está estandarizado, lo que permite a los usuarios aplicar sus conocimientos en todos los sistemas y admite complementos y herramientas de terceros.

3.SQL es escalable, versátil y ha demostrado resolver problemas que van desde transferencias rápidas basadas en escritura hasta análisis profundos con escaneo intensivo.

4.SQL utiliza formas ortogonales para la presentación y el almacenamiento de datos, y algunos sistemas SQL también admiten JSON y otros formatos de objetos estructurados, lo que proporciona un mejor rendimiento y más funcionalidad que NoSQL.

Si bien la aparición de NoSQL ha tenido cierto impacto, SQL todavía domina el mercado y ha obtenido una inversión significativa y una implementación generalizada en el espacio de big data.

NoSQL es un concepto vago. En esta discusión, tomé prestada la definición de NoSQL de Rick Cattell, que es un sistema que proporciona operaciones simples (por ejemplo, almacenamiento de claves/valores) o registros e índices simples. sobre la escalabilidad horizontal de estas operaciones simples.

Obviamente, no todas las nuevas bases de datos disponibles actualmente son iguales, y comprender los principios detrás de cada base de datos, así como los problemas potenciales, es clave para el éxito. Por ejemplo, las bases de datos de gráficos son más adecuadas cuando los datos se organizan mediante relaciones, mientras que los sistemas de búsqueda de texto especializados son más adecuados cuando se requiere una búsqueda en tiempo real.

A continuación, echemos un vistazo a las principales ventajas y características distintivas de los sistemas SQL:

* SQL admite la interactividad. SQL es un lenguaje de consulta declarativo. El usuario dice lo que quiere (por ejemplo, mostrar la geolocalización de los principales clientes en marzo durante los últimos cinco años) y la base de datos compila internamente el algoritmo y extrae los resultados solicitados. Por el contrario, la innovación en programación NoSQL MapReduce es una tecnología de consulta programática. Cuando un usuario realiza una solicitud, MapReduce requiere que el usuario diga no solo lo que quiere, sino también cómo generará la respuesta.

Esto puede parecer una diferencia técnica aburrida, pero es crucial por varias razones: en primer lugar, las consultas SQL declarativas son más fáciles de crear utilizando herramientas gráficas y generadores de informes de apuntar y hacer clic. Esto permite a los analistas, operadores, administradores y otros empleados sin conocimientos de programación de software realizar consultas a la base de datos; en segundo lugar, el motor de la base de datos puede utilizar información interna para seleccionar el algoritmo más eficiente; Al cambiar la base de datos o el diseño físico de la base de datos, aún es posible calcular el algoritmo óptimo.

Por el contrario, en los sistemas programáticos, los programadores necesitan revisar y reprogramar algoritmos, un proceso muy costoso y propenso a errores.

El mercado entiende esta distinción crítica. En 2010, Google anunció la implementación de SQL para complementar MapReduce, impulsado principalmente por la demanda interna de los usuarios. Recientemente, Facebook lanzó Presto (implementación SQL) para consultar sus clústeres HDFS a escala de petabytes. Según Facebook, "a medida que nuestro repositorio creció hasta alcanzar los petabytes, nuestras necesidades cambiaron y quedó claro que necesitábamos un sistema interactivo que pudiera proporcionar consultas de baja latencia". Además, Cloudera está creando otra implementación SQL basada en HDFS, Impala.

*SQL está estandarizado. Aunque los proveedores a veces añaden su propio lenguaje a la interfaz SQL, el núcleo de SQL está estandarizado y existen otras especificaciones (como ODBC y JDBC) que proporcionan interfaces estables y ampliamente disponibles para los almacenes SQL. Esto brinda un ecosistema de herramientas operativas y de administración para diseñar, monitorear, inspeccionar, explorar y crear aplicaciones sobre sistemas SQL.

Los usuarios y programadores de SQL pueden reutilizar sus conocimientos de API y UI en múltiples sistemas back-end, lo que reduce el tiempo de desarrollo de aplicaciones. La estandarización también permite herramientas declarativas de extracción, transformación y carga (ETL) de terceros que permiten a las empresas transferir datos entre bases de datos y sistemas.

*SQL es escalable. La idea de que SQL debe sacrificar la escalabilidad es simplemente errónea. Como se mencionó anteriormente, Facebook creó una interfaz SQL para consultar petabytes de datos. SQL es muy eficiente para ejecutar transferencias ACID extremadamente rápidas. Las abstracciones que SQL proporciona para el almacenamiento y la indexación de datos permiten un uso consistente en una variedad de problemas y tamaños de conjuntos de datos, lo que permite que SQL se ejecute de manera eficiente en almacenes de datos replicados en clústeres. Al utilizar SQL como una interfaz independiente de la creación de sistemas de nube, escalamiento o HA, no hay nada en SQL que bloquee y limite la tolerancia a fallas, la alta disponibilidad y la replicación. Prácticamente todos los sistemas SQL modernos admiten escalabilidad horizontal, replicación y tolerancia a fallas compatibles con la nube.

*SQL admite JSON. Hace varios años, muchos sistemas SQL agregaron soporte para documentos XML. Ahora, a medida que JSON se convierte en un formato de intercambio de datos popular, los proveedores de SQL están agregando soporte para el tipo JSON. Con los procesos de programación flexibles actuales y los mayores requisitos de tiempo de actividad de la infraestructura de red, existe una necesidad cada vez mayor de soporte para tipos de datos estructurados. Oracle 12c, PostgreSQL 9.2, VoltDB y otras bases de datos compatibles con JSON generalmente funcionan mejor que JSON "nativo".

SQL Server 12c

SQL seguirá ganando cuota de mercado y seguirá recibiendo nuevas inversiones e implementaciones. Las bases de datos NoSQL ofrecen lenguajes de consulta propietarios o semántica de valores clave simples sin diferencias técnicas más profundas.

Las bases de datos NoSQL ofrecen lenguajes de consulta propietarios o semántica clave-valor simple, sin diferencias técnicas más profundas. Los sistemas SQL modernos ofrecen escalabilidad y al mismo tiempo admiten una semántica de consultas más rica, con una gran base de instalación de usuarios, una amplia integración del ecosistema e implementaciones empresariales profundas.

NoSQL es más adecuado para aplicaciones de big data

Bob Wiederhold, CEO de Couchbase

NoSQL se considera cada vez más una alternativa viable a las bases de datos relacionales, especialmente para grandes aplicaciones de datos. Además, los modelos de datos sin esquema suelen ser más adecuados para los tipos y tipos de datos que se capturan y procesan actualmente.

Cuando hablamos de big data en el mundo NoSQL, nos referimos a leer y escribir datos en bases de datos operativas. No confunda las bases de datos operativas con las bases de datos analíticas, que normalmente analizan grandes cantidades de datos y obtienen visibilidad a partir de esos datos.

Si bien los big data de bases de datos operativas pueden parecer imposibles de analizar, las bases de datos operativas suelen almacenar grandes conjuntos de datos de una gran cantidad de usuarios, que a menudo necesitan acceder a los datos para realizar transacciones en tiempo real. Esta escala de operaciones de bases de datos también ilustra las propiedades clave de NoSQL, razón por la cual NoSQL es clave para las aplicaciones de big data.

NoSQL es la clave para la escalabilidad

Cada vez que la industria tecnológica experimenta un cambio fundamental en el desarrollo de hardware, hay un punto de inflexión. En el mundo de las bases de datos, NoSQL está impulsado por el cambio de escalamiento horizontal a crecimiento horizontal. Las bases de datos relacionales (incluidas las de Oracle e IBM) escalan verticalmente. Es decir, son centralizados, escalables y sólo pueden escalarse añadiendo hardware más caro.

La base de datos NoSQL es una tecnología de expansión horizontal distribuida. Utilizan conjuntos distribuidos de nodos, llamados clústeres, para proporcionar una escalabilidad altamente flexible, lo que permite a los usuarios agregar nodos para manejar dinámicamente la carga.

El escalado horizontal distribuido es generalmente más barato que los enfoques verticales. Las licencias de bases de datos relacionales comerciales también son muy costosas porque su precio es por servidor. Las bases de datos NoSQL, por otro lado, a menudo utilizan tecnología de código abierto y son relativamente económicas, ya que cobran por grupo de servidores en los que se ejecutan.

NoSQL es la clave de la flexibilidad

Las bases de datos relacionales y los modelos de datos NoSQL son completamente diferentes. El modelo relacional distribuye datos en muchas tablas interrelacionadas, que están relacionadas entre sí mediante claves externas.

Cuando un usuario necesita ejecutar una consulta en un conjunto de datos, la información requerida debe recopilarse de varias tablas (a menudo en cientos de aplicaciones empresariales) y luego combinarse y proporcionarse a la aplicación. Del mismo modo, al escribir datos, las escrituras deben coordinarse y realizarse en varias tablas. Las bases de datos relacionales a menudo pueden capturar y almacenar información cuando hay relativamente pocos datos y los datos fluyen hacia la base de datos lentamente. Sin embargo, las aplicaciones actuales a menudo requieren escribir (y leer) grandes cantidades de datos rápidamente.

Las bases de datos NoSQL utilizan un modelo completamente diferente. En esencia, las bases de datos NoSQL son en realidad "NoREL", o bases de datos no relacionales, lo que significa que no dependen de tablas ni enlaces entre tablas para almacenar y organizar información. Por ejemplo, las bases de datos NoSQL orientadas a documentos utilizan el formato JSON para consolidar los datos que desea almacenar en documentos. Su aplicación puede tratar cada documento JSON como un objeto. Un documento JSON puede extraer datos que abarcan 25 tablas y consolidarlos en un solo documento.

Agregar esta información puede dar como resultado la duplicación de información, pero dado que el almacenamiento ya no es un problema de costos, la flexibilidad del modelo de datos, la facilidad de publicar los documentos generados y el rendimiento mejorado de lectura y escritura hacen que No es una mala elección.

NoSQL es la clave para las aplicaciones de big data

Cada vez es más fácil obtener y acceder a datos a través de terceros, incluidos sitios de redes sociales. Estos datos incluyen: información personal del usuario, datos de geolocalización, contenido generado por el usuario, datos de registro de la máquina y datos generados por sensores. Las empresas también pueden confiar en big data para impulsar sus aplicaciones de misión crítica. Al mismo tiempo, las empresas están recurriendo a las bases de datos NoSQL porque son adecuadas para los nuevos tipos de datos disponibles actualmente.

Los desarrolladores quieren bases de datos que sean flexibles y puedan adaptarse fácilmente a nuevos tipos de datos sin verse afectados por cambios en la estructura del contenido de proveedores de datos de terceros. La mayoría de los datos nuevos no están estructurados y son semiestructurados, por lo que los desarrolladores también necesitan bases de datos que puedan almacenar estos datos de manera eficiente.

Sin embargo, el enfoque basado en esquemas estrictamente definido utilizado por las bases de datos relacionales no puede integrar rápidamente nuevos tipos de datos y no es adecuado para datos no estructurados y semiestructurados.

En general, con el aumento de las aplicaciones web y móviles, la aparición de nuevas tendencias, los cambios en el comportamiento de los consumidores en línea y la aparición de nuevos tipos de datos, la industria necesita poder proporcionar bases de datos escalables y flexibles. Tecnología para gestionar y acceder a los datos.