Azure Table Storage: inserimento massivo di dati

Le Table Storage sono uno dei tanti servizi offerti ed a disposizione su Azure. Il loro scopo è quello di offrire supporto per la memorizzazione di dati senza uno schema come avviene invece su database.

Table Storage: la Definizione

Per i concetti teorici introduttivi vi rimando alla pagina ufficiale sul sito Microsoft dal titolo " Archiviazione Tabelle” mentre di seguito riporto la definizione dei punti principali.

  • Archivio chiave-valore NoSQL per lo sviluppo rapido con set di dati semistrutturati di dimensioni molto elevate

  • Archiviazione di dati semistrutturati a disponibilità elevata

  • Creazione di app estremamente scalabili

  • Creazione di app che richiedono uno schema dei dati flessibile

  • Uso di JSON per serializzare i dati

  • Esecuzione di query basate su OData

Perché usare visto che non sono relazionali e sono per dati  schemaless? Personalmente in questo periodo le sto usando tanto per un progetto (ovviamente con dati minimi) per ridurre i costi del servizio a carico del cliente.

Table Storage e la colonna PartitionKey

Chi ha lavorato con le **Table Storage** conosce benissimo il campo **PartitionKey**.
Il campo **PartitionKey** serve (detto in maniera molto semplice) a suddividere i dati in blocchi logici per aumentare la scalabilità del prodotto e soprattutto migliorare performance sulla parte di interrogazione dei dati.
Assieme alla **PartitionKey** possiamo trovare la **RowKey** che  ha lo scopo di identificare in maniera univoca la riga.
Nella fase in **INSERT** massivo è necessario prestare attenzione alla PartitionKey Se è uguale per tutti i record oppure no.

Table Storage: inserimento massiccio con PartitionKey uguale

Table Storage: inserimento massiccio con PartitionKey diverse

***Attenzione:*** nulla vieta di usare preventivamente la logica delle PartitionKey diverse sempre. State tranquilli che chiamando il metodo Delle singole in caso di multiple riceverete un messaggio di errore.
**Conclusione:** Prima di creare Table Storage in maniera impulsiva pensate bene al perché vi serviranno e come le userete. Lo scopo è migliorare il tutto per rendere le ricerche più efficienti effettuando un filtro preventivo sul campo PartitionKey e non una "GetAll" per poi dovere effettuare logiche da codice.
Vi rimando alla lettura del post " [Designing a Scalable Partitioning Strategy for Azure TableStorage](https://docs.microsoft.com/it-it/rest/api/storageservices/Designing-a-Scalable-Partitioning-Strategy-for-Azure-Table-Storage)" per maggiori chiarimenti e riflessioni a tema. Ora non vi resta che divertirvi e riempire Azure con le vostre TableStorage.