Поделиться через


FileTables (SQL Server)

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

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

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

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

К целям функции FileTable относятся следующие:

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

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

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

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

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

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

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

Что такое FileTable?

SQL Server предоставляет специальную таблицу файлов, которая также называется FileTable, для приложений, требующих хранения файлов и каталогов в базе данных, с совместимостью API Windows и доступом без транзакций. 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.

Ниже приведены некоторые дополнительные характеристики FileTables:

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

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

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

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

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

Дополнительные рекомендации по использованию fileTables

Административные соображения

Сведения о FILESTREAM и FileTables

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

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

Сведения о fileTables и доступе без транзакций

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

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

FileTables не поддерживают файлы Memory-Mapped

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

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

Включение необходимых компонентов для FileTable
Описывает способ включения компонентов, обязательных для создания и использования таблиц FileTable.

Создание, изменение и удаление таблиц FileTables
Описывает, как создать таблицу FileTable или изменить или удалить существующую таблицу FileTable.

Загрузка файлов в таблицы FileTable
Описывает процедуру загрузки или переноса файлов в таблицы FileTable.

Работа с каталогами и путями в FileTables
Описывает структуру каталогов, в которой файлы хранятся в таблицах FileTable.

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

Доступ к таблицам FileTable с помощью API-интерфейсов ввода-вывода файлов
Как работает файловая система ввода-вывода на FileTable.

Управление FileTable
Описывает стандартные административные задачи по управлению таблицами FileTables.

Связанные материалы

Схема FileTable
Описывает предопределенную и фиксированную схему таблицы FileTable.

Совместимость FileTable с другими компонентами SQL Server
Описывает работу FileTables с другими функциями SQL Server.

FileTable DDL, функции, хранимые процедуры и представления
Выводит список инструкций Transact-SQL и объектов базы данных SQL Server, которые были добавлены или изменены для поддержки функции FileTable.