Sommario:
- Minore necessità per ETL
- Supporto per il testo non strutturato
- Capacità di gestire i cambiamenti nel tempo
- Nessuna dipendenza da SQL magic
- Capacità di scalare orizzontalmente sull'hardware commodity
- Larghezza delle funzionalità
- Supporto per più strutture di dati
- Scelta del fornitore
- Nessun codice legacy
- Esecuzione del codice accanto ai dati
Video: What is Database & SQL? 2024
I database NoSQL non sono una sostituzione diretta per un sistema di gestione di database relazionali (RDBMS). Per molti problemi di dati, tuttavia, NoSQL è una corrispondenza migliore rispetto a un RDBMS.
Minore necessità per ETL
Database NoSQL supportano la memorizzazione dei dati "così com'è. "I negozi con valore chiave offrono la possibilità di archiviare strutture di dati semplici, mentre i database NoSQL di documenti offrono la possibilità di gestire una gamma di strutture piatte o nidificate.
La maggior parte dei dati che volano tra i sistemi lo fa come un messaggio. In genere, i dati prendono uno di questi formati:
-
Un oggetto binario da passare attraverso un set di livelli
-
Un documento XML
-
Un documento JSON
Essere in grado di gestire questi formati in modo nativo in un intervallo di I database NoSQL riducono la quantità di codice che devi convertire dal formato dei dati di origine al formato che deve essere archiviato. Questo è chiamato estrarre, trasformare e caricare (ETL).
Utilizzando questo approccio, si riduce notevolmente la quantità di codice necessaria per iniziare a utilizzare un database NoSQL. Inoltre, poiché non è necessario pagare gli aggiornamenti per questo codice "impianto idraulico", i costi di manutenzione in corso sono notevolmente ridotti.
Supporto per il testo non strutturato
La stragrande maggioranza dei dati nei sistemi aziendali non è strutturata. Molti database NoSQL possono gestire l'indicizzazione del testo non strutturato sia come funzionalità nativa (MarkLogic Server) che come un set integrato di servizi, tra cui Solr o Elasticsearch.
Essere in grado di gestire il testo non strutturato aumenta notevolmente le informazioni e può aiutare le organizzazioni a prendere decisioni migliori. Ad esempio, gli usi avanzati includono il supporto per più lingue con ricerca sfaccettata, funzionalità snippet e supporto per lo sviluppo di parole. Le funzionalità avanzate includono anche il supporto per dizionari e thesauri.
Inoltre, utilizzando le azioni di avviso di ricerca sui dati ingeriti, è possibile estrarre entità denominate da directory come quelle che elencano persone, luoghi e organizzazioni, che consente di classificare meglio i dati di testo, taggarli e cercarli.
Servizi di arricchimento di entità come SmartLogic, OpenCalais, NetOwl e TEMIS Luxid che combinano informazioni estratte con altre informazioni forniscono una ricca rete di informazioni interlacciate e migliorano l'analisi e l'uso efficienti.
Capacità di gestire i cambiamenti nel tempo
A causa della natura agnostica dello schema dei database NoSQL, sono molto capaci di gestire le modifiche - non è necessario riscrivere le routine ETL se la struttura dei messaggi XML tra i sistemi cambia.
Alcuni database NoSQL fanno un ulteriore passo avanti e forniscono un indice universale per la struttura, i valori e il testo trovati nelle informazioni.Microsoft DocumentDB e MarkLogic Server forniscono entrambe questa funzionalità.
Se la struttura di un documento cambia, questi indici consentono alle organizzazioni di utilizzare le informazioni immediatamente, piuttosto che dover attendere diversi mesi prima di poter testare e riscrivere i sistemi.
Nessuna dipendenza da SQL magic
Structured Query Language (SQL) è il linguaggio predominante utilizzato per interrogare i sistemi di gestione dei database relazionali. Essere in grado di strutturare le query in modo che si comportino bene è diventato nel corso degli anni un'arte spinosa. Complessi join multitable non sono facili da scrivere dalla memoria.
Sebbene diversi database NoSQL supportino l'accesso SQL, lo fanno per compatibilità con le applicazioni esistenti come gli strumenti di Business Intelligence (BI). I database NoSQL supportano i propri linguaggi di accesso in grado di interpretare i dati memorizzati, piuttosto che richiedere un modello relazionale all'interno del database sottostante.
Questa mentalità più incentrata sugli sviluppatori per la progettazione di database e le loro API (Application Programming Interface) di accesso sono la ragione per cui i database NoSQL sono diventati molto popolari tra gli sviluppatori di applicazioni.
Gli sviluppatori di applicazioni non hanno bisogno di conoscere il funzionamento interno e i capricci dei database prima di utilizzarli. I database NoSQL consentono agli sviluppatori di lavorare su ciò che è richiesto nelle applicazioni invece di cercare di forzare i database relazionali a fare ciò che è necessario.
Capacità di scalare orizzontalmente sull'hardware commodity
I database NoSQL gestiscono il partizionamento ( sharding ) di un database su più server. Pertanto, se i requisiti di archiviazione dei dati aumentano eccessivamente, è possibile continuare ad aggiungere server economici e collegarli al cluster di database ( ridimensionamento orizzontale ) facendoli funzionare come un singolo servizio dati.
Confrontalo con il mondo del database relazionale in cui devi acquistare hardware nuovo, più potente e quindi più costoso da scalare ( ridimensionamento verticale ). Se raddoppi la quantità di dati che archivi, puoi quadruplicare facilmente il costo dell'hardware che ti serve.
Garantire la durabilità e l'alta disponibilità di un database NoSQL utilizzando hardware e storage poco costosi è uno dei principali vantaggi di NoSQL. Essere in grado di farlo pur fornendo una scalabilità generosa per molti usi non fa male!
Larghezza delle funzionalità
La maggior parte dei database relazionali supporta le stesse funzionalità, ma in un modo leggermente diverso, quindi sono tutti simili.
I database NoSQL, al contrario, sono disponibili in quattro tipi principali: valore-chiave, colonna, documento e negozi tripli. All'interno di questi tipi, puoi trovare un database adatto alle tue particolari (e peculiari!) Esigenze. Con così tanta scelta, sei tenuto a trovare un database NoSQL che risolverà i problemi della tua applicazione.
Supporto per più strutture di dati
Molte applicazioni richiedono una semplice memorizzazione degli oggetti, mentre altre richiedono storage di struttura altamente complesso e correlato. I database NoSQL forniscono supporto per una serie di strutture di dati.
-
Semplici valori binari, elenchi, mappe e stringhe possono essere gestiti ad alta velocità nei negozi di valore-chiave.
-
I valori delle informazioni correlate possono essere raggruppati in famiglie di colonne all'interno di cloni Bigtable.
-
Strutture gerarchiche genitore-figlio estremamente complesse possono essere gestite all'interno di database di documenti.
-
Una rete di informazioni correlate può essere descritta in modo flessibile e correlata nei negozi a triplo e grafico.
Scelta del fornitore
Il settore NoSQL è pieno di database, anche se molti sono in circolazione da meno di dieci anni. Ad esempio, IBM, Microsoft e Oracle solo di recente hanno immerso le dita dei piedi in questo mercato. Di conseguenza, molti venditori si rivolgono a un pubblico specifico con una propria serie di innovazioni.
Le varianti di sorgente Open- sono disponibili per la maggior parte dei database NoSQL, che consente alle aziende di esplorare e iniziare a utilizzare i database NoSQL a rischio minimo. Queste aziende possono quindi adottare i loro nuovi metodi su una piattaforma di produzione utilizzando le offerte aziendali.
Nessun codice legacy
Poiché sono così nuovi, i database NoSQL non hanno il codice legacy, il che significa che non è necessario fornire supporto per vecchie piattaforme hardware o mantenere aggiornate le funzionalità strane e poco utilizzate.
I database NoSQL godono di un ritmo veloce in termini di sviluppo e maturazione. Le nuove funzionalità vengono rilasciate continuamente e le funzionalità nuove ed esistenti vengono aggiornate di frequente (quindi i fornitori NoSQL non devono mantenere una base di codice molto ampia). Di fatto, le nuove versioni principali avvengono ogni anno anziché ogni tre o cinque anni.
Esecuzione del codice accanto ai dati
I database NoSQL sono stati creati nell'era di Hadoop. Il file system altamente distribuito Hadoop (HDFS) e l'ambiente di elaborazione batch (Map / Reduce) hanno segnalato le modifiche nel modo in cui i dati vengono archiviati, interrogati ed elaborati.
Le query e il lavoro di elaborazione passano ora a diversi server, che forniscono alti livelli di parallelizzazione per i carichi di lavoro di ingest e query. Essere in grado di calcolare aggregazioni accanto ai dati è diventata anche la norma.
Non è più necessario un sistema di data warehouse separato che venga aggiornato durante la notte. Con aggregazioni rapide e gestione delle query, l'analisi viene passata al database per l'esecuzione accanto ai dati, il che significa che non è necessario spedire molti dati in una rete per ottenere analisi combinate localmente.