是否可以在单个请求中编写多个blob?

时间:2016-05-30 09:13:43

标签: azure-storage-blobs azure-blob-storage

我们计划使用Azure blob存储来保存处理日志数据以供以后分析。我们的系统每分钟生成大约2000个事件,每个“事件”都是一个json文档。看看blob存储的定价,如果我们接受每个事件并将其写入blob,那么写入操作的绝对数量将花费我们大量的金钱。

我的问题是:是否可以在单个写操作中创建多个blob,或者我是否应该计划创建包含多个事件数据项的blob(例如,每分钟数据的一个blob)?

2 个答案:

答案 0 :(得分:0)

这是可能的,但不是好的做法,多部分文件要合并需要很长时间,因此我们尝试通过传递实体ID和更新doc [image]名称将上传操作与实体持久操作分开在其他控制器中 它还可以保持您的上传功能.Best Wish

答案 1 :(得分:0)

在单次写入操作中创建多个blob是不可能的。

一个可行的解决方案是按照您的计划创建包含多个事件数据项的blob(在我看来很难实现和查询);另一个解决方案是将事件数据存储到Azure存储表而不是Blob中,并利用and the "allowKeepAlive" setting is not set to false in my web.config在一个批处理中写入表实体(这被称为一个事务)。

请注意,一个批次中的所有表格实体必须具有相同的分区键,在设计表格时应考虑这一点(有关详细信息,请参阅EntityGroupTransaction)。如果某些事件的数据大小超过Azure存储表的大小限制(每个实体1MB,每批4MB),则可以将这些事件的数据保存到Blob并将Blob链接存储在Azure存储表中。