Apache CouchDB è un database di documenti NoSQL open source che raccoglie e memorizza i dati in formati basati su documenti JSON. A differenza dei database relazionali, CouchDB utilizza un modello di dati senza schemi, che semplifica la gestione dei record su vari dispositivi informatici, telefoni mobili e browser web.
CouchDB è stato introdotto nel 2005 e, nel 2008, è diventato un progetto della Apache Software Foundation . In quanto progetto open source, CouchDB è supportato da una comunità attiva di sviluppatori che migliorano continuamente il software, con particolare attenzione alla facilità d'uso e all'inclusione del web.
Per la maggior parte delle aziende, decidere quale fornitore utilizzare per la tecnologia di gestione dei dati può rappresentare una sfida. Il software proprietario impone alcune restrizioni di licenza sull'uso della tecnologia e ci sono problemi di continuità aziendale quando si spostano tutti i dati in un sistema di gestione di database (DBMS) "one-size-fits-all", senza visibilità sulla sua struttura interna.
CouchDB è diverso. A differenza dei software proprietari che possono comportare il rischio di "blocco da fornitore", CouchDB è open source, gratuito e si integra facilmente con infrastruttura di gestione dei dati esistente. Avendo un maggiore controllo sul software, avrai anche maggiore flessibilità nell'adattarlo alle esigenze specifiche della tua azienda. Sia che si tratti di un database di documenti di uso generale, oppure di abilitare una sincronizzazione efficiente dei dati o di adottare una mentalità "offline first", CouchDB offre alle aziende la flessibilità necessaria per creare infrastrutture durevoli, affidabili e scalabili.
La motivazione alla base dello sviluppo di CouchDB può essere definita con una sola parola: relax. CouchDB è dotato di una suite di caratteristiche progettate per ridurre lo sforzo necessario per gestire un sistema distribuito resiliente. Ecco alcune delle caratteristiche principali di CouchDB e le differenze rispetto agli altri database NoSQL.
Replica. Una delle caratteristiche di CouchDB è la replica bidirezionale, che consente la sincronizzazione dei dati su più server e dispositivi tramite la replica bidirezionale. Questa replica consente alle aziende di massimizzare la disponibilità dei sistemi, ridurre i tempi di ripristino dei dati, geolocalizzare i dati più vicini agli utenti finali e semplificare i processi di backup.
In CouchDB non c'è distinzione se i dati sono ospitati su un server o su più server. Piuttosto, CouchDB identifica le modifiche ai documenti via via che si verificano da qualsiasi fonte e garantisce che tutte le copie del database rimangano sincronizzate con le informazioni più aggiornate. Ciò consente a più repliche di database di essere autonome e gestite, pur conservando informazioni accurate e in tempo reale in più ambienti informatici.
Viste. CouchDB utilizza le viste come strumento principale per l'esecuzione di query e la creazione di report da file di documenti memorizzati. Le viste consentono di filtrare i documenti per trovare informazioni rilevanti per un particolare processo di database. Queste informazioni possono quindi essere mappate in base alle tue preferenze ed estratte in un ordine specifico.
Il bello di CouchDB è la libertà di presentare le informazioni. Poiché le viste di CouchDB sono create dinamicamente e non influiscono direttamente sui database di documenti sottostanti, non ci sono limiti al numero di viste diverse degli stessi dati che può eseguire. Queste viste vengono create all'interno di speciali documenti di progettazione e possono essere replicate su più istanze di database, come dati memorizzati regolarmente.
Un'altra grande caratteristica di CouchDB è la disponibilità di MapReduce. Le viste CouchDB possono effettuare aggregazioni di riepilogo sui dati contenuti all'interno dell'indice. Sono precalcolati e memorizzati, il che significa che possono essere restituiti istantaneamente, anche oltre miliardi di documenti.
API HTTP. CouchDB utilizza un'API REST per accedere al database da qualsiasi luogo, con la massima flessibilità delle operazioni CRUD (creazione, lettura, aggiornamento, eliminazione). Questo mezzo semplice ed efficace di connettività al database rende CouchDB flessibile, veloce e potente da utilizzare, pur rimanendo altamente accessibile.
Creato per l'offline. Quando si tratta di scalare l'usabilità e l'accessibilità del database, è essenziale poter costruire applicazioni che funzionino bene sia offline che online. CouchDB consente alle applicazioni di memorizzare i dati raccolti localmente sui dispositivi mobili e sui browser, per poi sincronizzarli una volta tornati online.
Storage efficiente dei documenti. In CouchDB, i documenti JSON sono le unità principali di dati, insieme agli allegati binari associati, come le immagini. Non ci sono limiti alle dimensioni del testo o al numero di elementi di ciascun documento. Quando vengono replicati, è possibile accedere ai dati e aggiornarli attraverso cluster di server distribuiti a livello globale.
Compatibilità. CouchDB è estremamente accessibile e offre una serie di benefici di compatibilità quando è integrato con la sua infrastruttura attuale. CouchDB è stato scritto in Erlang (un linguaggio di programmazione e un sistema runtime generico, simultaneo e garbage-collected) ed è affidabile e facile da usare per gli sviluppatori. Può essere posizionato dietro i bilanciatori di carico HTTP standard. I client HTTP sono disponibili per tutti i linguaggi di programmazione, così come le librerie client specifiche di CouchDB.
CouchDB è flessibile e può essere installato ed eseguito su molti sistemi operativi e strumenti di virtualizzazione . È inoltre compatibile con PouchDB, un database leggero progettato per essere eseguito nel browser web, anche su dispositivi mobili.
CouchDB offre benefici sia agli utenti che agli sviluppatori.
Scalabilità. L'architettura di CouchDB lo rende estremamente adattabile durante il partizionamento dei database e il ridimensionamento dei dati su più nodi. CouchDB supporta sia il partizionamento orizzontale che la replica per creare una soluzione facilmente gestibile, finalizzata a bilanciare i carichi di lettura e scrittura durante l'implementazione di un database.
CouchDB dispone di un motore di storage molto resistente e affidabile, creato da zero per infrastrutture multicloud e multi-database. In quanto database NoSQL, CouchDB è molto personalizzabile e supporta lo sviluppo di applicazioni prevedibili e basate sulle prestazioni, indipendentemente dal volume di dati o dal numero di utenti.
Nessun blocco di lettura. CouchDB utilizza MVCC (Multi-Version Concurrency Control) per gestire l'accesso simultaneo ai database. Questo elimina la necessità di bloccare pezzi di dati durante l'aggiornamento e aumenta la capacità di CouchDB di sostenere workload ad alta velocità. Le richieste in transito leggeranno le versioni dei documenti esistenti al momento dell'inizio della lettura, mentre le scritture verranno rifiutate solo se creano un conflitto con un aggiornamento simultaneo.
Sviluppo open source. Grazie al suo forte sostegno e supporto nella community open source, CouchDB mantiene una base solida e affidabile per la gestione dei database aziendali. Sviluppato nel corso di diversi anni come soluzione senza schema, CouchDB offre una flessibilità senza precedenti che non si trova nella maggior parte delle soluzioni di database proprietarie.
Usa le soluzioni di database di IBM per soddisfare varie esigenze di workload nell'hybrid cloud.
Esplora IBM DB2, un database relazionale che offre prestazioni, scalabilità e affidabilità elevate per l'archiviazione e la gestione di dati strutturati. È disponibile come SaaS su IBM Cloud o in self-hosting.
Sblocca il valore dei dati enterprise con IBM Consulting, creando un'organizzazione basata su insight in grado di generare vantaggi aziendali.