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

Функция FileTable обеспечивает поддержку пространства имен файлов Windows и совместимость с приложениями Windows для файлов данных, хранящихся в SQL Server. Таблица FileTable позволяет приложению интегрировать свои компоненты хранения и управления данными, а также обеспечивает работу интегрированных служб SQL Server, включая полнотекстовый и семантический поиск, с неструктурированными данными и метаданными.

Иными словами, появляется возможность хранить файлы и документы в специальных таблицах на SQL Server, называемых таблицами FileTable, но при этом доступ к ним возможен из приложений Windows без внесения каких-либо изменений в эти приложения, как если бы они хранились в файловой системе.

Функция FileTable построена на основе технологии SQL Server FILESTREAM. Дополнительные сведения о FILESTREAM см. в разделе FILESTREAM (SQL Server).

В этом разделе

  • Преимущества функции FileTable

  • Что такое таблица FileTable?

  • Дополнительные замечания об использовании таблиц FileTable

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

    • Таблицы FileTable не поддерживают файлы, отображенные на память

  • Связанные задачи

  • См. также

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

Таблицы FileTable имеют следующее назначение.

  • Совместимость с API-интерфейсами Windows для файлов данных, хранящихся в базе данных SQL Server. Совместимость с API-интерфейсами Windows включает следующее.

    • Потоковый доступ без транзакций и обновление на месте с заменой данных FILESTREAM.

    • Иерархическое пространство имен для каталогов и файлов.

    • Хранение атрибутов файлов, таких как дата создания и дата изменения.

    • Поддержка API-интерфейсов Windows для управления файлами и каталогами.

  • Совместимость с другими функциями SQL Server, включая средства управления, службы и возможности реляционных запросов через FILESTREAM и данные атрибутов файлов.

Таким образом, таблицы FileTable позволяют перешагнуть барьер, препятствовавший использованию SQL Server для хранения неструктурированных данных и управления данными, которые в настоящее время размещаются в виде файлов на файловом сервере. Предприятия получили возможность перенести данные с файловых серверов в таблицы FileTable, чтобы пользоваться и преимуществами интегрированного администрирования, и преимуществами служб, предоставляемыми SQL Server. В то же время сохраняется совместимость с существующими приложениями Windows, рассматривающими данные как файлы в файловой системе.

[В начало]

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

Для приложений, требующих хранения файлов и каталогов в базе данных, совместимости с API-интерфейсами Windows и нетранзакционного доступа к данным, SQL Server предоставляет специальные таблицы файлов, которые также называются таблицами FileTable. Таблицы FileTable являются специализированными пользовательскими таблицами с предварительно определенной схемой для хранения данных FILESTREAM, а также сведений об иерархии файлов и каталогов и атрибутах файлов.

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

  • Таблица FileTable представляет иерархию файлов и каталогов. Она содержит данные, относящиеся ко всем узлам в иерархии для папок и файлов, содержащихся в них. Эта иерархия начинается с корневого каталога, указанного при создании FileTable.

  • Каждая строка в таблице FileTable представляет файл или каталог.

  • Каждая строка содержит следующие элементы. Дополнительные сведения о схеме таблиц FileTable см. в разделе Схема FileTable.

    • Столбец file_stream для потока данных и stream_id для идентификатора (GUID). (Для каталога значение в столбце file_stream равно NULL.)

    • Столбцы path_locator и parent_path_locator для представления и обслуживания иерархии файлов и каталогов.

    • 10 атрибутов файлов, таких как дата создания и дата изменения, которые требуются для API-интерфейсов файлового ввода-вывода.

    • Столбец типа, который поддерживает полнотекстовый поиск и семантический поиск по файлам и документам.

  • В таблицах FileTable применяются определенные системные ограничения и триггеры, поддерживающие семантику пространства имен файлов.

  • Если база данных настроена для нетранзакционного доступа, то иерархия файлов и каталогов, представленная в таблице FileTable, отображается с помощью общего ресурса FILESTREAM, настроенного для экземпляра SQL Server. Это обеспечивает доступ приложениям Windows к файловой системе.

Ниже перечислены некоторые дополнительные характеристики таблиц FileTable.

  • Данные файлов и каталогов, хранящиеся в таблице FileTable, отображаются с помощью общего ресурса Windows для нетранзакционного доступа к файлам из приложений на основе API-интерфейсов Windows. Для приложения Windows это выглядит как обычная общая папка с файлами и каталогами. Приложения могут использовать богатый набор API-интерфейсов Windows для управления файлами и каталогами, находящимися в этой общей папке.

  • Иерархия каталогов, отображаемая в общем хранилище, является просто логической структурой каталога, сохраняемой в таблице FileTable.

  • Вызовы для создания или изменения файла или каталога через общий ресурс Windows перехватываются компонентом SQL Server и отражаются в соответствующих реляционных данных в таблице FileTable.

  • Операции API-интерфейсов Windows являются по своей природе нетранзакционными и не связаны с пользовательскими транзакциями. Тем не менее транзакционный доступ к данным FILESTREAM, хранящимся в таблице FileTable, полностью поддерживается, как это происходит для любого столбца FILESTREAM в обычной таблице.

  • Кроме того, таблицы FileTable можно запрашивать и обновлять с помощью обычного доступа Transact-SQL. Они интегрируются со средствами управления SQL Server и такими компонентами, как средство резервного копирования.

[В начало]

Дополнительные замечания об использовании таблиц FileTable

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

О функции FILESTREAM и таблицах FileTable

  • Можно настроить таблицы FileTable отдельно от FILESTREAM. Таким образом, можно продолжать пользоваться функцией FILESTREAM, не включая нетранзакционный доступ и не создавая таблицы FileTable.

  • Нетранзакционный доступ к данным FILESTREAM возможен исключительно с помощью таблиц FileTable. Таким образом, при включении нетранзакционного доступа поведение существующих столбцов FILESTREAM и приложений не изменяется.

О таблицах FileTable и нетранзакционном доступе

  • Можно включить или отключить нетранзакционный доступ на уровне базы данных.

  • Можно настроить или отрегулировать нетранзакционный доступ на уровне базы данных, отключив или включив доступ только для чтения или полный доступ для чтения и записи.

[В начало]

Таблицы FileTable не поддерживают файлы, отображенные на память

Таблицы FileTable не поддерживают файлы, отображенные на память. Двумя распространенными примерами приложений, в которых используются файлы, отображаемые на память, являются Notepad и Paint. Эти приложения нельзя использовать на том же компьютере, что и SQL Server, для открытия файлов, которые хранятся в FileTable. Но можно использовать эти приложения с удаленного компьютера для открытия файлов, хранящихся в FileTable, поскольку в этих обстоятельствах средство отображения на память не используется.

[В начало]

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

[В начало]

См. также

[В начало]