Condividi tramite


Informazioni sui modelli di dati

Le soluzioni moderne gestiscono dati diversi, ad esempio transazioni, eventi, documenti, telemetria, asset binari e fatti analitici. Un singolo archivio dati soddisfa raramente tutti i modelli di accesso in modo efficiente. La maggior parte dei sistemi di produzione adotta la persistenza poliglotta, il che significa che si selezionano più modelli di archiviazione. Questo articolo centralizza le definizioni canoniche dei modelli di archivio dati primari disponibili in Azure e fornisce tabelle comparative per accelerare la selezione dei modelli prima di scegliere servizi specifici.

Usare la procedura seguente per selezionare i modelli di dati:

  1. Identificare i modelli di accesso al carico di lavoro, ad esempio letture puntuali, aggregazioni, full-text, somiglianza, scansioni basate su finestre temporali e recapito di oggetti.

  2. Associare i modelli agli schemi di storage nelle sezioni seguenti.

  3. Creare un elenco di servizi di Azure che implementano tali modelli.

  4. Applicare criteri di valutazione, ad esempio coerenza, latenza, scalabilità, governance e costi.

  5. Combinare modelli solo in cui i modelli di accesso o i cicli di vita divergono chiaramente.

Come usare questa guida

Ogni sezione del modello include una definizione concisa, carichi di lavoro tipici, caratteristiche dei dati, scenari di esempio e collegamenti a servizi rappresentativi di Azure. Ogni sezione include anche una tabella che consente di scegliere il servizio di Azure appropriato per il caso d'uso. In alcuni casi, è possibile usare altri articoli per fare scelte più informate sulle opzioni del servizio di Azure. Le rispettive sezioni del modello fanno riferimento a tali articoli.

Due tabelle comparativhe riepilogano i tratti del modello non relazionale per consentire di valutare rapidamente le opzioni senza ripetere il contenuto tra le sezioni.

Panoramica della classificazione

Categoria Scopo principale Esempi tipici di servizio di Azure
Relazionale (OLTP) Operazioni transazionali coerenti Database SQL di Azure, Database di Azure per PostgreSQL o Database di Azure per MySQL
Non relazionale, ad esempio documento, chiave-valore, famiglia di colonne e grafico Carichi di lavoro flessibili incentrati sullo schema o sulle relazioni API di Azure Cosmos DB, Redis gestito di Azure, Cassandra gestita di Azure o HBase
Serie temporale Metriche ed eventi con timestamp di inserimento elevato Esplora dati di Azure
Oggetto e file Archiviazione di file binari o semistrutturati di grandi dimensioni Archiviazione BLOB di Azure o Archiviazione Data Lake di Azure
Ricerca e indicizzazione Pertinenza a testo completo e a campi multipli, indicizzazione secondaria Ricerca di intelligenza artificiale di Azure
Vector Somiglianza semantica o approssimata del vicino più prossimo (ANN) Ricerca di intelligenza artificiale di Azure o varianti di Azure Cosmos DB
Analisi, elaborazione analitica online (OLAP), elaborazione parallela elevata (MPP) Aggregazione cronologica su larga scala o business intelligence (BI) Microsoft Fabric, Esplora dati di Azure, Azure Analysis Services o Azure Databricks

Annotazioni

Un singolo servizio può fornire più modelli, noti anche come multimodello. Scegliere il modello più adatto invece di combinare i modelli in modo da complicare le operazioni.

Archivi dati relazionali

I sistemi di gestione di database relazionali organizzano i dati in tabelle normalizzate usando schema-on-write. Applicano l'integrità e supportano le transazioni ACID (atomicità, coerenza, isolamento e durabilità) e le query SQL avanzate.

Punti di forza: Coerenza transazionale a più righe, join complessi, vincoli relazionali sicuri e strumenti avanzati per la creazione di report, amministrazione e governance.

Considerazioni: La scalabilità orizzontale richiede in genere il partizionamento o la suddivisione in shard, e la normalizzazione può aumentare il costo di join per le viste denormalizzate orientate alla lettura.

Carichi: Gestione degli ordini, rilevamento inventario, registrazione contabilità finanziaria, fatturazione e report operativi.

