Таблицы FileTable (SQL Server)FileTables (SQL Server)

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server нетБаза данных SQL AzureнетХранилище данных SQL AzureнетParallel Data WarehouseAPPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Функция FileTable обеспечивает поддержку пространства имен файлов Windows и совместимость с приложениями Windows для файлов данных, хранящихся в SQL ServerSQL Server.The FileTable feature brings support for the Windows file namespace and compatibility with Windows applications to the file data stored in SQL ServerSQL Server. Таблица FileTable позволяет приложению интегрировать свои компоненты хранения и управления данными, а также обеспечивает работу интегрированных служб SQL ServerSQL Server , включая полнотекстовый и семантический поиск, с неструктурированными данными и метаданными.FileTable lets an application integrate its storage and data management components, and provides integrated SQL ServerSQL Server services - including full-text search and semantic search - over unstructured data and metadata.

Иными словами, появляется возможность хранить файлы и документы в специальных таблицах на SQL ServerSQL Server , называемых таблицами FileTable, но при этом доступ к ним возможен из приложений Windows без внесения каких-либо изменений в эти приложения, как если бы они хранились в файловой системе.In other words, you can store files and documents in special tables in SQL ServerSQL Server called FileTables, but access them from Windows applications as if they were stored in the file system, without making any changes to your client applications.

Функция FileTable построена на основе технологии SQL ServerSQL Server FILESTREAM.The FileTable feature builds on top of SQL ServerSQL Server FILESTREAM technology. Дополнительные сведения о FILESTREAM см. в разделе FILESTREAM (SQL Server).To learn more about FILESTREAM, see FILESTREAM (SQL Server).

Преимущества функции FileTableBenefits of the FileTable Feature

Таблицы FileTable имеют следующее назначение.The goals of the FileTable feature include the following:

  • Совместимость с API-интерфейсами Windows для файлов данных, хранящихся в базе данных SQL ServerSQL Server .Windows API compatibility for file data stored within a SQL ServerSQL Server database. Совместимость с API-интерфейсами Windows включает следующее.Windows API compatibility includes the following:

    • Потоковый доступ без транзакций и обновление на месте с заменой данных FILESTREAM.Non-transactional streaming access and in-place updates to FILESTREAM data.

    • Иерархическое пространство имен для каталогов и файлов.A hierarchical namespace of directories and files.

    • Хранение атрибутов файлов, таких как дата создания и дата изменения.Storage of file attributes, such as created date and modified date.

    • Поддержка API-интерфейсов Windows для управления файлами и каталогами.Support for Windows file and directory management APIs.

  • Совместимость с другими функциями SQL ServerSQL Server , включая средства управления, службы и возможности реляционных запросов через FILESTREAM и данные атрибутов файлов.Compatibility with other SQL ServerSQL Server features including management tools, services, and relational query capabilities over FILESTREAM and file attribute data.

Таким образом, таблицы FileTable позволяют перешагнуть барьер, препятствовавший использованию SQL ServerSQL Server для хранения неструктурированных данных и управления данными, которые в настоящее время размещаются в виде файлов на файловом сервере.Thus FileTables remove a significant barrier to the use of SQL ServerSQL Server for the storage and management of unstructured data that is currently residing as files on file servers. Предприятия получили возможность перенести данные с файловых серверов в таблицы FileTable, чтобы пользоваться и преимуществами интегрированного администрирования, и преимуществами служб, предоставляемыми SQL ServerSQL Server.Enterprises can move this data from file servers into FileTables to take advantage of integrated administration and services provided by SQL ServerSQL Server. В то же время сохраняется совместимость с существующими приложениями Windows, рассматривающими данные как файлы в файловой системе.At the same time, they can maintain Windows application compatibility for their existing Windows applications that see this data as files in the file system.

Что такое таблица FileTable?What Is a FileTable?

SQL ServerSQL Server предоставляет специальные таблицы файлов, которые также называются таблицами FileTable, для приложений, требующих хранения файлов и каталогов в базе данных, совместимости с API-интерфейсами Windows и нетранзакционного доступа к данным.provides a special table of files, also referred to as a FileTable, for applications that require file and directory storage in the database, with Windows API compatibility and non-transactional access. Таблицы FileTable являются специализированными пользовательскими таблицами с предварительно определенной схемой для хранения данных FILESTREAM, а также сведений об иерархии файлов и каталогов и атрибутах файлов.A FileTable is a specialized user table with a pre-defined schema that stores FILESTREAM data, as well as file and directory hierarchy information and file attributes.

