Cos'è CouchDB?
Apache CouchDB è un database di documenti NoSQL open source che memorizza i dati in formati basati su JSON.
Sfondo nero e blu
Cos'è CouchDB?

Apache CouchDB (link esterno a ibm.com) è un database di documenti NoSQL open source che raccoglie e archivia i dati in formati di documento basati su JSON. A differenza dei database relazionali, CouchDB utilizza un modello di dati senza schema, che semplifica la gestione dei record su vari dispositivi di calcolo, telefoni cellulari e browser web.

CouchDB è stato introdotto nel 2005 e in seguito, nel 2008, è diventato un progetto di Apache Software Foundation (link esterno a ibm.com). Trattandosi di un progetto open source, CouchDB è supportato da una community attiva di sviluppatori che migliorano continuamente il software con particolare attenzione alla facilità d'uso e all'adozione del web.

Perché usare CouchDB?

Per la maggior parte delle aziende, decidere quale fornitore utilizzare quando si acquista una tecnologia di gestione dei dati può essere impegnativo. Non solo il software proprietario impone alcune restrizioni di licenza sull'uso della tecnologia, ma si presentano problematiche di business continuity quando si spostano tutti i dati aziendali in un sistema di gestione di database (DBMS - database management system) generalizzato senza alcuna visibilità della sua struttura interna.

CouchDB è diverso. A differenza del software proprietario a rischio di vincoli da uno specifico fornitore, CouchDB è open source, può essere utilizzato gratuitamente e si integra facilmente nella tua infrastruttura di gestione dei dati attuale. Dal momento che hai più controllo sul software, hai anche più flessibilità nell'adattarlo alle esigenze specifiche del tuo business. Sia che si richieda un archivio di documenti per scopi generici, sia che si desideri un'efficiente sincronizzazione dei dati o che si adotti una strategia "offline first", CouchDB offre alle aziende la flessibilità di cui hanno bisogno per creare infrastrutture durevoli, affidabili e scalabili.

Questo video spiega di più su CouchDB e su come funziona:

Funzioni salienti di CouchDB

Il motivo alla base dello sviluppo di CouchDB può essere definito con una parola: relax. CouchDB viene fornito con una suite di funzioni progettate per ridurre lo sforzo di esecuzione di un sistema distribuito resiliente. Ecco alcune funzioni principali di CouchDB e le differenze rispetto agli altri database NoSQL.

Replica. Una delle funzioni distintive di CouchDB è la replica bidirezionale, che permette 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 recupero dei dati, geo-localizzare i dati più vicini agli utenti finali e semplificare i processi di backup.

In CouchDB, non esiste alcuna distinzione se i dati sono ospitati su un server o su più server. Invece, CouchDB identifica le modifiche ai documenti quando si verificano da qualsiasi origine 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 ospitando informazioni accurate e in tempo reale su più ambienti di calcolo.

Viste. CouchDB utilizza le viste come strumento principale per l'esecuzione di query e la creazione di report dai file di documenti memorizzati. Le viste ti consentono di filtrare i documenti per trovare informazioni pertinenti per uno specifico processo del database. Queste informazioni possono poi essere mappate secondo le tue preferenze ed estratte in un ordine specifico.

Il bello di CouchDB è la libertà di scegliere il modo in cui le informazioni sono presentate. Siccome le viste di CouchDB sono costruite dinamicamente e non influenzano direttamente alcun archivio di documenti sottostante, non c'è alcuna limitazione a quante diverse viste degli stessi dati puoi eseguire. Queste viste sono create all'interno di speciali documenti di progettazione e sono in grado di essere replicate su più istanze di database come normali dati memorizzati.

Un'altra funzione importante di CouchDB è la disponibilità di Apache MapReduce per creare potenti indici che individuano facilmente i documenti in base a uno qualsiasi dei valori in essi contenuti. È quindi possibile utilizzare questi indici per stabilire relazioni tra un documento e l'altro ed eseguire una varietà di calcoli in base a tali queste connessioni.

API HTTP. CouchDB usa una API REST per accedere al database da qualsiasi luogo, con piena flessibilità di operazioni di creazione, lettura, aggiornamento ed eliminazione (CRUD - create, read, update, delete). Questo mezzo semplice ed efficace di connettività del database rende CouchDB flessibile, veloce e potente da usare rimanendo al contempo altamente accessibile.

Costruito per l'offline. Quando vengono scalate l'usabilità e l'accessibilità del database, è essenziale essere in grado di realizzare applicazioni che funzionano bene sia offline che online. CouchDB consente alle applicazioni di memorizzare i dati raccolti localmente su dispositivi mobili e browser, poi sincronizza quei dati una volta che è di nuovo online.