Selezionare un servizio di Azure per gli archivi dati relazionali

  • Il database SQL è un database relazionale gestito per le applicazioni cloud moderne che usano il motore di SQL Server.

  • Azure SQL Managed Instance è un ambiente SQL Server quasi completo nel cloud ideale per le migrazioni lift-and-shift.

  • Il database SQL (Hyperscale) è un livello SQL altamente scalabile progettato per carichi di lavoro di grandi dimensioni con scalabilità automatica rapida e backup rapidi.

  • Database di Azure per PostgreSQL è un servizio PostgreSQL gestito che supporta estensioni open source e opzioni di distribuzione flessibili.

  • Database di Azure per MySQL è un database MySQL gestito per app Web e carichi di lavoro open source.

  • Il database SQL in Fabric è un database transazionale descrittivo per gli sviluppatori, basato sul database SQL, che è possibile usare per creare facilmente un database operativo in Fabric.

Usare la tabella seguente per determinare quale servizio di Azure soddisfa i requisiti del caso d'uso.

Servizio Ideale per Funzionalità principali Caso d'uso di esempio
Database SQL Applicazioni native del cloud Gestiti in modo autonomo, pool elastici, Hyperscale, elevata disponibilità integrata, sicurezza avanzata Creazione di un'applicazione SaaS (Software as a Service) moderna usando un back-end SQL scalabile
Istanza gestita di SQL Applicazioni aziendali legacy Compatibilità completa di SQL Server, supporto lift-and-shift, reti virtuali, controllo avanzato Migrazione di un'app SQL Server locale usando modifiche minime al codice
Database SQL (Hyperscale) Distribuzione globale Scalabilità in lettura in più aree, replica geografica, scalabilità automatica rapida Gestione di un'app distribuita a livello globale che richiede una velocità effettiva di lettura elevata
Database di Azure per PostgreSQL Attività di analisi open source PostGIS, Hyperscale, Server Flessibile, estensioni open source Sviluppo di un'app di analisi geospaziale con PostgreSQL e PostGIS
Database di Azure per MySQL App Web leggere e veloci Server flessibile, compatibilità open source, conveniente Hosting di un sito di e-commerce basato su WordPress
SQL Database in Fabric Carichi di lavoro OLTP (Online Transaction Processing) nell'ecosistema fabric Basato sul motore di database SQL, scalabile e integrato in Fabric Creazione di app di intelligenza artificiale in un modello di dati relazionale operativo che include funzionalità di ricerca vettoriale nativa

Archivi dati non relazionali

Database non relazionali, detti anche database NoSQL, ottimizzano per schemi flessibili, scalabilità orizzontale e modelli di accesso o aggregazione specifici. In genere consentono di ridurre alcuni aspetti del comportamento relazionale, ad esempio la rigidità dello schema e l'ambito delle transazioni, per la scalabilità o l'agilità.

Archivi di dati di documenti

Usare gli archivi dati dei documenti per archiviare documenti semistrutturati, spesso in formato JSON, in cui ogni documento include campi e dati denominati. I dati possono essere semplici valori o elementi articolati, ad esempio elenchi e raccolte figlie. La flessibilità dello schema per documento consente un'evoluzione graduale.

Punti di forza: Mapping di oggetti dell'applicazione naturale, aggregazioni denormalizzate, indicizzazione multicampo

Considerazioni: Crescita delle dimensioni dei documenti, ambito transazionale selettivo, necessità di un'attenta progettazione della forma dei dati per le query su larga scala

Carichi: Cataloghi di prodotti, gestione dei contenuti, archivi profili

Selezionare un servizio di Azure per gli archivi dati dei documenti

  • Azure Cosmos DB per NoSQL è un database NoSQL senza schema e in più aree con letture e scritture a bassa latenza.

  • Azure DocumentDB è un database distribuito a livello globale con compatibilità e scalabilità automatica del protocollo di collegamento MongoDB.

  • Azure Cosmos DB in Fabric è un database NoSQL senza schema con letture e scritture a bassa latenza, gestione semplificata e analisi integrate di Fabric.

