Apache CouchDB
Sfondo nero e blu
Cos'è CouchDB?

Esplora le funzioni, i vantaggi e la facilità di utilizzo che CouchDB offre per la gestione dei database aziendali.

Apache CouchDB (CouchDB (link esterno a ibm.com)) è un database di documenti NoSQL open source che raccoglie e archivia i dati in formati di documenti 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 comunità attiva di sviluppatori che migliorano continuamente il software con particolare attenzione alla facilità d'uso e alla diffusione in rete.

Prodotti in evidenza

Cloudant


Perché usare CouchDB?

Per la maggior parte delle imprese, 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 ci sono problematiche di continuità del business quando si spostano tutti i dati aziendali in un sistema di gestione di database (DBMS - database management system) "one-size-fits-all" senza visibilità della sua struttura interna.

CouchDB è diverso. A differenza del software proprietario a rischio di "vendor lock-in", CouchDB è open source, gratuito da usare, e si integra facilmente nella tua infrastruttura di gestione dei dati esistente. 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.

Per una visione più approfondita di come funziona CouchDB, guarda il nostro video "CouchDB Explained":


Vantaggi

CouchDB presenta una varietà di vantaggi per gli utenti e gli sviluppatori che lo rendono una grande soluzione di gestione di database non relazionali.

Scalabilità

Il design architettonico 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 gestibile per bilanciare i carichi di lettura e scrittura durante la distribuzione di un database.

CouchDB dispone di un motore di archiviazione molto robusto e affidabile progettato da zero per infrastrutture multicloud e multi-database. Come 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ò funzionare 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 gli snapshot del database aggiornati più di recente, indipendentemente da chi ha avuto accesso al documento per primo.

Sviluppo open source

A causa del solido sostegno e dell'assistenza della comunità open source, CouchDB conserva una base forte e affidabile per la gestione di database aziendali. Sviluppato nel corso degli anni come una soluzione schema-less, CouchDB offre una flessibilità ineguagliabile che difficilmente può essere trovata nella maggior parte delle soluzioni di database proprietarie.


Funzioni

Il motivo alla base dello sviluppo di CouchDB può essere definito con una parola: relax. CouchDB viene fornito con una suite di caratteristiche progettate per ridurre lo sforzo di operare su un sistema distribuito resiliente. Ecco alcune caratteristiche chiave di CouchDB e di come è diverso dagli altri database NoSQL.

Replica di CouchDB

Una delle caratteristiche 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 fonte e assicura che tutte le copie del database rimangano sincronizzate con le informazioni più aggiornate. Questo permette a più repliche di database di essere auto-contenute e gestite pur ospitando informazioni accurate e in tempo reale su più ambienti di calcolo.

Viste CouchDB

CouchDB utilizza le viste come strumento principale per l'esecuzione di query e la creazione di rapporti da file di documenti memorizzati. Le viste permettono di filtrare i documenti per trovare informazioni rilevanti per un particolare processo del database. Queste informazioni possono poi essere mappate secondo le tue preferenze ed estratte in un ordine specifico.

La bellezza di CouchDB sta nella 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 è possibile 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 i normali dati memorizzati.

Un'altra caratteristica importante di CouchDB è la presenza di Apache MapReduce per creare potenti indici che individuano facilmente i documenti in base a uno qualsiasi dei valori in essi contenuti. Puoi poi usare questi indici per stabilire relazioni tra un documento e l'altro e fare una varietà di calcoli basati su queste connessioni.

API HTTP

CouchDB usa una API RESTful 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 pur rimanendo altamente accessibile.

Costruita per l'offline

Quando stai scalando l'usabilità e l'accessibilità del tuo database, è essenziale essere in grado di costruire applicazioni che funzionano bene sia offline che online. CouchDB permette alle applicazioni di memorizzare i dati raccolti localmente su dispositivi mobili e browser, poi sincronizza quei dati una volta che è di nuovo online.

Archiviazione efficiente dei documenti

In CouchDB i documenti sono le unità primarie di dati utilizzati in JSON, composti da vari campi e allegati per un'archiviazione facile. Non c'è limite alla dimensione del testo o al numero di elementi di ogni documento e i dati possono essere accessibili e aggiornati da più fonti di database e attraverso server-cluster distribuiti globalmente.

Compatibilità

CouchDB è estremamente accessibile e offre una varietà di vantaggi di compatibilità quando è integrato con la tua infrastruttura esistente. CouchDB è stato scritto in Erlang (un linguaggio di programmazione generale, concorrente, garbage-collected e un sistema di runtime) rendendolo affidabile e facile da maneggiare per gli sviluppatori.

A causa delle sue capacità 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.


CouchDB e IBM

IBM è da lungo tempo sostenitrice delle comunità open source, specialmente quando si tratta dello sviluppo della tecnologia di gestione dei database.

IBM Cloudant è un database distribuito completamente gestito e scalabile costruito sulla base di Apache CouchDB. Permette agli utenti di accedere ai loro dati in qualsiasi momento e ovunque, affidandosi agli esperti IBM per fornire un servizio cloud completamente gestito e supportato da SLA. IBM ha reso open-source molte caratteristiche nella comunità Apache CouchDB, tra cui il clustering, la ricerca full-text, il linguaggio Mango Query e la dashboard di amministrazione Fauxton.

IBM sfrutta la sua rete globale di cloud assieme alla compatibilità e alla flessibilità di CouchDB per fornire alle imprese una soluzione scalabile per soluzioni di replica e archiviazione dei dati sicure e durature in ambienti di cloud computing in tutto il mondo.

IBM Cloudant utilizza il pieno potenziale di CouchDB eliminando la complessità per gli sviluppatori che distribuiscono sistemi di gestione di database e creando un modo conveniente per le aziende di scalare le loro applicazioni attuali.

Per ulteriori informazioni su Apache CouchDB, dai uno sguardo a "Approfondimenti sul database: CouchDB".

Registrati per avere un IBMid e crea il tuo account IBM Cloud.


Soluzioni correlate

IBM Cloudant

Il data layer per applicazioni hyperscale, resilienti e disponibili a livello globale, basato su Apache CouchDB open source.