SharePoint Foundation 中的外部 BLOB 存储概述

上次修改时间: 2009年10月1日

适用范围: SharePoint Foundation 2010

虽然 SQL Server 是适用于 SharePoint 内容数据库中的结构化数据的非常有效的资源管理器,但是大部分数据文件都表现为非结构化的二进制文件,即二进制大型对象 (BLOB) 数据文件。由于 SQL Server 处理二进制数据的效率不如处理结构化数据的效率,因此服务器场通过使用外部数据存储来包含二进制数据文件,可能会节省成本。

概述

对于 SharePoint Foundation 中的结构化数据而言,SQL Server 是一种高效的资源管理器。SQL Server 提供快速而高效的 SQL 查询引擎和非凡的基于查询的结构化数据检索。

不过,SharePoint Foundation 的典型企业部署中的大部分数据都存储为与 SharePoint 文件关联的、非结构化的二进制数据流。通常,这些与 SharePoint 文件对应的二进制流(即 BLOB)包含了大部分数据。

然而,问题在于 SQL Server 不是用来存储非结构化二进制数据流的最佳选择,原因是非结构化二进制数据不会将自己公开给丰富的 SQL 查询环境。实际上,SQL Server 中 BLOB 数据的存储和检索操作不过是简单的 get 和 put 语句。由于 BLOB 数据无法利用 SQL Server 最有用的功能之一(查询引擎),因此 SQL Server 作为 BLOB 存储的价值比较有限。

解决方法是使用简单且经济有效的存储介质来充当外部 BLOB 存储 (EBS)。EBS 与网站的 SQL Server 内容数据库并行运行,此内容数据库存储网站的结构化数据。若要协调这两类数据存储,则必须实现 COM 接口 (ISPExternalBinaryProvider),该接口使用简单的语义来识别文件的 Save 和 Open 命令,并在识别 BLOB 数据流时发起对 BLOB 存储的重定向调用。

实现此接口后,您可以使用称作外部 BLOB 存储提供程序(EBS 提供程序)的对象,此对象用于协调 BLOB 存储的存储和检索操作。EBS 提供程序还可确保 SQL Server 内容数据库包含对外部 BLOB 存储中的与其关联的 BLOB 流的元数据引用。

必须在每台前端 Web 服务器上为每个 SharePoint 网站安装、注册和配置 EBS 提供程序。这将允许接口识别 Save 和 Open 命令(分别表示存储和检索操作)和启动 EBS 提供程序的重定向调用。

必须知道在部署中实现 EBS 需要做出某些权衡。除了操作限制和权衡分析中概述的操作限制之外,实现 EBS 提供程序还会增加新的支持和维护要求。

请参阅

概念

操作限制和权衡分析

BLOB 访问接口:ISPExternalBinaryProvider

外部 BLOB 存储体系结构