【问题标题】:Azure Storage: Table vs BlobAzure 存储:表与 Blob
【发布时间】:2018-07-09 10:42:32
【问题描述】:

这就是问题所在。我有设备将遥测消息推送到 Azure IoT 中心,目前,我使用分区键设备 ID 和行键遥测类型将所有消息保存到表存储中。我想要做的是限制存储数据的大小。例如,表最多只能保留 50 MB,并且应该被清除。对于这样的用例,我应该使用什么样的存储,有什么好处?任何建议都非常感谢。

【问题讨论】:

  • 几个后续问题:1)这些数据应该自动清除还是您可以手动清除数据? 2)当大小达到50 MB时是否必须清除数据,或者可以根据年龄(即数据的年龄)清除数据? 3) 是否必须使用 Azure 表/Blob 或其他一些存储机制可以接受?
  • @GauravMantri 1) 应自动或以编程方式清除此数据(例如,通过某些作业/azure func 等)。 2)是的,这应该基于数据大小 3)我想使用这些存储之一。但是,如果他们无法做到这一点,我会考虑其他解决方案。

标签: azure azure-storage azure-blob-storage azure-table-storage


【解决方案1】:

Azure 表和 Azure Blob 都没有在达到一定大小后自动删除内容的功能。事实上,我认为我没有遇到任何提供它的云存储解决方案(我已经看到数据会根据年龄自动删除)。

因此,如果您想在数据达到一定大小后将其删除,则必须编写一些代码并安排它(使用FunctionsWebJobs)。该代码将查找占用的大小并删除超出限制的数据。

在 Blob 和表格之间,我有些矛盾。使用 Blob,更容易消耗存储 - 您只需列出容器中的 Blob 并总结 Blob 的大小。使用表格,您将需要继续获取实体(即下载数据)并计算该数据的大小。但是从表中删除数据会更容易,因为您将删除行(除非您将每条记录存储在单独的 blob 中)。

如果不是基于数据大小而是基于数据时代,我会推荐Cosmos DB。虽然比 Azure 存储贵,但您可以在集合级别定义 TTL,并基于该策略,文档将被自动删除。

【讨论】:

  • 是的,我的想法是一样的,所以我在这里寻找建议:)
  • 堆栈溢出的第一条规则 - 你不要征求建议 ;-)
  • 好的,那我在这里寻找答案:)
  • 虽然我很好奇,考虑到云存储非常便宜,为什么要根据大小进行限制。
  • 这是利益相关者的要求之一。
猜你喜欢
  • 1970-01-01
  • 2017-08-12
  • 2014-05-04
  • 2017-08-15
  • 2014-05-01
  • 2019-12-19
  • 2017-11-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多