Таблицы FileTable обеспечивают следующие функциональные возможности.A FileTable provides the following functionality:

  • Таблица FileTable представляет иерархию файлов и каталогов.A FileTable represents a hierarchy of directories and files. Она содержит данные, относящиеся ко всем узлам в иерархии для папок и файлов, содержащихся в них.It stores data related to all the nodes in that hierarchy, for both directories and the files they contain. Эта иерархия начинается с корневого каталога, указанного при создании FileTable.This hierarchy starts from a root directory that you specify when you create the FileTable.

  • Каждая строка в таблице FileTable представляет файл или каталог.Every row in a FileTable represents a file or a directory.

  • Каждая строка содержит следующие элементы.Every row contains the following items. Дополнительные сведения о схеме таблиц FileTable см. в разделе FileTable Schema.For more information about the schema of a FileTable, see FileTable Schema.

    • Столбец file_stream для данных потока и идентификатор stream_id (GUID).A file_stream column for stream data and a stream_id (GUID) identifier. (Для каталога значение в столбце file_stream равно NULL.)(The file_stream column is NULL for a directory.)

    • Столбцы path_locator и parent_path_locator для представления и обслуживания текущего элемента (файла или каталога) и иерархии каталогов.Both path_locator and parent_path_locator columns for representing and maintaining the current item (file or directory) and directory hierarchy.

    • 10 атрибутов файлов, таких как дата создания и дата изменения, которые требуются для API-интерфейсов файлового ввода-вывода.10 file attributes such as created date and modified date that are useful with file I/O APIs.

    • Столбец типа, который поддерживает полнотекстовый поиск и семантический поиск по файлам и документам.A type column that supports full-text search and semantic search over files and documents.

  • В таблицах FileTable применяются определенные системные ограничения и триггеры, поддерживающие семантику пространства имен файлов.A FileTable enforces certain system-defined constraints and triggers to maintain file namespace semantics.

  • Если база данных настроена для нетранзакционного доступа, то иерархия файлов и каталогов, представленная в таблице FileTable, отображается с помощью общего ресурса FILESTREAM, настроенного для экземпляра SQL ServerSQL Server .When the database is configured for non-transactional access, the file and directory hierarchy represented in the FileTable is exposed under the FILESTREAM share configured for the SQL ServerSQL Server instance. Это обеспечивает доступ приложениям Windows к файловой системе.This provides file system access for Windows applications.

Ниже перечислены некоторые дополнительные характеристики таблиц FileTable.Some additional characteristics of FileTables include the following:

  • Данные файлов и каталогов, хранящиеся в таблице FileTable, отображаются с помощью общего ресурса Windows для нетранзакционного доступа к файлам из приложений на основе API-интерфейсов Windows.The file and directory data stored in a FileTable is exposed through a Windows share for non-transactional file access for Windows API based applications. Для приложения Windows это выглядит как обычная общая папка с файлами и каталогами.For a Windows application, this looks like a normal share with its files and directories. Приложения могут использовать богатый набор API-интерфейсов Windows для управления файлами и каталогами, находящимися в этой общей папке.Applications can use a rich set of Windows APIs to manage the files and directories under this share.

  • Иерархия каталогов, отображаемая в общем хранилище, является просто логической структурой каталога, сохраняемой в таблице FileTable.The directory hierarchy surfaced through the share is a purely logical directory structure that is maintained within the FileTable.

  • Вызовы для создания или изменения файла или каталога через общий ресурс Windows перехватываются компонентом SQL ServerSQL Server и отражаются в соответствующих реляционных данных в таблице FileTable.Calls to create or change a file or directory through the Windows share are intercepted by a SQL ServerSQL Server component and reflected in the corresponding relational data in the FileTable.

  • Операции API-интерфейсов Windows являются по своей природе нетранзакционными и не связаны с пользовательскими транзакциями.Windows API operations are non-transactional in nature, and are not associated with user transactions. Тем не менее транзакционный доступ к данным FILESTREAM, хранящимся в таблице FileTable, полностью поддерживается, как это происходит для любого столбца FILESTREAM в обычной таблице.However, transactional access to FILESTREAM data stored in a FileTable is fully supported, as is the case for any FILESTREAM column in a regular table.

  • Кроме того, таблицы FileTable можно запрашивать и обновлять с помощью обычного доступа Transact-SQLTransact-SQL .FileTables can also be queried and updated through normal Transact-SQLTransact-SQL access. Они интегрируются со средствами управления SQL ServerSQL Server и такими компонентами, как средство резервного копирования.They are also integrated with SQL ServerSQL Server management tools, and features such as backup.

  • Нельзя отправить запрос по электронной почте через компонент dbmail и вложить файл, расположенный в каталоге filestream (и filetable соответственно).You are unable to send an email request through dbmail and attach a file located in a filestream directory (and therefore filetable). Драйвер фильтра файловой системы RsFx0420 проверяет запросы ввода-вывода, входящие в папку filestream и исходящие из нее.The filesystem filter driver RsFx0420 inspects incoming I/O requests going in and out of the filestream folder. Запросы, которые не исходят из исполняемого файла SQL Server и кода Filestream, будут прямо запрещены.If the request is not both from the SQLServer executable and Filestream code, they are explicitly disallowed.

Дополнительные замечания об использовании таблиц FileTableAdditional Considerations for Using FileTables

Вопросы управленияAdministrative Considerations