Usare la tabella seguente per determinare quale servizio di Azure soddisfa i requisiti del caso d'uso.

Servizio Ideale per Funzionalità principali Caso d'uso di esempio
Azure Cosmos DB per NoSQL Modelli di documento JSON personalizzati che supportano query simili a SQL Linguaggio di query avanzato, scritture in più aree, durata (TTL), feed di modifiche Creazione di una piattaforma SaaS multi-tenant che supporta schemi flessibili
Azure DocumentDB App che usano driver MongoDB o API incentrate su JSON Distribuzione globale, scalabilità automatica, protocollo di collegamento nativo mongoDB Migrazione di un'app Node.js da MongoDB ad Azure
Azure Cosmos DB in Fabric Analisi in tempo reale sui dati NoSQL Estrazione automatica, trasformazione e caricamento (ETL) in OneLake tramite l'integrazione di Fabric App transazionali che includono dashboard analitici in tempo reale

Archivi dati a colonne-famiglia

Un database a famiglia di colonne, noto anche come database a colonne larghe, archivia dati sparsi in righe e organizza le colonne dinamiche in famiglie di colonne per supportare l'accesso congiunto. L'orientamento delle colonne migliora le analisi sui set di colonne selezionati.

Punti di forza: Velocità effettiva di scrittura elevata, recupero efficiente di set di dati wide o sparse, schema dinamico all'interno di famiglie

Considerazioni: La progettazione anticipata delle chiavi di riga e delle famiglie di colonne, il supporto degli indici secondari varia, la flessibilità delle query inferiore a quella relazionale

Carichi di lavoro: Telemetria di Internet delle cose (IoT), personalizzazione, pre-aggregazione delle analisi, dati voluminosi in stile serie temporale quando non si utilizza un database dedicato alle serie temporali.

Selezionare un servizio di Azure per gli archivi dati della famiglia di colonne

Usare la tabella seguente per determinare quale servizio di Azure soddisfa i requisiti del caso d'uso.

Servizio Ideale per Funzionalità principali Caso d'uso di esempio
Istanza gestita di Azure per Apache Cassandra Carichi di lavoro Cassandra nuovi ed migrati Apache Cassandra gestito e nativo Acquisizione dei dati di telemetria dei dispositivi IoT che supporta la compatibilità con Cassandra
Apache HBase in HDInsight Ecosistema Hadoop, analisi batch Integrazione di Hadoop Distributed File System (HDFS), elaborazione batch su larga scala Elaborazione batch dei dati dei sensori in un impianto di produzione
Esplora dati di Azure (Kusto) Dati di telemetria ad alto volume, analisi delle serie temporali KQL, query ad hoc veloci, funzioni di finestra temporale Analisi in tempo reale per i log e le metriche delle applicazioni

Archivi dati chiave-valore

Un archivio dati chiave-valore associa ogni valore di dati a una chiave univoca. La maggior parte degli archivi chiave-valore supporta solo semplici operazioni di query, inserimento ed eliminazione. Per modificare un valore parzialmente o completamente, un'applicazione deve sovrascrivere i dati esistenti per l'intero valore. Nella maggior parte delle implementazioni, la lettura o la scrittura di un singolo valore è un'operazione atomica.

Punti di forza: Semplicità, bassa latenza, scalabilità lineare

Considerazioni: Espressività limitata delle query, riprogettazione necessaria per le ricerche basate su valori, costi di sovrascrittura di valori elevati

Carichi di lavoro: Memorizzazione nella cache, sessioni, flag di funzionalità, profili utente, consultazioni di raccomandazioni

Selezionare un servizio di Azure per gli archivi dati chiave-valore

  • Redis gestito di Azure è un archivio dati in memoria gestito basato sulla versione più recente di Redis Enterprise che offre bassa latenza e velocità effettiva elevata.

  • Azure Cosmos DB per tabella è un archivio chiave-valore ottimizzato per l'accesso rapido ai dati NoSQL strutturati.

  • Azure Cosmos DB per NoSQL è un archivio dati dei documenti ottimizzato per l'accesso rapido ai dati NoSQL strutturati e offre scalabilità orizzontale.

