¡Bases de datos NoSQL que todo científico de datos debería conocer en 2020!

Contenidos

Visión general

  • Las bases de datos NoSQL son omnipresentes en la industria: se espera que un científico de datos esté familiarizado con estas bases de datos
  • Aquí veremos qué es una base de datos NoSQL y por qué debería aprender sobre ella.
  • También veremos las características de 5 bases de datos NoSQL diferentes.

Introducción

Aquí hay un consejo que desearía que alguien me hubiera dado cuando comencé en la ciencia de datos: aprenda todo lo que pueda sobre cómo trabajar con bases de datos.

Aquí hay un vistazo rápido a dónde entrará en juego su conocimiento de la base de datos:

  • Enfrentará preguntas sobre bases de datos en su entrevista de ciencia de datos.
  • Trabajará extensamente con bases de datos en su rol de científico de datos, analista de datos, analista de negocios, etc.
  • Se apoyará en su conocimiento de bases de datos para recopilar y recopilar datos para su proyecto de ciencia de datos.

¡Y mucho más!

La verdad incontrovertible es que estamos generando datos a un ritmo y una escala sin precedentes en este momento. El simple hecho de que se carguen más de 8.500 tweets y 900 fotos en Instagram en solo un segundo me deja boquiabierto. Alucina la mente: ¿cómo se las arreglan las bases de datos de hoy en día con tales volúmenes de datos?

different-nosql-databases-6197427

Para manejar esta gran cantidad de datos, necesitamos un sistema de base de datos distribuido que pueda ejecutar múltiples nodos y que también sea tolerante a las particiones. Significa que incluso si uno de los nodos falla por cualquier motivo, el sistema debería funcionar sin problemas. Así que la tolerancia a la partición es algo imprescindible. Ahora, de acuerdo con el teorema de CAP, no podemos tener tolerancia de partición, disponibilidad y consistencia las tres al mismo tiempo.

Tenemos que negociar entre disponibilidad y coherencia. Por ejemplo, en una aplicación bancaria, un cliente debería ver el saldo correcto independientemente de desde dónde acceda. Los resultados pueden retrasarse unos segundos, pero deben ser muy consistentes.

En este artículo, veremos diferentes tipos de bases de datos NoSQL, sus características y cuándo usar cada tipo de base de datos.

Tabla de contenido

  1. ¿Qué es una base de datos NoSQL?
  2. Tipos de bases de datos NoSQL
    1. Base de datos basada en documentos
    2. Base de datos de valores-clave
    3. Base de datos basada en columnas amplias
    4. Base de datos basada en gráficos
  3. Diferentes bases de datos NoSQL
    1. MongoDB
    2. Casandra
    3. ElasticSearch
    4. Amazon DynamoDB
    5. HBase

¿Qué es una base de datos NoSQL?

Entonces, ¿qué es una base de datos NoSQL?

Es posible que haya escuchado a personas decir que una base de datos NoSQL es cualquier base de datos no relacional que no tiene ninguna relación entre los datos. Bueno, eso no es del todo cierto. También pueden almacenar la relación entre los datos pero de forma diferente.

Podemos decir que «NoSQL» significa «No solo SQL». Aquí, los datos no se dividen en varias tablas, ya que permiten todos los datos que están relacionados de cualquier forma posible, en una única estructura de datos. Cuando trabaja con una gran cantidad de datos, no necesita preocuparse por los retrasos en el rendimiento cuando consulta una base de datos NoSQL. ¡No es necesario ejecutar las costosas uniones! Son altamente escalables y confiables y están diseñados para funcionar en un entorno distribuido.

Tipos de bases de datos NoSQL

Ahora que sabemos qué es una base de datos NoSQL, exploremos los diferentes tipos de bases de datos NoSQL en esta sección.

1. Bases de datos NoSQL basadas en documentos

Las bases de datos basadas en documentos almacenan los datos en objetos JSON. Cada documento tiene pares clave-valor como estructuras:

screenshot-from-2020-09-09-15-19-30-9737840

Las bases de datos basadas en documentos son fáciles para los desarrolladores, ya que el documento se asigna directamente a los objetos, ya que JSON es un formato de datos muy común utilizado por los desarrolladores web. Son muy flexibles y nos permiten modificar la estructura en cualquier momento.

screenshot-from-2020-09-13-12-55-46-2909824

Algunos ejemplos de bases de datos basadas en documentos son MongoDB, Orient DB y BaseX.

2. Bases de datos de valores-clave

Como sugiere el nombre, almacena los datos como pares clave-valor. Aquí, las claves y los valores pueden ser cualquier cosa, como cadenas, números enteros o incluso objetos complejos. Son altamente divisibles y son los mejores en escala horizontal. Pueden ser realmente útiles en aplicaciones orientadas a sesiones donde intentamos capturar el comportamiento del cliente en una sesión en particular.

Algunos de los ejemplos son DynamoDB, Redis y Aerospike.

3. Bases de datos amplias basadas en columnas

Esta base de datos almacena los datos en registros similares a cualquier base de datos relacional, pero tiene la capacidad de almacenar una gran cantidad de columnas dinámicas. Agrupa las columnas lógicamente en familias de columnas.

Por ejemplo, en una base de datos relacional, tiene varias tablas, pero en una base de datos basada en columnas anchas, en lugar de tener varias tablas, tenemos varias familias de columnas.

Aquí hay un buen recurso para obtener más información sobre las bases de datos basadas en columnas:

https://www.youtube.com/watch?v=w_B0AKMaRzE

Ejemplos populares de este tipo de bases de datos son Cassandra y HBase.

4. Bases de datos basadas en gráficos

Almacenan los datos en forma de nodos y bordes. La parte del nodo de la base de datos almacena información sobre las entidades principales como personas, lugares, productos, etc., y la parte de los bordes almacena las relaciones entre ellos. Estos funcionan mejor cuando necesita averiguar la relación o el patrón entre sus puntos de datos, como una red social, motores de recomendación, etc.

Algunos de los ejemplos son Neo4j, Amazon Neptune, etc.

Ahora, echemos un vistazo a algunas de las bases de datos NoSQL y sus características.

Lista de las diferentes bases de datos NoSQL

1. MongoDB

MongoDB es la base de datos basada en documentos más utilizada. Almacena los documentos en objetos JSON.

mongo-db-logo-7843472

Según el sitio web stackshare.io, más de 3400 empresas están utilizando MongoDB en su pila tecnológica. Uber, Google, eBay, Nokia, Coinbase son algunos de ellos.

¿Cuándo usar MongoDB?

  1. En caso de que planee integrar cientos de fuentes de datos diferentes, el modelo basado en documentos de MongoDB será una excelente opción, ya que proporcionará una vista única unificada de los datos.
  2. Cuando espera muchas operaciones de lectura y escritura de su aplicación, pero no le importa mucho que algunos de los datos se pierdan en el bloqueo del servidor
  3. Puede usarlo para almacenar datos de flujo de clics y usarlo para el análisis del comportamiento del cliente

Si desea comenzar con MongoDB, le recomiendo que lea los siguientes artículos:

2. Cassandra

Cassandra es un sistema de base de datos distribuido de código abierto que inicialmente fue construido por Facebook (y motivado por Big Table de Google). Está ampliamente disponible y es bastante escalable. Puede manejar petabytes de información y miles de solicitudes simultáneas por segundo.

279px-cassandra_logo-svg_-2992395

Una vez más, según stackshare.io, más de 400 empresas están utilizando Cassandra en su pila tecnológica. Facebook, Instagram, Netflix, Spotify, Coursera son algunos de ellos.