О функции FILESTREAM и таблицах FileTableAbout FILESTREAM and FileTables

  • Можно настроить таблицы FileTable отдельно от FILESTREAM.You configure FileTables separately from FILESTREAM. Таким образом, можно продолжать пользоваться функцией FILESTREAM, не включая нетранзакционный доступ и не создавая таблицы FileTable.Therefore you can continue to use the FILESTREAM feature without enabling non-transactional access or creating FileTables.

  • Нетранзакционный доступ к данным FILESTREAM возможен исключительно с помощью таблиц FileTable.There is no non-transactional access to FILESTREAM data except through FileTables. Таким образом, при включении нетранзакционного доступа поведение существующих столбцов FILESTREAM и приложений не изменяется.Therefore, when you enable non-transactional access, the behavior of existing FILESTREAM columns and applications is not affected.

О таблицах FileTable и нетранзакционном доступеAbout FileTables and non-transactional access

  • Можно включить или отключить нетранзакционный доступ на уровне базы данных.You can enable or disable non-transactional access at the database level.

  • Можно настроить или отрегулировать нетранзакционный доступ на уровне базы данных, отключив или включив доступ только для чтения или полный доступ для чтения и записи.You can configure or fine-tune non-transactional access at the database level by turning it off, or by enabling read only or full read/write access.

Таблицы FileTable не поддерживают файлы, отображенные на памятьFileTables Do Not Support Memory-Mapped Files

Таблицы FileTable не поддерживают файлы, отображенные на память.FileTables do not support memory-mapped files. Двумя распространенными примерами приложений, в которых используются файлы, отображаемые на память, являются Notepad и Paint.Notepad and Paint are two common examples of applications that use memory-mapped files. Эти приложения нельзя использовать на том же компьютере, что и SQL ServerSQL Server , для открытия файлов, которые хранятся в FileTable.You cannot use these applications on the same computer as SQL ServerSQL Server to open files that are stored in a FileTable. Но можно использовать эти приложения с удаленного компьютера для открытия файлов, хранящихся в FileTable, поскольку в этих обстоятельствах средство отображения на память не используется.However you can use these applications from a remote computer to open files that are stored in a FileTable, because in these circumstances the memory-mapping feature is not used.

Связанные задачиRelated Tasks

Включение необходимых компонентов для таблицы FileTableEnable the Prerequisites for FileTable
Описывает способ включения компонентов, обязательных для создания и использования таблиц FileTable.Describes how to enable the prerequisites for creating and using FileTables.

Создание, изменение и удаление таблиц FileTableCreate, Alter, and Drop FileTables
Описывает способы создания новых таблиц FileTable и изменения или удаления существующих таблиц FileTable.Describes how to create a new FileTable, or alter or drop an existing FileTable.

выполнить загрузку файлов в таблицу FileTablesLoad Files into FileTables
Описывает процедуру загрузки или переноса файлов в таблицы FileTable.Describes how to load or migrate files into FileTables.

Работа с каталогами и путями в таблицах FileTableWork with Directories and Paths in FileTables
Описывает структуру каталогов, в которой файлы хранятся в таблицах FileTable.Describes the directory structure in which the files are stored in FileTables.

Доступ к таблицам FileTable с помощью Transact-SQLAccess FileTables with Transact-SQL
Описывает, как команды DML языка обработки данных Transact-SQL работают с таблицами FileTable.Describes how Transact-SQL data manipulation language (DML) commands work with FileTables.

Доступ к таблицам FileTable с помощью API-интерфейсов ввода-вывода файловAccess FileTables with File Input-Output APIs
Описание работы файловой системы ввода-вывода с таблицами FileTable.Describes how file system I/O works on a FileTable.

Управление таблицами FileTableManage FileTables
Описывает стандартные административные задачи по управлению таблицами FileTables.Describes common administrative tasks for managing FileTables.

См. такжеRelated Content

FileTable SchemaFileTable Schema
Описывает стандартные и фиксированные схемы таблицы FileTable.Describes the pre-defined and fixed schema of a FileTable.

Совместимость FileTable с другими компонентами SQL ServerFileTable Compatibility with Other SQL Server Features
Описывает работу таблиц FileTable совместно с другими компонентами SQL Server.Describes how FileTables work with other features of SQL Server.

Инструкции FileTable языка DDL, функции, хранимые процедуры и представленияFileTable DDL, Functions, Stored Procedures, and Views
Приведен список инструкций Transact-SQLTransact-SQL и объектов базы данных SQL ServerSQL Server , добавленных или измененных для поддержки функциональности FileTable.Lists the Transact-SQLTransact-SQL statements and the SQL ServerSQL Server database objects that have been added or changed to support the FileTable feature.

См. также:See Also

Динамические административные представления Filestream и FileTable (Transact-SQL)Filestream and FileTable Dynamic Management Views (Transact-SQL)
Представления каталога Filestream и FileTable (Transact-SQL)Filestream and FileTable Catalog Views (Transact-SQL)
Системные хранимые процедуры Filestream и FileTable (Transact-SQL)Filestream and FileTable System Stored Procedures (Transact-SQL)