Usare la tabella seguente per determinare quale servizio di Azure soddisfa i requisiti del caso d'uso.

Servizio Ideale per Funzionalità principali Caso d'uso di esempio
Redis Gestito di Azure Memorizzazione nella cache ad alta velocità, stato della sessione, pubblica-sottoscrivi Archivio in memoria, latenza sub-millisecondi, protocollo Redis Memorizzazione nella cache delle pagine del prodotto per un sito di e-commerce
Azure Cosmos DB per tabella Migrazione dei carichi di lavoro di Archiviazione Table di Azure esistenti Compatibilità dell'API di archiviazione tabelle Archiviazione delle preferenze e delle impostazioni utente in un'app per dispositivi mobili
Azure Cosmos DB per NoSQL Memorizzazione nella cache ad alta velocità con ampia scalabilità e alta disponibilità Scalabilità automatica senza schema, in più aree Memorizzazione nella cache, stato della sessione, livello di servizio

Archivi dati del grafo

Un database a grafo archivia le informazioni come nodi e archi. Gli archi definiscono le relazioni e i nodi e i bordi possono avere proprietà simili alle colonne della tabella. È possibile analizzare le connessioni tra entità, ad esempio dipendenti e reparti.

Punti di forza: Modelli di query di tipo relationship-first, attraversamenti efficienti di profondità variabile

Considerazioni: Sovraccarico se le relazioni sono superficiali, richiede un'attenta modellazione per le prestazioni, non ideale per le analisi di massa

Carichi di lavoro: Reti sociali, anelli di frode, grafi della conoscenza, dipendenze della catena di fornitura

Selezionare un servizio di Azure per gli archivi di dati grafici

Usare le estensioni del grafo di SQL Server per l'archiviazione dei dati del grafo. L'estensione del grafo estende le funzionalità di SQL Server, database SQL e Istanza gestita di SQL per abilitare la modellazione e l'esecuzione di query su relazioni complesse usando strutture del grafo direttamente all'interno di un database relazionale.

Archivi di dati delle serie temporali

Gli archivi dati delle serie temporali gestiscono un set di valori organizzati in base all'ora. Supportano funzionalità come query e aggregazioni basate sul tempo e sono ottimizzate per l'inserimento e l'analisi di grandi volumi di dati quasi in tempo reale.

Punti di forza: Compressione, prestazioni delle query su finestre, gestione dell'ingestione fuori ordine

Considerazioni: Gestione della cardinalità dei tag, costi di conservazione, strategia di riduzione del campionamento

Carichi: Metriche dei sensori IoT, dati di telemetria delle applicazioni, monitoraggio, dati industriali

Selezionare un servizio di Azure per gli archivi dati delle serie temporali

Usare Esplora dati di Azure per archiviare i dati delle serie temporali. Esplora dati di Azure è una piattaforma di analisi dei Big Data gestita e ad alte prestazioni che semplifica l'analisi di volumi elevati di dati quasi in tempo reale.

Memorizzazione dati ad oggetti

Archiviare oggetti binari di grandi dimensioni o semistrutturati e includere metadati che raramente cambiano o rimangono non modificabili.

Punti di forza: Scalabilità virtualmente illimitata, costo a livelli, durabilità, funzionalità di lettura parallela

Considerazioni: Operazioni di interi oggetti, query di metadati limitate, comportamenti di elenco finale

Carichi: Asset multimediali, backup, zone grezze del data lake, archivi di registri

Selezionare un servizio di Azure per gli archivi dati oggetto

  • Data Lake Storage è un archivio oggetti ottimizzato per Big Data che combina lo spazio dei nomi gerarchico e la compatibilità HDFS per l'analisi avanzata e l'elaborazione dei dati su larga scala.

  • Archiviazione BLOB è un archivio oggetti scalabile per dati non strutturati come immagini, documenti e backup che includono l'accesso a livelli per l'ottimizzazione dei costi.

Usare la tabella seguente per determinare quale servizio di Azure soddisfa i requisiti del caso d'uso.

