I am relatively new to Azure storage and have been implementing the solution for some time. And I continue to run into obstacles, making me feel like I'm not applying the right type of storage for the data that I store.
So this is a more general question:
- When should you use Azure SQL?
- When should I use Azure table storage?
- When should you use Azure Blobs?
So far I have used a lot of table storage, and now I am paying for it. As the requirements for the solution grow, I cannot access the data as needed.
For example, I need to get the last 50 records in the table, but I can’t fulfill the OrderBy order in the query. I need to get the total number of records, but not use Count.
I get the impression that any data that I plan to receive regularly, not knowing exactly RowKey and PartitionKey, should be indexed in Azure SQL, and also stored in a table. Is it correct?
I also believe that recreating objects as Entity objects, but with very severe restrictions on data types, I often end up just serializing the object into an array of bytes. And although the table row can contain up to 1 MB, the byte array in this row can only contain 64 KB, after which I end up using Blob storage.
So, in the end, I feel that I would be better off just putting all my data in Azure SQL and indexing the big data, but saving them as drops. Of course, this is not entirely correct, since this would leave the table storage without a real purpose.
So, I am wondering if there are any recommendations for using that type of storage.
In my case, I have a very large amount of data in some areas, some of them consume enough space (often above 64 KB), but I also need to access the data very often and they will need to filter and sort it by certain values.
- Do I need to index all the data that I plan to get in SQL?
- And am I better off avoiding spreadsheets for any data that may exceed 64 KB?
I feel that something is wrong there. I do not understand. What am I missing here?