Azure上的文档Db用法

时间:2015-01-21 13:14:05

标签: azure azure-cosmosdb nosql

在我们的项目中,我们尝试在我们的nosql数据库中存储大文件,如图像。在进行一些研究时,我们听说Azure云平台中的Document Db nosql数据库。此外,我们将数据存储在Azure中。

在Azure平台中存储大文件的最佳方法是什么? 文件Db够好吗? 在Azure中使用MongoDb是否合适?

3 个答案:

答案 0 :(得分:4)

虽然DocumentDB允许您存储文件(它们存储为附件),但我不建议使用它。以下是我的理由:

  • 在当前版本中,附件的最大大小为2 MB。
  • 您无法真正传输附件。您需要先阅读应用程序中的附件内容并从那里进行流式处理。

要在Azure中存储文件,我强烈建议您使用Blob Storage。它仅用于此目的。您可以存储在blob存储中的文件的最大大小为1 TB(我认为这对您来说已经足够了),并且每个存储帐户最多可以容纳500 TB的数据。此外,您可以直接将文件流式传输给最终用户。

答案 1 :(得分:1)

DocumentDB允许您将文件添加到文档中,称为附件。使用该功能的优点是附件的存储与文档的生命周期相关联:如果删除文档,则附件也将被删除。

由于DocDB仍在预览中,因此一旦服务进入普通可用性,您可以预期上述限制会有所不同。

您不必将附件存储在DocDB本身中。 DocDB允许您这样做,或者简单地存储对文件的引用,作为附件元数据的一部分。这很有用,您希望将文件存储在其他位置,但需要在DocDB文档中引用其位置。来自documentation

  

DocumentDB允许您使用DocumentDB或您自己的远程媒体商店存储二进制blob /媒体。它还允许您根据称为附件的特殊文档来表示媒体的元数据。 DocumentDB中的附件是一个特殊的(JSON)文档,它引用了存储在别处的media / blob。附件只是一个特殊文档,用于捕获存储在远程媒体存储中的媒体的元数据(例如位置,作者等)。

如果您需要将非常大的文件存储到Azure中(如视频文件或大型工程文件),那么您最好(也是最便宜)的选项可能是将数据存储在Block Blob中。然后,您可以获取blob的Uri并将其作为附件元数据存储在docdb文档中。

答案 2 :(得分:0)

存储文件的首选机制是Blob存储,因为它便宜。请记住,Document DB确实非常昂贵,因此如果要使用Azure表将文件路径存储在Blob存储中。