Servizio Ideale per Funzionalità principali Caso d'uso di esempio
Data Lake Storage Analisi dei Big Data e dati gerarchici HDFS, spazio dei nomi gerarchico, ottimizzato per l'analisi Archiviazione ed esecuzione di query su petabyte di dati strutturati e non strutturati tramite Azure Data Factory o Azure Databricks
Archiviazione BLOB Archiviazione di oggetti per utilizzo generico Spazio dei nomi flat, API REST semplice e archiviazione a livelli che include caldo, freddo e archivio Hosting di immagini, documenti, backup e contenuto di siti Web statici

Ricerca e indicizzazione di archivi dati

Un database del motore di ricerca consente alle applicazioni di cercare informazioni in archivi dati esterni. Un database del motore di ricerca può indicizzare volumi elevati di dati e fornire l'accesso quasi in tempo reale a questi indici.

Punti di forza: Query a testo completo, assegnazione di punteggi, analisi linguistica, corrispondenza approssimativa

Considerazioni: Coerenza finale degli indici, pipeline di inserimento o indicizzazione separate, costo degli aggiornamenti di indici di grandi dimensioni

Carichi: Ricerca di siti o prodotti, ricerca log, filtro dei metadati, individuazione multi-attributo

Selezionare un servizio di Azure per cercare gli archivi dati

Per altre informazioni, vedere Scegliere un archivio dati di ricerca in Azure.

Archivi dati di ricerca vettoriale

Gli archivi dati di ricerca vettoriale archiviano e recuperano rappresentazioni vettoriali ad alta dimensione dei dati, spesso generate dai modelli di Machine Learning.

Punti di forza: Ricerca semantica, algoritmi ANN

Considerazioni: Complessità dell'indicizzazione, sovraccarico dell'archiviazione, latenza e accuratezza, problemi di integrazione

Carichi: Ricerca semantica dei documenti, motori di raccomandazione, recupero di immagini e video, frodi e rilevamento anomalie

Selezionare un servizio di Azure per gli archivi dati di ricerca vettoriale

Per altre informazioni, vedere Scegliere un servizio di Azure per la ricerca vettoriale.

Archivi di dati analitici

Gli archivi di dati analitici archiviano grandi quantità di dati e li mantengono persistenti per tutto il ciclo di vita della pipeline di analisi.

Punti di forza: Calcolo e archiviazione scalabili, supporto per SQL e Spark, integrazione con strumenti bi, serie temporali e analisi dei dati di telemetria

Considerazioni: Costi e complessità dell'orchestrazione, latenza delle query per carichi di lavoro ad hoc, governance in più domini di dati

Carichi: Creazione di report aziendali, analisi di Big Data, aggregazione dei dati di telemetria, dashboard operativi, pipeline di data science

Selezionare un servizio di Azure per gli archivi dati di analisi

Per altre informazioni, vedere Scegliere un archivio dati analitici in Azure.

Caratteristiche comparative (modelli non relazionali principali)

Aspetto Documento Famiglia di colonne Chiave-valore Graph
Normalizzazione Denormalizzato Denormalizzato Denormalizzato Relazioni normalizzate
Approccio allo schema Schema durante la lettura Famiglie di colonne definite, schema delle colonne in lettura Schema durante la lettura Schema durante la lettura
Coerenza (tipica) Ottimizzabile per ogni articolo Per ogni riga o famiglia Per ogni chiave Per ogni bordo o semantica trasversale
Ambito di atomicità Documento Riga o famiglia, a seconda dell'implementazione della tabella Chiave singola Transazione a grafo (variabile)
Blocco e concorrenza Ottimistica (ETag) Pessimistico o ottimistico, a seconda dell'implementazione Ottimistico (chiave) Ottimistico (modello)
Modello di accesso Aggregazione (entità) Aggregazioni sparse ampie Ricerca puntuale per chiave Percorsi delle relazioni
Indicizzazione Primario e secondario Primario e secondario limitato Primaria (chiave) Primario e talvolta secondario
Struttura dati Gerarchico flessibile Larghezza tabulare di tipo sparse Valore opaco Nodi e bordi
Idoneità dispersa/ampia Sì/Sì Sì/Sì Sì/No No/No
Dimensioni tipiche delle datum Piccolo-medio Medio-grande Piccola Piccola
Dimensione di scala Numero di partizioni Larghezza della partizione e della famiglia di colonne Spazio chiave Numero di nodi o bordi

