Condividi tramite


Determinazione del tipo di applicazione per Azure Cosmos DB per PostgreSQL

SI APPLICA A: Azure Cosmos DB for PostgreSQL (con tecnologia basata sull'estensione di database Citus per PostgreSQL)

L'esecuzione di query efficienti in un cluster richiede che le tabelle vengano distribuite correttamente tra server. La distribuzione consigliata varia in base al tipo di applicazione e ai relativi modelli di query.

Esistono due tipi di applicazioni che funzionano bene in Azure Cosmos DB per PostgreSQL. Il primo passaggio della modellazione dei dati consiste nell'identificare quali sono più simili all'applicazione.

Riepilogo

Applicazioni multi-tenant Applicazioni in tempo reale
Qualche volta dozzine o centinaia di tabelle nello schema Numero ridotto di tabelle
Query relative a un tenant (società/archivio) alla volta Query di analisi relativamente semplici con aggregazioni
Carichi di lavoro OLTP per servire i client Web Inserimento di un elevato volume di dati essenzialmente invariabili
Carichi di lavoro OLAP per servire query analitiche per singolo tenant Spesso incentrate su una grande tabella di eventi

Esempi e caratteristiche

Applicazione multi-tenant

Si tratta in genere di applicazioni SaaS che servono altre aziende, account o organizzazioni. La maggior parte delle applicazioni SaaS è intrinsecamente relazionale. Hanno una dimensione naturale su cui distribuire i dati tra i nodi: solo partizionamento per tenant_id.

Azure Cosmos DB per PostgreSQL consente di aumentare il numero di istanze del database a milioni di tenant senza dover riprogettare l'applicazione. È possibile mantenere la semantica relazionale necessaria, ad esempio join, vincoli di chiave esterna, transazioni, ACID e coerenza.

  • Esempi: siti Web che ospitano punti vendita per altre aziende, ad esempio una soluzione di marketing digitale o uno strumento di automazione delle vendite.
  • Caratteristiche: query relative a un singolo tenant anziché unire informazioni tra i tenant. Sono inclusi i carichi di lavoro OLTP per gestire i client Web e i carichi di lavoro OLAP che gestiscono query analitiche per tenant. Avere decine o centinaia di tabelle nello schema del database è anche un indicatore per il modello di dati multi-tenant.

Il ridimensionamento di un'app multi-tenant con Azure Cosmos DB per PostgreSQL richiede anche modifiche minime al codice dell'applicazione. Abbiamo il supporto per framework popolari come Ruby on Rails e Django.

Analisi in tempo reale

Le applicazioni necessitano di un parallelismo massiccio, coordinando centinaia di core per ottenere risultati rapidi a query numeriche, statistiche o di conteggio. Partizionando e parallelizzando query SQL in più nodi, Azure Cosmos DB per PostgreSQL consente di eseguire query in tempo reale in miliardi di record in meno di un secondo.

Le tabelle nei modelli di dati di analisi in tempo reale vengono in genere distribuite da colonne come user_id, host_id o device_id.

  • Esempi: dashboard di analisi rivolti ai clienti che richiedono tempi di risposta secondari.
  • Caratteristiche: poche tabelle, spesso incentrate su un'ampia tabella di eventi dispositivo, sito o utente e che richiedono un volume elevato di inserimento di dati per lo più non modificabili. Query di analisi relativamente semplici (ma a elevato utilizzo di calcolo) che coinvolgono diverse aggregazioni e GROUP BYs.

Se la situazione è simile a quella precedente, il passaggio successivo consiste nel decidere come partizionare i dati nel cluster. La scelta delle colonne di distribuzione dell'amministratore del database deve corrispondere ai modelli di accesso delle query tipiche per garantire le prestazioni.

Passaggi successivi