¿Cuándo usar Cassandra?

  1. Cuando su caso de uso requiere más operaciones de escritura que de lectura
  2. En situaciones en las que necesita más disponibilidad que consistencia. Por ejemplo, puede usarlo para sitios web de redes sociales, pero no puede usarlo para fines bancarios.
  3. Necesita menos combinaciones y agregaciones en sus consultas a la base de datos
  4. Los rastreadores de salud, los datos meteorológicos, el seguimiento de pedidos y los datos de series de tiempo son algunos buenos casos de uso en los que puede utilizar las bases de datos de Cassandra.

3. ElasticSearch

Este es también un sistema de base de datos NoSQL distribuido de código abierto. Es altamente escalable y consistente. También puede llamarlo como Motor analítico. Puede analizar, almacenar y buscar fácilmente grandes volúmenes de datos.

Si la búsqueda de texto completo es parte de su caso de uso, ElasticSearch será la mejor opción para su pila tecnológica. Incluso permite la búsqueda con coincidencia aproximada.

1280px-elasticsearch_logo-svg_-7590200

Más de 3000 empresas están utilizando Elasticsearch en su pila tecnológica, incluidas Slack, Udemy, Medium y Stackoverflow.

¿Cuándo usar ElasticSearch?

  1. Si su caso de uso requiere una búsqueda de texto completo, Elasticsearch será la mejor opción
  2. Si su caso de uso involucra chatbots donde estos bots resuelven la mayoría de las consultas, como cuando una persona escribe algo, hay muchas posibilidades de que se produzcan errores ortográficos. Puede hacer uso de las prácticas de coincidencia aproximada integradas de ElasticSearch
  3. Además, ElasticSearch es útil para almacenar datos de registros y analizarlos.

4. Amazon DynamoDB

Es un sistema de base de datos distribuido basado en pares clave-valor creado por Amazon y altamente escalable. Pero, lamentablemente, no es de código abierto. Puede manejar fácilmente 10 billones de solicitudes por día para que pueda ver por qué.

amazon-dynamodb-logo-300x150-1-4826258

Más de 700 empresas están utilizando DynamoDB en su pila de tecnología, incluidas Snapchat, Lyft y Samsung.

¿Cuándo usar DynamoDB?

    1. En caso de que esté buscando una base de datos que pueda manejar consultas simples de valor-clave, pero esas consultas son muy numerosas.
    2. En caso de que esté trabajando con una carga de trabajo OLTP, como la reserva de boletos en línea o la banca, donde los datos deben ser muy consistentes

5. HBase

También es un sistema de base de datos distributiva altamente escalable de código abierto. HBase se escribió en JAVA y se ejecuta sobre el sistema de archivos distribuido de Hadoop (HDFS).

apache_hbase-logo-wine_-300x200-9488359

Más de 70 empresas están utilizando Hbase en su pila tecnológica, como Hike, Pinterest y HubSpot.

¿Cuándo usar HBase?

  1. Debe tener al menos petabytes de datos para procesar. Si su volumen de datos es pequeño, no obtendrá los resultados deseados
  2. Si su caso de uso requiere acceso aleatorio y en tiempo real a los datos, HBase será la opción adecuada.
  3. Si desea almacenar fácilmente mensajes en tiempo real para miles de millones de personas

Notas finales

Esta no es de ninguna manera una lista exhaustiva. Hay más bases de datos NoSQL, pero estas son las más utilizadas en la industria.

Si ha trabajado con alguna de estas bases de datos o cualquier otra base de datos NoSQL, hágamelo saber en la sección de comentarios a continuación. ¡Me encantaría conocer tu experiencia!

Hay mucha diferencia entre la ciencia de datos que aprendemos en los cursos y la práctica personal y la que trabajamos en la industria. Le recomiendo que siga los siguientes cursos gratuitos claros como el cristal para comprender todo sobre análisis, aprendizaje automático e inteligencia artificial:

  1. Introducción al curso gratuito de AI / ML | Aplicación movil
  2. Introducción a la aplicación móvil AI / ML para líderes empresariales
  3. Curso gratuito de introducción al análisis empresarial | Aplicación movil

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.