Database NoSQL che ogni data scientist dovrebbe conoscere! 2020!

Contenuti

Panoramica

  • I database NoSQL sono onnipresenti nel settore: Ci si aspetta che un data scientist abbia familiarità con questi database.
  • Aquí veremos qué es una base de datos NoSQL y por qué debería aprender sobre ella.
  • Vedremo anche le caratteristiche di 5 diversi database NoSQL.

introduzione

Ecco un consiglio che vorrei che qualcuno mi avesse dato quando ho iniziato a lavorare nella scienza dei dati.: Scopri il più possibile sull'utilizzo dei database.

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

  • Dovrai affrontare domande sui database nel tuo colloquio di data science.
  • Lavorerai ampiamente con i database nel tuo ruolo di data scientist, analista dati, analista di affari, eccetera.
  • Ti affiderai alla tua conoscenza dei database per raccogliere e compilare i dati per il tuo progetto di data science.

E molto altro ancora!!

La verità incontrovertibile è che stiamo generando dati a un ritmo e una scala senza precedenti in questo momento.. Il semplice fatto che più di 8.500 tweet e 900 foto su Instagram in un secondo mi lascia a bocca aperta. Allucinata la mente: In che modo i database odierni gestiscono tali volumi di dati??

different-nosql-databases-6197427

Per gestire questa grande quantità di dati, Abbiamo bisogno di un sistema di database distribuito in grado di eseguire più nodi e che sia anche tollerante alle partizioni. Significa che anche se uno dei nodi fallisce per qualsiasi motivo, Il sistema dovrebbe funzionare senza problemi. Quindi la tolleranza alla partizione è un must.. Ora, secondo il teorema CAP, Non possiamo avere tolleranza di partizione, Disponibilità e coerenza tutte e tre allo stesso tempo.

Dobbiamo negoziare tra disponibilità e coerenza. Ad esempio, in un'app bancaria, Un cliente dovrebbe vedere il saldo corretto indipendentemente da dove accede.. I risultati possono essere ritardati di alcuni secondi, Ma devono essere molto coerenti.

In questo articolo, vedremo diversi tipi di database NoSQL, Le tue funzionalità e quando utilizzare ogni tipo di database.

Sommario

  1. Che cos'è un database NoSQL?
  2. Tipi di database NoSQL
    1. Database basato su documenti
    2. Database chiave-valore
    3. Ampio database basato su colonne
    4. Database basato su grafici
  3. Diversi database NoSQL
    1. MongoDB
    2. Cassandra
    3. ElasticSearch
    4. Amazon DynamoDB
    5. HBase

Che cos'è un database NoSQL?

Quindi, Che cos'è un database NoSQL?

Potresti aver sentito dire che un database NoSQL è qualsiasi database non relazionale che non ha alcuna relazione tra i dati.. Bene, Non è del tutto vero.. Possono anche memorizzare la relazione tra i dati ma in modo diverso.

Possiamo dire che “NoSQL” significa “Nessun SQL da solo”. Qui, I dati non sono suddivisi in più tabelle, in quanto consentono tutti i dati correlati in ogni modo possibile, in un'unica struttura dati. Quando si lavora con una grande quantità di dati, non è necessario preoccuparsi dei ritardi delle prestazioni quando si esegue una query su un database NoSQL. Non c'è bisogno di eseguire costose join!! Sono altamente scalabili e affidabili e progettati per funzionare in un ambiente distribuito.

Tipi di database NoSQL

Ora che sappiamo cos'è un database NoSQL, esploriamo i diversi tipi di database NoSQL in questa sezione.

1. Database NoSQL basati su documenti

Las bases de datos basadas en documentos almacenan los datos en objetos JSON. Ogni documento ha coppie chiave-valore come strutture:

Screenshot-da-2020-09-09-15-19-30-9737840

