保存和获取Azure BLOB存储或SQL SERVER文件的更好,更快的方法是什么?

时间:2016-03-25 08:54:40

标签: sql-server wcf azure storage

[背景] 现在我正在创建WCF以保存和获取我们大学的文章。

我需要保存这些文件的文件和元数据。 我的WCF需要每天1000人使用。 存储将包含大约60000个aticles。

我有三种不同的方法可以做到。

  1. 我可以在sql server中保存元数据(文件名,文件类型)以创建唯一ID)并将文件保存到Azure BLOB存储中。
  2. 我可以将元数据和数据保存到sql server中。
  3. 我可以将元数据和数据保存到Azure BLOB存储中。
  4. 选择什么方式?为什么? 如果你建议你自己的解决方案,它将是完美的。 附:他们都使用Azure。

1 个答案:

答案 0 :(得分:4)

我建议使用选项1 - 在数据库中保存元数据,但将文件保存在blob存储中。这是我的理由:

  1. Blob存储仅用于此目的。截至今天,一个帐户可以容纳500TB的数据,每个blob的大小可以是200 GB。所以空间不是限制。
  2. 与SQL Server相比,存储在blob存储中非常便宜。
  3. 我建议在数据库中存储元数据的原因是因为blob存储是一个没有任何查询功能的简单对象存储。因此,如果要搜索文件,可以查询数据库以查找文件,然后将文件URL返回给用户。
  4. 但请记住,因为这些(数据库服务器和blob存储)是两个不同的数据存储,所以您无法实现事务一致性。在创建文件时,我建议先在blob存储中上传文件,然后在数据库中创建一条记录。同样,在删除文件时,我建议先从数据库中删除记录,然后删除blob。如果您担心有孤立的blob(即数据库中没有匹配记录的blob),我建议运行一个后台任务,找到孤立的blob并删除它们。