Storing IOT Data in Azure: SQL vs Cosmos vs Other Methods
Hello Team, The project I am working on as an architect has got an IOT setup where lots of sensors are sending data like water pressure, temperature etc. to an FTP(cant change it as no control over it due to security). From here few windows service on Azure pull the data and store it into an Azure SQL Database. Here is my observation with respect to this architecture: Problems: 1 TB limit in Azure SQL. With higher tier it can go to 4 TB but that's the max. So it does not appear to be infinitely scalable plus with size, the query issues could be a problem. Columnstore index and partitioning seem to be options but size limitation and DTUs is a deal breaker. Problem-2- IOT data and SQL Database(downstream storage) seem to be tightly coupled. If some customer wants to extract few months of data or even more with millions of rows, DB will get busy and possibly throttle other customers due to DTU exhaustion. I would like to have some ideas on possibly scaling this further. SQL DB is great and with JSON support it is awesome but a it is not horizontally scalable solution. Here is what I am thinking: 1) All the messages should be consumed from FTP by Azure IOT hub by some means. 2) From the central hub, I want to push all messages to Azure Blob Storage in 128 MB files for later analysis at cheap cost. 3) At the same time, I would like all messages to go to IOT hub and from there to Azure CosmosDB(for long term storage)\Azure SQL DB(Long term but not sure due to size restriction). I am keeping data in blob storage because if client wants or hires a Machine learning team to create some models, I would prefer them to pull data from Blob storage rather than hitting my DB. Kindly suggest few ideas on this. Thanks in advance!! Chandan Jha6.3KViews0likes3Comments