Informazioni sui database relazionali distribuiti

SI APPLICA A: Azure Cosmos DB for PostgreSQL (basato su estensione database Citus per PostgreSQL)

Azure Cosmos DB è una piattaforma di database distribuiti a livello globale per database NoSQL e relazionali su qualsiasi scala. Questo articolo illustra i database distribuiti nel contesto dell'opzione dell'API relazionale di Azure Cosmos DB.

Per altre informazioni sulle opzioni di archiviazione dei dati disponibili in Azure, vedere Scegliere l'archivio dati appropriato nel Centro architetture di Azure.

Sfide

Molte volte, quando si legge di carichi di lavoro in grandi volumi o altamente transazionali, è facile pensare che siano molto più grandi di quelli che l'applicazione potrebbe gestire. Il presupposto che il carico di lavoro rimanga piccolo può essere valido all'inizio di un progetto, di un'idea o di un'organizzazione. Tuttavia, può portare rapidamente a uno scenario in cui il carico di lavoro dell'applicazione cresce molto al di sopra delle previsioni. Non è insolito sentir parlare di carichi di lavoro che soddisfano la velocità effettiva massima o di una potenza di elaborazione del database a istanza singola che era economica ed efficiente all'inizio di un progetto.

Database relazionali

I database relazionali organizzano i dati in un formato tabulare (riga/colonna) con relazioni tra tabelle diverse nei database. I database relazionali sono comuni in varie aziende. Queste aziende hanno spesso un'abbondanza di sviluppatori di software che hanno scritto codice per un database relazionale o di amministratori che progettano schemi e gestiscono piattaforme di database relazionali. I database relazionali supportano spesso anche transazioni con garanzie ACID.

Purtroppo, molti sistemi di database relazionali vengono inizialmente configurati dalle organizzazioni in modalità a nodo singolo con vincoli superiori sulle risorse di calcolo, memoria e rete. Questo contesto può portare al presupposto errato che tutti i database relazionali siano a nodo singolo per loro stessa natura.

Database distribuiti

Con molti white paper nativi del cloud, si sente spesso parlare dei vantaggi dei database NoSQL, facendo sembrare che i database relazionali non siano una scelta ragionevole per database su larga scala o carichi di lavoro distribuiti. Sebbene molti database distribuiti non sono relazionali, sono disponibili opzioni per i carichi di lavoro di database relazionali distribuiti.

Molte di queste opzioni per i database relazionali distribuiti richiedono all'organizzazione di pianificare una distribuzione su larga scala fin dall'inizio del progetto. Questo requisito di pianificazione può aggiungere una complessità significativa all'inizio di un progetto per assicurarsi che tutti i nodi server pertinenti siano configurati, gestiti e supportati dal team. I requisiti di pianificazione, implementazione e rete per un database relazionale distribuito a livello globale possono diventare molto più complessi rispetto a una singola istanza (o nodo).

Azure Cosmos DB

Azure Cosmos DB è una piattaforma di database che offre API per dati distribuiti in entrambe le varianti NoSQL e relazionale. In particolare, l'API relazionale per Azure Cosmos DB si basa su PostgreSQL e sull'estensione Citus.

Citus è un'estensione di PostgreSQL che aggiunge il supporto a Postgres per la distribuzione di dati e transazioni. Azure Cosmos DB for PostgreSQL è un servizio completamente gestito, che usa Citus e che offre automaticamente disponibilità elevata senza la necessità di pianificare, gestire e supportare manualmente i singoli nodi server. Con l'API per PostgreSQL, è possibile iniziare con un cluster a nodo singolo completamente gestito, creare la soluzione di database e quindi ridimensionarla in modalità chiavi in mano man mano che le esigenze dell'applicazione aumentano nel corso del tempo. Con l'API per PostgreSQL, non è necessario pianificare in anticipo un progetto di distribuzione complesso o pianificare un progetto per eseguire la migrazione dei dati da un database a nodo singolo a un database distribuito in seguito.

Passaggi successivi

Si vuole iniziare a usare Azure Cosmos DB?