I database basati su documenti sono facili per gli sviluppatori, Poiché il documento viene mappato direttamente agli oggetti, poiché JSON è un formato di dati molto comune utilizzato dagli sviluppatori web. Sono molto flessibili e ci permettono di modificare la struttura in qualsiasi momento.

Screenshot-da-2020-09-13-12-55-46-2909824

Esempi di database basati su documenti includono MongoDB, Orient DB e BaseX.

2. Database di valori-chiave

Come suggerisce il nome, Memorizza i dati come coppie chiave-valore. Qui, Le chiavi e i valori possono essere qualsiasi cosa, come stringhe, Interi o anche oggetti complessi. Sono altamente divisibili e sono i migliori in scala orizzontale.. Pueden ser realmente útiles en aplicaciones orientadas a sesiones donde intentamos capturar el comportamiento del cliente en una sessione in particolare.

Alcuni degli esempi sono DynamoDB, Redis e Aerospike.

3. Database estesi basati su colonne

Questo database memorizza i dati in record simili a qualsiasi database relazionale, ma ha la capacità di memorizzare un gran numero di colonne dinamiche. Raggruppa le colonne in modo logico in famiglie di colonne.

Ad esempio, in un database relazionale, ha più tabelle, ma in un database basato su colonne larghe, invece di avere più tabelle, Abbiamo diverse famiglie di colonne.

Ecco una buona risorsa per ulteriori informazioni sui database basati su colonne:

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

Esempi popolari di questo tipo di database sono Cassandra e HBase.

4. Database basati su grafici

Archiviare i dati sotto forma di nodi e bordi. La parte del nodo de la base de datos almacena información sobre las entidades principales como personas, posti, prodotti, eccetera., e la parte dei bordi memorizza le relazioni tra di loro. Questi funzionano meglio quando è necessario capire la relazione o il modello tra i punti dati., come social network, Motori di raccomandazione, eccetera.

Alcuni degli esempi sono Neo4j, Amazon Neptune, eccetera.

Ora, Diamo un'occhiata ad alcuni dei database NoSQL e alle loro funzionalità.

Elenco dei diversi database NoSQL

1. MongoDB

MongoDB è il database basato su documenti più utilizzato. Archiviare documenti in oggetti JSON.

mongo-db-logo-7843472

Secondo il sito web stackshare.io, più di 3400 le aziende utilizzano MongoDB nel loro stack tecnologico. Uber, Google, eBay, Nokia, Coinbase sono alcuni di loro.

Quando usare MongoDB?

  1. Nel caso in cui si preveda di integrare centinaia di fonti di dati diverse, Il modello basato su documenti di MongoDB sarà una scelta eccellente, in quanto fornirà una visione unica e unificata dei dati.
  2. Quando si prevedono molte operazioni di lettura e scrittura dall'applicazione, Ma non ti interessa molto che alcuni dei dati vengano persi nel crash del server
  3. È possibile utilizzarlo per archiviare i dati clickstream e utilizzarli per l'analisi del comportamento dei clienti

Se vuoi iniziare con MongoDB, Ti consiglio di leggere i seguenti articoli:

2. Cassandra

Cassandra è un sistema di database distribuito open source inizialmente costruito da Facebook (e alimentato dal Big Table di Google). È ampiamente disponibile e abbastanza scalabile. Può gestire petabyte di informazioni e migliaia di richieste simultanee al secondo.

279px-cassandra_logo-svg_-2992395

Un'altra volta, secondo stackshare.io, più di 400 le aziende utilizzano Cassandra nel loro stack tecnologico. Facebook, Instagram, Netflix, Spotify, Coursera sono alcuni di loro.

Quando usare Cassandra?

  1. Quando il caso d'uso richiede più operazioni di scrittura che di lettura
  2. In situazioni in cui è necessaria più disponibilità che coerenza. Ad esempio, Puoi usarlo per i siti Web di social media, ma non puoi usarlo per scopi bancari.
  3. Sono necessari meno join e aggregazioni nelle query di database
  4. Monitoraggio della salute, Dati meteo, Il monitoraggio degli ordini e i dati delle serie temporali sono alcuni validi casi d'uso in cui è possibile utilizzare i database di Cassandra..

