2013-01-18 16 views
12

Archiviazione di Azure per l'applicazione multi-tenant. Stiamo lavorando per sviluppare un'applicazione multi-tenant su Azure, con circa 10.000 tenant e una memoria dati approssimativa da 100 GB a 1 TB per tenant. L'applicazione è di mantenere i documenti e il contenuto binario insieme ai metadati per ciascun titolare separatamente. Stiamo pensando allo storage Azure Block Blob per archiviare i dati. Poiché il requisito è mantenere i dati separati per ciascun titolare, ci siamo imbattuti nel seguente approccio.Limitazione e filtro di archiviazione BLOB di Azure

  • Creare un account di archiviazione separato per ogni inquilino
  • che aiuta a mantenere l'inquilino utilizzo sapiente, che aiuta ancora una volta sulla fatturazione e
  • creare un contenitore separato in ogni account di archiviazione segregare in base alla categoria
  • Memorizza il documento nella memoria BLOB a blocchi insieme ai metadati.

Abbiamo seguente query rispetto al nostro approccio:

  1. E 'buona idea per archiviare documenti o contenuto binario nel blocco blob insieme con i metadati? O c'è un modo migliore per ottenerlo (probabilmente usando SQL Azure per i metadati e blob per il contenuto, o meglio )?
  2. Come interrogare i dati con alcune condizioni di filtro sui metadati? ad esempio recupera tutto il blob in cui metadat1 = value1 e metadata2 = value2
  3. È consigliabile creare un account di archiviazione separato per ogni titolare?
    a. In caso contrario, quale sarebbe il modello attraverso il quale possiamo archiviare dati specifici dei titolari nell'archiviazione e nell'applicazione di Azure in modo efficiente?
  4. Esiste una larghezza di banda o qualsiasi altra limitazione sul numero di richieste di lettura/scrittura dei dati sull'archiviazione BLOB in termini di scalabilità e disponibilità elevata?
  5. Come per il modello di prezzo azzurro, fanno pagare la lastra per lo stoccaggio, vale a dire il primo 1 TB $ 0,095/GB, il prossimo 49 TB $ 0,08/GB. Questi addebiti sono l'applicazione per account di archiviazione o per abbonamento?
    a. Allo stesso modo, il costo della transazione è applicabile per account di archiviazione o per abbonamento?

risposta

14
  1. E 'buona idea per archiviare documenti o contenuto binario nel blocco blob insieme con i metadati? O c'è un modo migliore per raggiungerlo (probabilmente usando SQL Azure per i metadati e blob per il contenuto, o meglio)?
  2. Come interrogare i dati con alcune condizioni di filtro sui metadati? cioè recuperare tutti blob dove metadat1 = value1 e metadata2 = valore2

Per rispondere a 1 e 2, non si può interrogare sui metadati in deposito blob. Quindi suppongo che l'opzione migliore sarebbe utilizzare SQL Azure o Azure Table Storage poiché entrambi hanno funzionalità di interrogazione. Dato che conserverai un numero enorme di BLOB (e quindi anche più metadati), sono più incline allo storage di tabelle, ma ciò richiederebbe considerazioni di progettazione speciali come il partizionamento corretto.

È consigliabile creare un account di archiviazione separato per ciascun titolare? a.In caso contrario, quale sarebbe il modello attraverso il quale possiamo archiviare dati specifici dei titolari nell'archiviazione e nell'applicazione di Azure in modo efficiente?

posso pensare a 3 motivi per cui avere un conto deposito separato per ogni inquilino è una buona idea:

  1. Semplifica la fatturazione.
  2. Ti aiuterà a mantenere gli obiettivi di scalabilità.
  3. Poiché hai menzionato che ogni titolare può potenzialmente memorizzare fino a 1 TB di dati, dato il limite di account di archiviazione corrente di 200 TB, è possibile mantenere un massimo di 200 tenant per account di archiviazione. Dopodiché dovrai trovare un altro account di archiviazione e iniziare a memorizzare lì i dati.

Tutto sommato una soluzione molto elegante mantenendo account di archiviazione separati/inquilino. La sfida sarebbe quella di aumentare il limite predefinito da 20 account di archiviazione/abbonamento. Avresti bisogno di chattare con il supporto per questo.

C'è larghezza di banda o qualsiasi altra limitazione sul numero di richiesta di lettura/scrittura dei dati sull'archiviazione BLOB in termini di scalabilità e disponibilità elevata?

Sì, Si prega di leggere il blog obiettivi di scalabilità dal team di Windows Azure Blob archiviazione: http://blogs.msdn.com/b/windowsazurestorage/archive/2010/05/10/windows-azure-storage-abstractions-and-their-scalability-targets.aspx

Come per il modello di pricing azzurro, fanno pagare lastra saggio per lo stoccaggio, vale a dire prima 1 TB $ 0,095/GB , dopo 49 TB $ 0,08/GB. Questi addebiti sono l'applicazione per account di archiviazione o per abbonamento? a. Allo stesso modo, il costo della transazione è applicabile per account di archiviazione o per abbonamento?

Non sono sicuro, ma credo che sia per account di archiviazione. Potresti voler contattare l'assistenza per questo.

Spero che questo aiuti.

+0

Grazie Gaurav. Volevo solo chiarire un paio di cose: in primo luogo, dato che sei più incline alla memorizzazione dei tavoli, immagino che questo sia per i metadati e il contenuto andrà comunque in blob, giusto? In secondo luogo, hai menzionato che il limite dell'account di archiviazione è 200 TB, intendi 100 TB, giusto? Perché non ho trovato 200 TB ovunque. – Hitesh

+1

Questo è corretto. Il contenuto sarà effettivamente nella memoria BLOB, ma i metadati su cui si desidera eseguire la query entreranno nella memoria della tabella (o in sql azure) poiché l'archiviazione BLOB non supporta le query. Vedi qui per il limite di 200 TB sull'account di archiviazione: http://blogs.msdn.com/b/windowsazurestorage/archive/2012/11/04/windows-azure-s-flat-network-storage-and-2012-scalability -targets.aspx. Il limite di 200 TB è menzionato nella sezione degli obiettivi di scalabilità, tuttavia si applica solo agli account di archiviazione creati dopo il 7 giugno 2012. –

Problemi correlati