Che cos'è Azure Cosmos DB for NoSQL
Si inizierà con alcune definizioni e una rapida presentazione di Azure Cosmos DB for NoSQL. Questa panoramica dovrebbe aiutare a capire se Azure Cosmos DB è la soluzione adatta per il proprio lavoro.
Che cos'è un database NoSQL?
Gli sviluppatori richiedono nuovi tipi di database in grado di soddisfare le particolari sfide delle app moderne. I database NoSQL sono stati progettati per soddisfare esigenze quali:
- Volumi elevati di dati.
- Dati con una grande quantità di origini e moduli diversi.
- Schemi di dati dinamici che archiviano tipi diversi di dati.
- Uso di dati ad alta velocità e/o in tempo reale.
I database NoSQL vengono definiti dalle caratteristiche comuni che condividono anziché da una definizione formale specifica. Queste caratteristiche includono:
- È un archivio dati non relazionale.
- È progettato per l'aumento del numero di istanze.
- Non prevede l'applicazione di uno schema specifico.
I database NoSQL non applicano in genere vincoli relazionali né blocchi sui dati, di conseguenza velocizzano le operazioni di scrittura. Sono spesso progettati anche per la scalabilità, tramite partizionamento orizzontale o semplice, che consente di garantire prestazioni elevate indipendentemente dalle dimensioni.
Anche se esistono molti modelli di dati NoSQL, quando si modellano i dati in un database NoSQL in genere si usano quattro grandi famiglie di modelli di dati:
Più avanti ci si concentrerà sul modello di dati supportato da Azure Cosmos DB for NoSQL, ovvero il modello di dati del documento.
Perché usare un database NoSQL con il modello di dati del documento?
Il modello di dati del documento suddivide i dati in singole entità documento. Un documento può essere qualsiasi tipo di dati strutturati, ma viene comunemente usato JSON come formato dati. Azure Cosmos DB for NoSQL supporta JSON in modo nativo.
Un documento è un'entità atomica e può avere un proprio modulo dati, indipendentemente da ciò che è archiviato in altri documenti nello stesso database. Grazie a questa flessibilità, non è necessario uno schema predefinito che semplifichi e velocizzi la creazione di nuove applicazioni. Inoltre, questa flessibilità consente scenari in cui diversi tipi di dati possono essere archiviati insieme e in cui i modelli possono evolversi nel corso della durata di un'applicazione.
Che cos'è un documento JSON?
JavaScript Object Notation, o JSON, è un formato dati leggero. JSON è stato creato per essere altamente compatibile con la notazione letterale di un oggetto nel linguaggio JavaScript. Molti framework, browser e anche database supportano JavaScript in modo nativo, per questo JSON è uno dei formati più diffusi per la trasmissione e l'archiviazione dei dati.
Ecco un esempio di documento JSON:
{
"device": {
"type": "mobile"
},
"sentTime": "2019-11-12T13:08:42",
"spoolRefs": [
"6a86682c-be5a-4a4a-bacd-96c4d1c7ece6",
"79e78fe2-93aa-4688-89db-a7278b034aa6"
]
}
Come si può vedere, JSON è un formato di dati relativamente leggibile che espone chiaramente il contenuto. JSON è anche relativamente facile da analizzare e usare nelle applicazioni JavaScript.
Che cos'è Azure Cosmos DB for NoSQL?
Azure Cosmos DB per NoSQL è un servizio di database NoSQL e vettoriale veloce che offre query avanzate su dati diversi e supporta una nuova generazione di applicazioni di intelligenza artificiale generative. È utile per ottenere prestazioni configurabili e affidabili, è distribuita globalmente e velocizza i tempi di sviluppo.
L'API NoSQL è l'API principale o nativa usata con i documenti. L'API NoSQL supporta uno sviluppo rapido e flessibile usando documenti JSON, un linguaggio di query con una sintassi familiare e librerie client per i linguaggi di programmazione più diffusi. Azure Cosmos DB offre anche funzionalità uniche, ad esempio l'indicizzazione e la ricerca di vettori, che consentono agli utenti di creare una nuova generazione di applicazioni di intelligenza artificiale generative sui dati degli utenti che possono essere ridimensionati rapidamente in modo efficiente.
Azure Cosmos DB for NoSQL presenta alcuni vantaggi, ad esempio:
- Database vettoriale leader del settore con indicizzazione vettoriale e ricerca progettata per gestire vettori altamente dimensionali, consentendo una ricerca vettoriale efficiente e accurata su qualsiasi scala.
- Velocità garantita su qualsiasi scala anche in caso di picco, con elasticità immediata e illimitata, operazioni di lettura rapide e scritture multimaster, ovunque nel mondo.
- Sviluppo rapido e flessibile di app con SDK per linguaggi e framework più diffusi, ad esempio .NET, Java, Python, JavaScript e GO, nonché analisi no-ETL (estrazione, trasformazione, caricamento).
- Pronta per applicazioni cruciali con continuità aziendale garantita, disponibilità del 99,999% e sicurezza a livello aziendale.
- Completamente gestito ed economico con un'offerta serverless completa, nonché scalabilità immediata, automatica e dinamica che risponde alle esigenze dell'applicazione.
Queste funzionalità rendono Azure Cosmos DB la soluzione ideale per lo sviluppo di applicazioni moderne. Azure Cosmos DB for NoSQL è particolarmente adatto per le applicazioni che:
- Sono caratterizzate da picchi e cadute imprevedibili del traffico
- Generano una grande quantità di dati
- Devono offrire esperienze in tempo reale agli utenti
- Sono critiche in termini di continuità aziendale
Azure Cosmos DB for NoSQL può archiviare documenti JSON nativi con schema flessibile. I dati vengono indicizzati automaticamente e sono disponibili per le query usando una versione del linguaggio di query SQL progettato per i dati JSON. È possibile accedere all'API NoSQL tramite SDK per framework comuni, ad esempio .NET, Python, Java, Node.js e GO