SQL Server 之 FileTables(一)

原文:FileTables官方文档

       FileTable功能支持了Windows文件命名空间,并实现了Windows应用程序与存储在SQL Server中的文件数据的兼容。FileTable允许应用程序集成其存储和数据管理组件,并通过非结构化数据和元数据提供集成的SQL Server服务(包括全文搜索和语义搜索)。

      换言之,用户可以在SQL Server中名为FileTables的特殊表中存储文件,并可以在Windows应用程序中像访问文件系统一样访问这些文件,不需要在客户端中做任何转换。

      FileTable功能基于SQL Server FILESTREAM技术。了解更多有关FILESTREAM的信息,请参阅FILESTREAM (SQL Server)

FileTable功能的优点

FileTable功能旨在实现:

  • Windows API兼容存储在SQL Server数据库中的文件数据。Windows API兼容性包括:

       FILESTREAM数据的非事务性流式访问和实时更新;

       目录和文件的分层命名空间;

       创建日期、修改日期等文件属性的存储;

       支持Windows文件和目录管理API。

  • 与其他SQL Server功能的兼容性,包括FILESTREAM和文件属性数据上的管理工具、服务和关系查询功能的兼容。

       因此,FileTables消除了使用SQL Server来存储和管理当前存在于文件服务器上的文件型非结构化数据的重大障碍。企业可以将这些数据从文件服务器移动到FileTable中,以利用SQL Server提供的集成管理和服务,同时保持Windows应用程序与其现有的将这些数据看作文件系统中的文件的Windows应用程序的兼容性。

 什么是FileTable

       SQL Server为需要在数据库中存储文件和目录的应用程序提供了一个具有Windows API兼容性和非事务性访问权限的特殊文件表——FileTable。它是一个具有预定义模式的专用用户表,主要用于存储FILESTREAM数据、文件和目录层次结构信息和文件属性。

      FileTable提供以下功能:

  • FileTable表示目录和文件的层次结构, 它存储与该层次结构中的所有节点相关的数据,包括目录及其包含的文件,此层次结构从用户在创建FileTable时指定的根目录开始;
  • FileTable中的每一行代表一个文件或目录;
  • FileTable中的每一行都包含了以下项目。 更多有关FileTable架构的信息,请参阅FileTable架构FileTable架构。

       1、用于存储流数据的file_stream列和stream_id(GUID)标识符(对于目录,file_stream列为NULL);

       2、用于表示和维护当前项(文件或目录)和目录层次结构的path_locator列和parent_path_locator列;

       3、10个对文件I/O API有用的文件属性,例如创建日期和修改日期;

       4、支持对文件和文档的全文搜索和语义搜索的类型列;

  • FileTable强制执行某些系统定义的约束和触发器以维护文件命名空间语义;
  • 当数据库配置为非事务性访问时,FileTable中的文件和目录层次结构将在配置了FILESTREAM共享的SQL Server实例中公开,使Windows应用程序能访问文件系统;

    FileTables 还具备了以下属性:

  • 存储在FileTable中的文件和目录数据通过Windows共享,供基于Windows API的应用程序进行非事务性文件访问。 对于Windows应用程序来说,这类似文件和目录的普通共享, 应用程序可以使用一组丰富的Windows API来管理此共享下的文件和目录;
  • 通过共享显示的目录层次结构是在FileTable中维护的纯逻辑目录结构;
  • 通过Windows共享创建或修改文件或目录的调用将被SQL Server组件拦截,并反映在FileTable中的相应关系数据中;
  • Windows API操作本质上是非事务性的,并且与用户事务无关。 但是,可以像访问常规表的任何FILESTREAM列一样对存储在FileTable中的FILESTREAM数据进行事务性访问 。
  • 可以通过正常的Transact-SQL连接来查询和更新FileTable,这些功能都与SQL Server管理工具以及备份等功能集成在一起。

使用FileTables的其他注意事项

关于FILESTREAM和FileTables

  • 您可以从FILESTREAM单独配置FileTables。 因此,您可以继续使用FILESTREAM功能,而无需启用非事务性访问或创建FileTables。
  • 除了通过FileTables之外,不存在对FILESTREAM数据的非事务性访问。 因此,启用非事务性访问时,现有FILESTREAM列和应用程序的行为不会受到影响。

 关于FileTables和非事务性访问

  • 您可以在数据库级别启用或禁用非事务性访问。
  • 您可以通过关闭数据库级非事务性访问或启用只读或完全读/写访问来配置或微调数据库级别的非事务性访问。

FileTables不支持内存映射文件

FileTables不支持内存映射文件。Notepad和Paint是使用内存映射文件的应用程序的两个常见示例。 您不能在与SQL Server数据库所在的计算机上使用这些应用程序来打开存储在FileTable中的文件。但是,您可以使用远程计算机中的这些应用程序打开存储在FileTable中的文件,因为在这种情况下不使用内存映射功能。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值