VENDITE: 1-800-867-1389

Migrazione dei dati all'archiviazione BLOB di Azure

Aggiornamento: maggio 2014

Tramite il servizio BLOB di Azure viene consentita l'archiviazione nelle applicazioni di grandi quantità di dati di tipo testo o binari non strutturati, ad esempio file video, audio o di immagini. Nell'archiviazione BLOB sono inclusi zero o più contenitori BLOB e in un contenitore sono inclusi zero o più BLOB. Un BLOB è una singola entità composta da dati binari, ad esempio un file o un'immagine.

Il servizio di archiviazione offre due tipi di BLOB: BLOB in blocchi e BLOB di pagine.

  • Un BLOB in blocchi è costituito da blocchi, ognuno dei quali è identificato da uno specifico ID. Per creare o modificare un BLOB in blocchi, è possibile scrivere un set (o elenco) di blocchi ed eseguirne il commit in base ai relativi ID di blocco. Le dimensioni di ogni blocco possono essere diverse, ma il valore massimo è 4 MB. Le dimensioni massime per un Blob in blocchi sono 200 GB e un Blob in blocchi non può includere più di 50.000 blocchi. Tramite i BLOB in blocchi è possibile inserire, eliminare e riordinare i blocchi all'interno di un BLOB, nonché caricare contemporaneamente più blocchi in un BLOB. Questo tipo di BLOB è progettato per consentire il caricamento e il download efficaci di BLOB di grandi dimensioni. È consigliabile utilizzare il BLOB in blocchi se tramite l'applicazione vengono archiviati file di grandi dimensioni a cui possono accedere più lettori contemporaneamente.

  • Un BLOB di pagine rappresenta una raccolta di pagine da 512 byte ottimizzate per operazioni di lettura e scrittura casuali. A ogni pagina di un BLOB di pagine viene fatto riferimento utilizzando un offset dall'inizio del BLOB. Per aggiungere o aggiornare il contenuto di un Blob di pagine, scrivere una o più pagine specificando un offset e un intervallo allineati entro i limiti di una pagina da 512 byte. Una scrittura in un Blob di pagine può sovrascrivere una sola pagina, alcune pagine o fino a 4 MB del Blob di pagine. L'operazione di scrittura in un BLOB di pagine si verifica in loco e ne viene immediatamente eseguito il commit nel BLOB. Le dimensioni massime del BLOB sono pari a 1 TB e devono essere un multiplo di 512 byte.

Per una panoramica dettagliata dell'archiviazione BLOB, vedere il portale Azure.

Autore: Sreedhar Pelluru
Collaboratore: James Podgorskiani
Revisori: Christian Martinez, Valery Mizonov, Kun Cheng, Steve Howard

Tramite i BLOB in blocchi è possibile caricare, in modo efficiente, BLOB di grandi dimensioni, fino a un massimo di 200 GB. Sono ottimizzati con funzionalità mediante le quali è possibile gestire file di grandi dimensioni nelle reti. Una di queste funzionalità consente di caricare e scaricare più blocchi in parallelo e di determinare la sequenza durante la fase di commit. I BLOB di pagine, d'altro canto, sono ottimizzati per l'accesso in lettura e scrittura casuale in cui le pagine sono conformi a un limite di 512 byte.

Di seguito sono riportati alcuni scenari in cui vengono utilizzati i BLOB di pagine:

  • Applicazione tramite cui viene effettuato l'accesso a file con aggiornamenti basati su intervalli. Tramite l'applicazione il BLOB di pagine viene trattato come file e vengono utilizzati aggiornamenti a intervalli per aggiornare le parti del BLOB che sono state modificate. Per gli aggiornamenti del BLOB di pagine è possibile ottenere un accesso in scrittura esclusivo.

  • Registrazione personalizzata per le applicazioni tramite cui un BLOB di pagine viene trattato come buffer circolare. Quando il BLOB di pagine viene compilato, tramite l'applicazione è possibile iniziare a scrivere dati dall'inizio della struttura BLOB.