Caratteristiche comparative (modelli non relazionali specializzati)

Aspetto Serie temporale Oggetto (BLOB) Ricerca/indicizzazione
Normalizzazione Normalizzato Denormalizzato Denormalizzato
Schema Schema in lettura (tags) Valore opaco e metadati Schema alla scrittura (mappatura degli indici)
Ambito di atomicità N/A (accodamento) Oggetto Per ogni operazione sui documenti o sugli indici.
Modello di accesso Analisi delle sezioni temporali, aggregazione delle finestre Operazioni di interi oggetti Query e filtri di testo
Indicizzazione Ora e secondario facoltativo Solo chiave (percorso) Facette invertite e facoltative
Struttura dati Tabulare (timestamp, tag, valore) Binario o BLOB con metadati Testo con token e campi strutturati
Scrivere il profilo Accodamento ad alta frequenza Aggiornamenti in blocco o non frequenti Indice batch o di streaming
Leggere il profilo Intervalli aggregati Download completi o parziali Set di risultati classificati
Driver di crescita Frequenza degli eventi moltiplicata per permanenza Conteggio e dimensioni degli oggetti Volume dei documenti indicizzati
Tolleranza di consistenza Eventuale per i dati in ritardo Lettura/dopo scrittura per ogni oggetto Eventuale per i nuovi documenti

Scegliere tra modelli (euristica)

Bisogno Preferire
Transazioni con più entità rigorose Relazionale
Evoluzione della forma di aggregazione, API incentrate su JSON Documento
Ricerche di chiave o memorizzazione nella cache a bassissima latenza Chiave-valore
Telemetria ampia, diradata, con elevato numero di scritture Famiglia di colonne o serie temporali
Esplorazione profonda delle relazioni Graph
Analisi storiche massicce Analisi o OLAP
File binari non strutturati di grandi dimensioni o zone lake Oggetto
Pertinenza e filtro testo completo Ricerca e indicizzazione
Metriche di alto tasso di ingestione dei timestamp con query a finestre Serie temporale
Somiglianza rapida (semantica o vettore) Ricerca vettoriale

Combinare modelli ed evitare insidie

Usare più di un modello quando si applicano gli scenari seguenti:

  • Gli schemi di accesso divergono, ad esempio la ricerca puntuale rispetto alla scansione analitica ampia e alla rilevanza del testo completo.
  • Il ciclo di vita e la conservazione differiscono, come nel caso dei dati grezzi immutabili rispetto ai dati strutturati curati.
  • Conflitto tra latenza e requisiti di velocità effettiva.

Evitare la frammentazione prematura:

  • Usare un servizio quando soddisfa ancora gli obiettivi di prestazioni, scalabilità e governance.
  • Centralizzare la logica di classificazione condivisa ed evitare pipeline di trasformazione duplicate tra gli archivi, a meno che non sia necessario.

Prestare attenzione ai seguenti antipattern comuni:

  • Più microservizi condividono un database, che crea l'accoppiamento.
  • Teams aggiunge un altro modello senza maturità operativa, ad esempio il monitoraggio o i backup.
  • Un indice di ricerca diventa l'archivio dati primario, che comporta un uso improprio.

Quando rivalutare la scelta del modello

Segnale Azione possibile
L'aumento dei join ad hoc in un archivio di documenti Introduzione al modello di lettura relazionale
Cpu elevata nell'indice di ricerca a causa di aggregazioni analitiche Trasferire al motore di analisi
I documenti denormalizzati di grandi dimensioni creano contenzione su aggiornamenti parziali Rimodellare le aggregazioni o suddividere
Le query di intervallo di tempo sono lente nel column family store. Adottare un database time series appositamente creato
La latenza di ricerca dei punti aumenta con la profondità di attraversamento del grafico Aggiungere viste materializzate derivate

Passaggi successivi

Usare gli articoli seguenti per scegliere un archivio dati specializzato:

Informazioni sulle architetture di riferimento che usano i servizi di Azure in questo articolo: