Esporta (0) Stampa
Espandi tutto

Federazioni in database SQL di Azure

Aggiornamento: aprile 2014

Le federazioni in database SQL di Microsoft Azure (database SQL di Azure) costituiscono un modo per realizzare maggiore scalabilità e gestire le limitazioni di capacità a livello di database dell'applicazione. Una o più tabelle in un database vengono partizionate orizzontalmente in più database noti come membri di federazione. Questo tipo di partizionamento orizzontale spesso è definito 'sharding'. In questo argomento viene fornita una panoramica sulle federazioni.

ImportantImportante
L'implementazione corrente delle federazioni verrà ritirata con i livelli di servizio Web e Business. Valutare l'opportunità di distribuire soluzioni di partizionamento orizzontale personalizzato per ottimizzare la scalabilità, la flessibilità e le prestazioni. Per ulteriori informazioni sul partizionamento orizzontale personalizzato, vedere Scalabilità orizzontale di database SQL di Azure.

Una federazione è una raccolta di partizioni del database definite da un schema di distribuzione della federazione, noto come schema di federazione. Lo schema di federazione definisce una chiave di distribuzione di federazione che determina la distribuzione dei dati alle partizioni all'interno della federazione. La chiave di distribuzione della federazione deve essere una INT, BIGINT, UNIQUEIDENTIFIER o VARBINARY (fino a 900 byte) e specifica un valore di intervallo. In una singola federazione sono consentiti un solo schema di federazione e una sola chiave di distribuzione di federazione.

Le partizioni del database all'interno di una federazione sono note come membri di federazione e ogni membro copre in parte o totalmente l'intervallo dei valori coperti dal tipo di dati della chiave di distribuzione di federazione. Le tabelle federate sono tabelle disseminate tra i membri di federazione. Ogni membro di federazione dispone del proprio schema e contiene le righe della tabella federata che corrispondono all'intervallo del membro di federazione. La raccolta di tutte le righe di un membro della federazione che corrispondono a un valore di chiave di federazione specifico viene chiamata unità atomica della federazione. Ogni membro della federazione può contenere molte unità di questo tipo. È possibile che un membro di federazione contenga anche tabelle di riferimento, ovvero tabelle che non supportano la federazione. Le tabelle di riferimento sono interamente contenute in un membro e spesso contengono informazioni di riferimento recuperate in combinazione con i dati federati.

Un membro di federazione fornisce la separazione fisica tra i dati contenuti e i dati archiviati negli altri membri. Ogni membro di federazione dispone di un proprio schema che può essere temporaneamente differente dallo schema di altri membri a causa dell'elaborazione di un membro specifico, ad esempio l'esecuzione di un aggiornamento dello schema di sequenza in tutti i membri.

Mentre i membri di federazione sono implementati fisicamente come database, a loro si fa logicamente riferimento al livello dell'applicazione come un intervallo di valori di chiave di federazione. Ad esempio, l'accesso a un database del membro di federazione contenente righe associate ai valori di chiave di federazione 50-100 viene eseguito logicamente specificando un valore della chiave all'interno dell'intervallo anziché specificando il nome del database.

L'accesso alle federazioni viene eseguito tramite un database radice di federazione che rappresenta il limite dell'applicazione della federazione. Funziona come endpoint logico affinché le applicazioni si connettano a una federazione indirizzando le connessioni al membro di federazione adatto in base al valore di chiave di federazione specificato. È possibile che ogni database radice contenga più federazioni, ognuna con il proprio schema della federazione. È possibile che contenga anche dati globali, ad esempio utenti, password, ruoli o altri dati specifici dell'applicazione.

Nei diagrammi seguenti vengono illustrati il modello logico e fisico per le federazioni:

In caso di progettazione di una federazione, una delle più importanti decisioni di progettazione è il valore sul quale federarsi. Idealmente si desidera selezionare una chiave che consente di federare dati da più tabelle correlate e pertanto le righe correlate vengono archiviate insieme. Ad esempio, nel caso di un'applicazione multi-tenant è possibile selezionare tenant_id. Le righe all'interno di ogni tabella federata in cui si specifica lo stesso valore tenant_id sarebbero archiviate nella stessa unità atomica della federazione.

È necessario considerare anche come inserire i nuovi record in tale modalità per cui tutti i membri di federazione vengono utilizzati ugualmente, anziché archiviare tutti i nuovi record in un membro. È necessario determinare come distribuire i nuovi dati fra membri di federazione al livello dell'applicazione.

Poiché c'è una separazione fisica dei dati contenuti nei diversi membri di federazione e il Database SQL non supporta le operazioni di join tra database, l'applicazione deve implementare la logica per le operazioni di join ai dati da più membri di federazione o da più federazioni. Ad esempio, per una query che deve creare un join tra i dati di due federazioni sarebbe necessario eseguire query separate per ciascuna e creare un join tra i dati all'interno dell'applicazione. Lo stesso vale per l'aggregazione dei dati tra più partizioni all'interno di una singola federazione, ad esempio il recupero del conteggio di tutte le righe contenute all'interno della federazione.

Una nuova specifica in cui vengono descritte funzionalità SQL aggiuntive per il partizionamento orizzontale dei dati è ora disponibile nella pagina relativa a Microsoft Open Specification Promise. Per ulteriori informazioni, vedere la specifica relativa alle federazioni di database SQL di Azure.

Vedere anche

Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2014 Microsoft