【问题标题】:What is the better and faster way to save and get files Azure BLOB storage or SQL SERVER?保存和获取文件 Azure BLOB 存储或 SQL SERVER 的更好、更快的方法是什么?
【发布时间】:2016-03-25 08:54:40
【问题描述】:

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

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

我有三种不同的方法。

  1. 我可以在 sql server 中保存元数据(文件名、文件类型)以创建唯一 id)并将文件保存到 Azure BLOB 存储中。
  2. 我可以将元数据和数据保存到 sql server 中。
  3. 我可以将元数据和数据保存到 Azure BLOB 存储中。

选择什么方式,为什么? 如果您提出自己的解决方案,那将是美妙的。 附言他们都使用 Azure。

【问题讨论】:

  • 您打算如何处理这些文件?您的用户能够下载这些文件吗?
  • @Gaurav Mantri 他们可以下载、发送(创建)文件、更新(删除并再次发送)、删除。

标签: sql-server wcf azure storage


【解决方案1】:

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

  1. Blob 存储仅用于此目的。截至今天,一个帐户可以容纳 500TB 的数据,每个 blob 的大小可以是 200 GB。所以空间不是限制。
  2. 与 SQL Server 相比,存储在 blob 存储中非常便宜。
  3. 我推荐将元数据存储在数据库中的原因是,blob 存储是一个简单的对象存储,没有任何查询功能。因此,如果您想搜索文件,可以查询数据库以找到文件,然后将文件 URL 返回给您的用户。

但是请记住,由于这些(数据库服务器和 Blob 存储)是两个不同的数据存储,因此您将无法实现事务一致性。创建文件时,我建议先在 blob 存储中上传文件,然后在数据库中创建记录。同样,在删除文件时,我建议先从数据库中删除记录,然后再删除 blob。如果您担心有孤立的 blob(即数据库中没有匹配记录的 blob),我建议您运行一个后台任务来查找孤立的 blob 并删除它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-23
    • 1970-01-01
    • 1970-01-01
    • 2019-10-17
    • 1970-01-01
    • 2010-11-17
    • 1970-01-01
    相关资源
    最近更新 更多