Quando si esegue la migrazione delle applicazioni per utilizzare l'archiviazione BLOB di Azure è necessario considerare diversi fattori tra cui:

  • Tipo di dati che può essere memorizzato nell'archiviazione BLOB

  • Modalità di accesso ai dati memorizzati nell'archiviazione BLOB dall'applicazione sottoposta a migrazione

  • Eventuale supporto da parte dell'archiviazione dei requisiti di disponibilità elevata, scalabilità, ripristino di emergenza e sicurezza relativi all'applicazione sottoposta a migrazione

  • Modalità di caricamento dei dati esistenti nell'archiviazione BLOB

Prima di riprogettare l'applicazione in modo che venga utilizzata l'archiviazione BLOB, valutare innanzitutto se questo tipo di archiviazione è appropriato per i dati che si sta tentando di memorizzare. L'archiviazione BLOB è progettata per memorizzare grandi quantità di dati di tipo testo o binari non strutturati, ad esempio documenti, immagini, file audio e video.

L'archiviazione BLOB può anche essere utilizzata per memorizzare file/binari da cui l'applicazione dipende. Archiviando file dipendenti in un BLOB, è possibile aggiornare i file dipendenti senza aggiornare o caricare tutto il file del pacchetto di applicazione (con estensione Cspkg). Grazie a questa operazione è anche possibile disporre di versioni diverse dei file dipendenti in BLOB e applicazioni separati per caricare dinamicamente file dipendenti specifici di una determinata versione.

Il database SQL di Azure supporta il tipo di dati varbinary(max) per consentire l'archiviazione di oggetti di grandi dimensioni nel database. Se tramite l'applicazione vengono archiviati e viene effettuato l'accesso a oggetti binari di grandi dimensioni quali immagini, file audio e video in un database di SQL Server, stabilire se utilizzare il database SQL o l'archiviazione BLOB quando si esegue la migrazione dell'applicazione alla piattaforma Azure.

Se si utilizza l'attributo FILESTREAM in una colonna varbinary per archiviare file di dimensioni superiori a 2 GB in un database di SQL Server, è consigliabile utilizzare l'archiviazione BLOB quando si esegue la migrazione alla piattaforma Azure, poiché il database SQL non supporta FILESTREAM in questa fase. L'archiviazione BLOB è consigliata anche quando le dimensioni dei file sono inferiori a 2 GB e non si utilizza la funzionalità FILESTREAM di SQL Server, poiché, a seconda della natura dell'applicazione, potrebbe essere più economica e scalare e qualsiasi client può accedervi tramite l'API REST.

Dopo aver memorizzato oggetti di grandi dimensioni nell'archiviazione BLOB, è possibile memorizzare un riferimento al BLOB in una colonna di una tabella nell'istanza del database SQL. Le dimensioni massime dell'istanza del database SQL sono attualmente di 150 GB. Pertanto, se si archiviano oggetti di grandi dimensioni in un'istanza del database SQL, è possibile che lo spazio non sia sufficiente. Le dimensioni massime dell'archiviazione BLOB sono pari a 200 TB, cioè il limite di dimensioni per Archiviazione di Microsoft Azure. Le dimensioni massime di ogni BLOB nella relativa archiviazione sono pari a 200 GB (BLOB in blocchi) o 1 TB (BLOB di pagine).

Ad esempio, se si esegue la migrazione di un'applicazione Web locale in cui sono presenti risorse grafiche quali immagini, è possibile archiviare l'URL all'immagine nel database SQL (o nell'archiviazione della tabella) e, tramite il programma client, recuperare l'URL e visualizzare l'immagine dall'URL.

Le prestazioni dell'applicazione potrebbero essere influenzate dallo spostamento dei BLOB all'esterno del database SQL e dalla sola memorizzazione di un riferimento al BLOB nella relativa archiviazione, poiché tramite l'applicazione client viene innanzitutto eseguita una query sull'istanza del database SQL per determinare la posizione del BLOB e, successivamente, viene eseguita una query sull'archiviazione BLOB per ottenere i dati BLOB, quali immagini oppure oggetti di grandi dimensioni. Si noti che non è possibile eseguire il backup/ripristino dei dati contemporaneamente dal database SQL e dall'archiviazione BLOB, pertanto non si garantisce che i backup dell'archiviazione BLOB e del database SQL siano coerenti dal punto di vista transazionale.

