比较用于存储 Blob 的选项(SQL Server)

讨论并比较可用于在 SQL Server 中存储文件和文档的选项。

将文件存储在数据库中 - 优点和期望

大部分企业数据本质上是非结构化的,通常以文件和文档的形式存储在文件系统中。 大部分数据由通过 Windows API 访问文件的应用程序生成、管理和使用。 企业通常在文件系统中保留此数据,同时将文件的相关元数据存储在关系数据库中。

将非结构化数据集成到关系数据库可提供显著优势。 这些优势包括:

  • 集成存储和数据管理功能,例如备份。

  • 集成服务,例如全文搜索和对数据和元数据的语义搜索。

  • 便捷管理和制定非结构化数据策略。

然而,在大多数情况下,在关系数据库中存储非结构化数据并不方便。 以前不可能在关系系统上运行基于 Windows 的现有应用程序。 重写已建立的应用程序(如 Microsoft Word 或 Adobe Reader)在关系数据库 API 上运行并不可行。 这些应用程序只是希望通过 Windows API 访问数据。 换句话说,期望包括以下内容:

  • Windows 应用程序不知道数据库事务,也不需要它们。

  • Windows 应用程序需要与文件系统 API 的兼容性来获取文件和目录数据。

FILESTREAM

SQL Server 已具有 FILESTREAM 功能,它提供高效存储、管理和流式传输作为文件存储在文件系统上的非结构化数据。 但是,FILESTREAM 解决方案需要自定义编程,并且不满足上述完整 Windows 应用程序兼容性的要求。

FileTable

FileTable 功能基于现有的 FILESTREAM 功能构建,使企业客户能够在 SQL Server 数据库中存储非结构化文件数据和目录层次结构,方法是满足对基于文件的数据的非事务访问和 Windows 应用程序兼容性的要求。

比较 FILESTREAM 和 FileTable

功能 / 特点 文件服务器和数据库解决方案 FILESTREAM 解决方案 FileTable 解决方案
管理任务的单一故事 是的 是的
单个服务集:搜索、报告、查询等 是的 是的
集成安全模型 是的 是的
就地更新 FILESTREAM 数据 是的 是的
数据库中维护的文件和目录层次结构 是的
Windows 应用程序兼容性 是的 是的
对文件属性的关系访问 是的

比较 FILESTREAM 和远程 BLOB 存储(RBS)

有关这两项功能的比较,请参阅 RBS 团队的此博客文章: SQL Server 远程 BLOB 存储和 FILESTREAM 功能比较

详细信息

FILESTREAM (SQL Server)
FileTables (SQL Server)
远程 Blob 存储 (RBS) (SQL Server)