Сравнение параметров для хранения больших двоичных объектов (SQL Server)

Область применения: SQL Server

Обсуждает и сравнивает параметры, доступные для хранения файлов и документов в SQL Server.

Хранение файлов в базе данных — преимущества и ожидания

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

Интеграция неструктурированных данных в реляционную базу данных дает следующие преимущества:

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

Однако, как правило, хранить неструктурированные данные в реляционных базах данных было неудобно. Переписывать работающие приложения (Microsoft Word, Adobe Reader и т. д.) для обеспечения взаимодействия через API-интерфейсы реляционной базы данных было непрактично. Этим приложениям нужно, чтобы данные были доступны через API-интерфейсы Windows. Приложения предъявляют указанные ниже требования.

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

В прошлом в SQL Server не были предусмотрены способы хранения неструктурированных данных в реляционных базах данных. Однако в настоящее время такие способы предлагаются.

FILESTREAM

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

FileTables

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

Сравнение FILESTREAM и таблиц FileTable

Функция Файловый сервер и решение для базы данных Решение FILESTREAM Решение FileTable
Одно решение для задач управления No Да Да
Один набор служб: поиск, отчеты, запросы и т. д. No Да Да
Интегрированная модель безопасности No Да Да
Обновление на месте для данных FILESTREAM Да No Да
Иерархия каталогов и файлов сохраняется в базе данных No No Да
Совместимость с приложениями Windows Да No Да
Реляционный доступ к атрибутам файлов No No Да

Сравнение FILESTREAM и удаленного хранилища больших двоичных объектов (RBS)

Еще один вариант хранения неструктурированных данных — Удаленное хранилище больших двоичных объектов (RBS). Дополнительные сведения см. в статье Удаленное хранилище больших двоичных объектов (SQL Server).

Дополнительные сведения

FILESTREAM (SQL Server)
FileTables (SQL Server)
Удаленное хранилище больших двоичных объектов (SQL Server)