我对Azure存储相对来说比较陌生,现在已经实施了一段时间的解决方案。 我一直在碰撞障碍,让我觉得我没有为我存储的数据应用正确的存储类型。正确使用Azure存储。 (何时使用SQL,表和Blob)
所以这更多的是一个整体的问题:
- 我什么时候应该使用SQL Azure的?
- 什么时候应该使用Azure Table存储?
- 什么时候应该使用Azure Blobs?
到目前为止,我一直在使用表存储,我现在正在为此付出代价。 随着解决方案需求的增长,我发现自己无法根据需要访问数据。
例如,我需要获取表中的50个最新条目,但我无法在查询中使用OrderBy。 我需要获取条目的总数量,但不能使用Count。
我一直觉得,我计划在不知道确切的RowKey和PartitionKey的情况下定期访问的任何数据应该在Azure SQL中编入索引并存储在表中。它是否正确?
我也发现自己将对象重新创建为实体对象,但是对于数据类型的严格限制,我最终只是将对象序列化为字节数组。虽然表行可以容纳1MB,但该行上的一个字节数组可能只能容纳64KB,此时我最终将使用Blob存储。
因此,最终我觉得将我的所有数据放入Azure SQL并索引更大的数据,但将其保存为斑点会更好。 当然这并不完全正确,因为这会使表格存储没有真正的目的。
所以我想知道是否有任何指导什么时候使用哪种存储。
在我的情况下,我在一些地区的数据量非常大,其中一些消耗了相当多的空间(通常高于64KB),但我也需要非常频繁地访问数据,并且需要能够过滤并按特定值排序。
- 我真的需要索引我计划在SQL中访问的所有数据吗?
- 如果数据可能超过64KB,我会避免使用Table吗?
我觉得我有些事情我做得不对。我不明白的东西。我在这里错过了什么?
由于蔚蓝色的更新,在过去4年中ATS发生了变化,您的意见/建议是否发生变化? – Krishna 2018-01-11 09:56:08
据我所知,他们仍然没有解决ATS的主要问题,即没有二级索引。他们在Cosmos之上添加了兼容ATS的API(具有自动索引功能),但它并不能解决缺少ATS本机二级索引等问题的问题。所以不,我仍强烈建议不要使用ATS。 – 2018-01-11 16:02:26