3. ElasticSearch

Questo è anche un sistema di database NoSQL distribuito open source. È altamente scalabile e coerente. Puoi anche chiamarlo come Motore analitico. Puoi analizzare, Archivia e cerca facilmente grandi volumi di dati.

Se la ricerca full-text fa parte del tuo caso d'uso, ElasticSearch sarà la scelta migliore per il tuo stack tecnologico. Permette anche la ricerca con corrispondenza approssimativa.

1280px-elasticsearch_logo-svg_-7590200

Più di 3000 le aziende utilizzano Elasticsearch nel loro stack tecnologico, incluso Slack, Udemy, Medium e Stackoverflow.

Quando utilizzare ElasticSearch?

  1. Se il tuo caso d'uso richiede una ricerca full-text, Elasticsearch sarà l'opzione migliore
  2. Se il tuo caso d'uso coinvolge chatbot in cui questi bot risolvono la maggior parte delle query, come quando una persona scrive qualcosa, C'è un'alta probabilità di errori di ortografia. Puoi utilizzare le pratiche di corrispondenza fuzzy integrate di Elasticsearch
  3. Cosa c'è di più, ElasticSearch è utile per archiviare i dati di log e analizzarli.

4. Amazon DynamoDB

Si tratta di un sistema di database distribuito basato su coppie chiave-valore create da Amazon e altamente scalabile. Ma, purtroppo, Non open source. Può essere facilmente gestito 10 Miliardi di richieste al giorno per capire perché.

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

Più di 700 le aziende utilizzano DynamoDB nel loro stack tecnologico, incluso Snapchat, Lyft e Samsung.

Quando utilizzare DynamoDB?

    1. Nel caso in cui si stia cercando un database in grado di gestire semplici query chiave-valore, Ma queste consultazioni sono molto numerose..
    2. Nel caso in cui si stia lavorando con un carico di lavoro OLTP, come la prenotazione di biglietti online o bancari, dove i dati devono essere molto coerenti

5. HBase

È anche un sistema di database distributivo open source altamente scalabile. HBase se escribió en JAVA y se ejecuta sobre el sistema de archivos distribuido l'Hadoop (HDFS).

apache_hbase-logo-wine_-300x200-9488359

Più di 70 le aziende utilizzano Hbase nel loro stack tecnologico, come Escursione, Pinterest e HubSpot.

Quando usare HBase?

  1. È necessario disporre di almeno petabyte di dati da elaborare. Se il volume di dati è ridotto, Non otterrai i risultati desiderati
  2. Se il tuo caso d'uso richiede un accesso casuale e in tempo reale ai dati, HBase sarà la scelta giusta.
  3. Se vuoi archiviare facilmente messaggi in tempo reale per miliardi di persone

Note finali

Questo non è affatto un elenco esaustivo. Ci sono più database NoSQL, Ma questi sono i più utilizzati nel settore.

Se hai lavorato con uno di questi database o qualsiasi altro database NoSQL, fammi sapere nella sezione commenti qui sotto. Mi piacerebbe conoscere la tua esperienza!!

C'è molta differenza tra la scienza dei dati che apprendiamo nei corsi e nella pratica personale e quella con cui lavoriamo nell'industria. Ti consiglio di seguire i seguenti corsi gratuiti cristallini per capire tutto sull'analisi, apprendimento automatico e intelligenza artificiale:

  1. Introduzione al corso gratuito di intelligenza artificiale / ML | App per dispositivi mobili
  2. Introduzione all'app mobile AI / ML per i leader aziendali
  3. Corso introduttivo gratuito di analisi aziendale | App per dispositivi mobili

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.