比较用于存储 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 的比较

Feature 文件服务器和数据库解决方案 FILESTREAM 解决方案 FileTable 解决方案
用于管理任务的单个存储区
单组服务:搜索、报告、查询等
集成的安全模型
FILESTREAM 数据的就地更新
在数据库中维护文件和目录层次结构
Windows 应用程序兼容性
对文件属性的关系访问

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

有关这两种功能的比较,请参阅来自 RBS 团队的以下博客: SQL Server 远程 BLOB 存储区和 FILESTREAM 功能比较

更多信息

FILESTREAM (SQL Server)
FileTable (SQL Server)
远程 Blob 存储区 (RBS) (SQL Server)