FILESTREAM/FILETABLE Разъяснения по внедрению
Недавно наша команда изучала FILESTREAM, чтобы расширить возможности нашего проприетарного приложения. Основной целью этого приложения является управление различными PDFS, изображениями и документами для всех деталей, которые мы производим. Наше приложение ASP использует несколько сторонних инструментов для просмотра этих файлов. В настоящее время у нас есть 980 ГБ данных на файловом сервере. У нас есть около 200 ГБ двоичных данных в SQL Server, которые мы хотели бы извлечь, поскольку они неэффективны, поэтому FILESTREAM, по-видимому, является хорошим компромиссом для двух основных проблем хранения / доступа к данным.
Несколько вещей нам не совсем понятны:
FILESTREAM Может или не может хранить свои данные на диске, который не подключен локально. У нас уже есть файловый сервер с RAID 10 (диски 1,5 ТБ). Этот сервер хранит все документы прямо сейчас. Должны ли мы перенести эти диски на SQL Server для FILESTREAM? Это было бы непросто, так как сервер также удваивается как сервер приложений (две виртуальные машины на одном физическом сервере).
FILETABLE хранит общие метаданные о файлах, но где хранится полнотекстовая часть для поиска файлов, таких как doc/docx? Это отдельно? Вы можете свободно добавить критерии для поиска? Если да, то любые ссылки для уточнения будут оценены.
Можно ли ссылаться на FILETABLE в другой таблице с внешним ключом?
заранее спасибо
РЕДАКТИРОВАТЬ: Для тех, у кого есть эти вопросы, это веб-видео охватывало все и многое другое с точки зрения объяснения потока файлов с 2008 по 2012 год и рассуждений о них (я бы серьезно повторил его, если бы мог): http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2270
В заключение, мы не будем использовать FILESTREAM, так как это будет огромным подъёмом для инвестиций.
РЕДАКТИРОВАТЬ 2:
Обновление до #1 - После тщательной оценки FileTable в дополнение к FILESTREAM мы получили выигрышную комбинацию. Нам действительно пришлось перенести файлы на новый сервер (это было не слишком болезненно, поскольку они находились на одной и той же виртуальной машине). Честно говоря, потребовалось больше времени, чтобы написать инструмент для извлечения двоичных данных из SQL в файловую систему.
Обновление до #2 - это было отдельно, но снова у Боба был отличный вебинар, объясняющий это: http://channel9.msdn.com/Events/TechEd/Europe/2012/DBI411
Обновление до №3. Используя TFT-наследование, мы переработали имеющуюся у нас таблицу документов (за исключением огромных двоичных двоичных объектов), что потребовало очень небольших изменений в наших старых приложениях. Это был огромный результат для команды разработчиков.
1 ответ
Местоположение, в котором хранятся файлы для FileTables, должно быть локальным или, по крайней мере, должно отображаться на SQL Server как локальное, чтобы хитрый драйвер san мог его обмануть. Так как материал FileTables построен на материале FILESTREAM, я предполагаю, что ограничения будут такими же.
Поиск файловых таблиц выполняется с помощью функции abletable, которая задокументирована в MSDN. Критерии поиска используют тот же синтаксис, что и поиск FULLTEXT AFAIK.
В любом случае FileTable является типичной таблицей, поэтому ее можно объединить, выполнить поиск или что-то еще. Единственное, что вам нужно использовать некоторые функции сервера sql, чтобы изменить направляющие FILESTREAM на что-то более полезное, например путь к файлу.