Un altro aspetto da considerare è il numero di transazioni effettuate dall'applicazione in un archivio dati. Nel database SQL non viene richiesto alcun pagamento aggiuntivo per le transazioni effettuate, come invece avviene in Archiviazione di Microsoft Azure. I dati a cui l'accesso viene effettuato meno frequentemente sono un ottimo candidato per Archiviazione di Microsoft Azure, mentre quelli a cui l'accesso viene effettuato più frequentemente possono essere archiviati con un minor costo nel database SQL.

L'accesso all'archiviazione BLOB di Azure da parte delle applicazioni client scritte con qualsiasi linguaggio di programmazione ed eseguite in qualunque sistema operativo può essere effettuato tramite l'API REST HTTP(S). L'accesso all'archiviazione BLOB può anche essere effettuato utilizzando le librerie client destinate a sistemi operativi e a linguaggi di programmazione specifici. Nella pagina relativa al centro per sviluppatori di Azure sono disponibili librerie per .NET, Node.js, Java e PHP. Ad esempio, la libreria client di archiviazione .NET offre wrapper .NET fortemente tipizzati nell'API REST per semplificare il lavoro degli sviluppatori .NET.

Se si decide di archiviare dati non strutturati utilizzati dall'applicazione nell'archiviazione BLOB nella piattaforma Azure, sarà necessario riscrivere la parte del codice tramite cui viene effettuato l'accesso ai dati utilizzando la libreria client di archiviazione.

Quando i dati vengono memorizzati nell'archiviazione BLOB di Azure, si ottengono automaticamente diversi vantaggi importanti tra cui:

  • Scalabilità. L'archiviazione BLOB di Azure supporta un sistema di distribuzione di BLOB altamente scalabili tramite la rete CDN di Azure. Per ulteriori informazioni, è possibile consultare anche l'articolo relativo agli obiettivi di scalabilità e prestazioni di Archiviazione di Microsoft Azure. Nella rete CDN vengono utilizzati BLOB ad accesso frequente di molti server per eseguire la scalabilità orizzontale e soddisfare i requisiti di traffico dell'applicazione. Inoltre, il sistema è estremamente disponibile e durevole.

  • Disponibilità elevata/tolleranza di errore. I BLOB archiviati in Azure vengono replicati in tre posizioni nello stesso data center per garantire la resilienza in caso di errori hardware. Inoltre, i dati vengono replicati in diversi domini di errore per aumentare la disponibilità come con tutti i servizi di archiviazione di Azure.

  • Ripristino di emergenza. In caso di emergenza, Azure consente di scegliere tra replica con ridondanza geografica e replica con ridondanza locale. Per ulteriori informazioni, consultare l'articolo contenente la procedura per gestire la replica dell'account di archiviazione.

  • Sicurezza. Ogni richiesta effettuata ai servizi di Archiviazione di Microsoft Azure deve essere autenticata, a meno che non si tratti di una richiesta anonima in una risorsa di contenitore pubblico. Per ulteriori informazioni, vedere Autenticazione dell'accesso all'account di archiviazione.

  • Accesso ai dati da qualsiasi client in qualunque luogo. L'accesso all'archiviazione BLOB di Azure può essere effettuato utilizzando l'API REST tramite HTTP. L'accesso all'archiviazione BLOB tramite REST può essere effettuato da qualsiasi applicazione client in qualunque sistema operativo.

Dopo aver riprogettato l'applicazione per trarre vantaggio dall'archiviazione di BLOB altamente scalabili, potrebbe essere necessario eseguire la migrazione dei dati esistenti da un file system o un database di SQL Server. A tal fine, è possibile scrivere codice utilizzando l'API REST HTTP(S) o la libreria client .NET per l'archiviazione BLOB oppure utilizzare strumenti come Cloud Storage Studio di Red Gate Software.

Il documento è risultato utile?
(1500 caratteri rimanenti)
Grazie per i commenti inviati.
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