Storage dei documenti efficiente. In CouchDB, i documenti sono le unità primarie di dati utilizzati in JSON, composti da vari campi e allegati per uno storage facile. Non esiste alcun limite alla dimensione del testo o al numero di elementi di ogni documento ed è possibile accedere ai dati e aggiornarli da più origini di database e su server-cluster distribuiti globalmente.

Compatibilità. CouchDB è estremamente abbordabile e offre una varietà di vantaggi di compatibilità quando è integrato con la tua infrastruttura attuale. CouchDB è stato scritto in Erlang (un linguaggio di programmazione generale, concorrente, con raccolta dei dati inutilizzati e un sistema di runtime) rendendolo affidabile e facile da utilizzare per gli sviluppatori.

A causa delle sue funzionalità open source, CouchDB è estremamente flessibile e può essere installato ed eseguito su vari sistemi operativi e strumenti di virtualizzazione. È anche compatibile con PouchDB, un database leggero progettato per funzionare nei browser dei dispositivi mobili.

Vantaggi di CouchDB

CouchDB offre vantaggi sia agli utenti che agli sviluppatori.

ScalabilitàIl design architetturale di CouchDB lo rende estremamente adattabile quando si partizionano i database e si scalano i dati su più nodi. CouchDB supporta sia il partizionamento orizzontale che la replica per creare una soluzione facilmente gestita per bilanciare i carichi di lettura e scrittura durante l'implementazione di un database.

CouchDB dispone di un motore di storage molto durevole e affidabile progettato da zero per infrastrutture multicloud e multi-database. Essendo un database NoSQL, CouchDB è molto personalizzabile e apre le porte allo sviluppo di applicazioni affidabili e orientate alle prestazioni, indipendentemente dal volume dei dati o dal numero di utenti.

Nessun blocco di lettura. Nella maggior parte dei database relazionali - dove i dati sono memorizzati in tabelle - se hai bisogno di aggiornare o modificare una tabella, la riga di dati che viene modificata viene bloccata agli altri utenti fino a quando la richiesta di modifica non viene elaborata. Questo può creare problemi di accessibilità per i client e colli di bottiglia in generale nei tuoi processi di gestione dei dati.

CouchDB utilizza MVCC (Multi-Version Concurrency Control) per gestire l'accesso ai database in modo simultaneo. Questo significa che, indipendentemente dal carico attuale del database, CouchDB può essere eseguito a piena velocità e senza restrizioni per i suoi utenti. Poiché i documenti in CouchDB sono aggiornati e aggiunti in tempo reale, le richieste di lettura del database vedranno sempre le istantanee del database aggiornate più di recente, indipendentemente da chi ha eseguito per primo l'accesso al documento.

Sviluppo open source. Grazie al solido sostegno e supporto di cui gode nella community open source, CouchDB mantiene una base forte e affidabile per la gestione di database aziendali. Sviluppato nel corso di diversi anni come una soluzione senza schema, CouchDB offre una flessibilità ineguagliabile che semplicemente non è possibile trovare nella maggior parte delle soluzioni di database proprietarie.

Soluzioni correlate
IBM Cloudant

Il livello di dati per applicazioni iperscalabili, resilienti e globalmente disponibili, basato su Apache CouchDB open source

Esplora IBM Cloudant
Risorse Approfondimenti sul database: CouchDB

Scopri i punti di forza e di debolezza di CouchDB, in che direzione si sta muovendo il progetto e altro ancora in questa intervista con due esperti di database.

Cos'è NoSQL?

NoSQL è un approccio alla progettazione dei database che consente lo storage e l'esecuzione di query di dati esternamente alle strutture tradizionali presenti nei database relazionali.

Cos'è lo storage su cloud?

Ottieni un'introduzione agli aspetti importanti dello storage su cloud, compresi la sua modalità di funzionamento, i suoi vantaggi e i diversi tipi di storage su cloud disponibili.

Passa alla fase successiva

Basato su Apache CouchDB, IBM Cloudant è un database distribuito completamente gestito ottimizzato per carichi di lavoro pesanti e applicazioni web e su dispositivi mobili in rapida crescita. Disponibile come servizio IBM Cloud con uno SLA del 99,99%, Cloudant scala in modo elastico la velocità di trasmissione e lo storage, e le sue API e i protocolli di replica sono compatibili con Apache CouchDB per architetture ibride o multicloud.

Scopri di più e prova IBM Cloudant