Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Научете се да съхранявате и анализирате документи във файлова система на Windows със семантично търсене на SQL Server – част 1

Статията разглежда съхраняването на неструктурирани данни с помощта на естествена структура на директории на Windows и управлението им чрез базата данни на SQL Server. Впоследствие демонстрираме как да извършим сравнителен анализ с помощта на семантично търсене, за да извлечем ценна информация от данните. Освен това ще получите практически опит в съхраняването и свързването на документи във файловата система на Windows и използването на семантично търсене.

От голямо значение както за начинаещите в базата данни, така и за професионалистите е да знаят как да прилагат стратегии за съхранение на файлове като File Table към технологии за търсене като Semantic Search за анализ на неструктурирани данни.

Предварителни условия

Предпоставките, посочени в този раздел, важат за цялата статия, която се състои от три части.

Концепции за таблица с файлове

Няма да навреди да имате основни познания за файловата таблица, използвана в бази данни на SQL Server. Независимо от това, тази част от статията предоставя подробна информация за това как да използвате файлови таблици за съхранение на документи.

Концепции за семантично търсене

Тъй като крайната цел на тази статия е да извърши сравнителен анализ с помощта на семантично търсене, силно се препоръчва да сте добре запознати с основните концепции на следното, особено ако се интересувате от прилагането на инструкциите:

  1. Концепции за семантично търсене.
  2. Основи на сравнителния анализ на документи.
  3. Основна употреба на семантично търсене.

Моля, вижте статията Как да използвате семантично търсене на SQL Server за да изпълните горните изисквания, при условие че имате основни умения за T-SQL.

Основи на пълнотекстово търсене

Освен това се насърчаваме да имате познания за пълнотекстово търсене, което се предлага като специална добавка заедно със семантично търсене по време на инсталацията на SQL Server.

Моля, имайте предвид, че семантичното търсене може също да се счита за разширена функция на пълнотекстово търсене, тъй като не може да бъде реализирано, без да се изпълнят основните изисквания за пълнотекстово търсене.

Моля, вижте статията Внедряване на пълнотекстово търсене в SQL Server 2016 за начинаещи, за да получите повече информация за пълнотекстово търсене.

Използван екземпляр на SQL

В тази статия използваме версия на SQL Server 2016, но следването на стъпките не би трябвало да е проблем с по-новите версии с малки изключения.

Настройване на база данни с активиран FILESTREAM

Трябва да използваме специален вид база данни, наречена FILESTREAM Enabled Database да съхранявате документи във файловата система на Windows и да ги управлявате от SQL базата данни.

Има някои стъпки, които трябва да бъдат изпълнени, преди да можем да създадем този специален тип база данни.

Активиране на FILESTREAM на ниво екземпляр

Едно от първите неща, които трябва да направите, е да активирате FILESTREAM на ниво екземпляр на SQL Server.

Въведете Конфигурация на SQL Server 2016 (или версията на вашия екземпляр на SQL, ако е различна от SQL 2016) в полето за търсене на Windows, обикновено разположено в долния ляв ъгъл на лентата на задачите, както е показано по-долу:

Щракнете, за да отворите SQL Server Configuration Manager .

Намерете и щракнете с десния бутон върху вашия SQL екземпляр, който е SQLTAB2016 в нашия случай и щракнете върху Свойства под SQL услуги:

Поставете отметка до Активиране на FILESTREAM за достъп до Transaction-SQL и Активиране на FILESTREAM за достъп до файл I/O под FILESTREAM раздел. Въведете подходящо име за споделяне на Windows също и щракнете върху OK , както е показано по-долу:

Промяна на нивото на достъп FILESTREAM

Следващото нещо е да промените нивото на достъп FILESTREAM от 0 на 2, ако вече не е променено.

Изпълнете следния T-SQL скрипт срещу главната база данни:

-- Enabling FILESTREAM for SQL instance in use
EXEC sp_configure filestream_access_level, 2  
RECONFIGURE

Резултатът е както следва:

Моля, не забравяйте, че е добре, ако изпълните горния скрипт, дори ако FILESTREAM вече е настроен на 2.

Създайте папка на Windows за съхраняване на базата данни

Моля, създайте папка на Windows C:\Sample\Data където ще съхранявате физически вашата SQL база данни:

Можете да изберете всяко устройство, различно от диск C.

Създаване на база данни с активиран FILESTREAM

Нека сега създадем нова база данни с активиран FILESTREAM с име EmployeesFilestreamSample като изпълните следния T-SQL скрипт срещу главната база данни:

-- Creating FILESTREAM enabled database
CREATE DATABASE EmployeesFilestreamSample
ON
PRIMARY ( NAME = EmployeesSampleData,
    FILENAME = 'c:\sample\data\EmployeesFilestreamSample.mdf'),
FILEGROUP FileStreamGroup1 CONTAINS FILESTREAM( NAME = EmployeesSampleFilestreamGroup,
    FILENAME = 'c:\sample\data\EmployeesSampleFilestreamGroup')
LOG ON  ( NAME = EmployeesSampleLog,
    FILENAME = 'c:\sample\data\EmployeesFilestreamLog.ldf')
GO

Резултатът е както следва:

Базата данни с активиран FILESTREAM е създадена успешно.

Проверете активирана база данни на FILESTREAM

Отидете в Object Explorer и разгънете EmployeesFilestreamSample база данни в Бази данни възел, за да видите новосъздадената база данни с активиран FILESTREAM.

Настройте таблица с файлове

След като създадем база данни с активиран FILESTREAM, следващата стъпка е да настроим Файлова таблица, което ще ни помогне да запазим нашите документи във файловата система на Windows.

Име директория FILESTREAM

За да създадем таблица с файлове, трябва да направим някои промени в основните свойства на базата данни.

Щракнете с десния бутон върху базата данни (EmployeesFilestreamSample ) в Object Explorer и щракнете върху Свойства :

Отидете на Опции Страница и име Име на директория FILESTREAM като EmployeesFilestreamDirectory, както е показано на следната фигура:

Задайте FILESTREAM Non-Transacted Access на ПЪЛЕН, както е показано по-долу, и щракнете върху OK:

Кликнете върху Да когато бъдете попитани дали сте добре да промените свойствата и да затворите всички връзки:

Създаване на таблица с файлове

Създайте нова таблица с файлове, за да съхранявате документите, като напишете и изпълните следния T-SQL скрипт:

USE EmployeesFilestreamSample

-- Creating Employees FileTable sample
CREATE TABLE EmployeesDocumentStore AS FileTable  
    WITH (   
          FileTable_Directory = 'EmployeesSampleFilestreamGroup',  
          FileTable_Collate_Filename = database_default  
         );  
GO

Разгледайте таблицата с файлове

Изберете Databases=> dbo.EmployeeDocumentStore=>Tables =>FileTables => EmployeesDocumentStore.

Щракнете с десния бутон върху EmployeesDocumentStore и щракнете върху Изследване на директория на FileTable , както е показано по-долу:

Коригиране на грешка в местоположението на файла (бъг на Microsoft)

Ако можете да видите папката, в която се предполага, че се съхраняват документите, тогава можете да започнете, но ако срещнете следната грешка, първо трябва да я поправите:

КОРЕКЦИЯ:Грешка „Местоположението на файла не може да бъде отворено“ възниква, когато се опитате да отворите директория на FileTable в SQL Server

Това е грешка на Microsoft, както е потвърдено от Microsoft:

За да коригирате тази грешка, трябва да изпълните сборна актуализация 11 за SQL Server 2016 SP2.

Моля, стартирайте корекцията, която отговаря на вашия SQL екземпляр въз основа на неговата версия, ако не използвате екземпляра на SQL Server, използван в тази статия, и сте изправени пред същия проблем.

Изтеглете актуализацията, ако е приложима за вашия SQL екземпляр, както е показано по-долу:

Трябва да приемете общите условия, за да продължите по-нататък, както следва:

След като актуализацията бъде инсталирана успешно, трябва да видите следното съобщение:

Разгледайте таблицата с файлове след отстраняване на грешка в местоположението

Сега трябва да можете да изследвате FileTable Directory:

Папката на Windows вече може да бъде запълнена с вашите неструктурирани документи, като документи на MS Word, както е показано по-долу:

Създавайте и запазвайте MS Word документи за служители

Създайте нов документ на MS Word и го наречете Asif постоянен служител, както е показано по-долу:

Добавете следния текст към този документ на Word и се уверете, че първият ред е заглавието на документа:

Asif Permanent Employee
Asif is a very experienced Project Manager with a solid programming background and highly skilled to work on data warehouse business intelligence (BI) solutions.
He is a quick learner and can work on multiple technologies and tools.
He has excellent communication skills and his overall rating is very good.

Не забравяйте да запазите документа.

Създайте друг документ на MS Word и го наречете Peter Permanent Employee със следния текст, където първият ред е заглавието на документа:

Peter Permanent Employee
Peter is a fresh Project Manager with a very strong programming background and highly skilled to work on data warehouse business intelligence (BI) solutions.
He can work with multiple teams and on multiple projects.
He has excellent business skills and his overall rating is good.

Моля, не забравяйте да запазите документа, който трябва да съдържа следния текст:

Преглед на съхранените документи

Въведете следния SQL код, за да видите как SQL базата данни е съхранила тези документи:

-- View files stored on Windows File System managed by File Table in SQL Database
SELECT stream_id
      ,file_stream
      ,[name]
      ,file_type
      ,cached_file_size
	  ,creation_time
FROM EmployeesFilestreamSample.dbo.EmployeesDocumentStore

Резултатът е както следва:

Честито! Успешно настроихте база данни с активиран FILESTREAM за съхраняване на документи във файловата система на Windows, управлявана от SQL база данни.

С други думи, вече можете да се възползвате напълно от файловата система на Windows, като създавате и съхранявате удобно неструктурирани документи, докато, от друга страна, можете напълно да управлявате тези съхранени документи чрез архитектура, съвместима с базата данни.

Моля, не премахвайте тези документи, ако искате да продължите инструкциите и да поддържате връзка, тъй като ще извършим сравнителен анализ на съхранените документи, използвайки семантично търсене в следващата част на тази статия.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как се създава булево поле да/не в SQL сървър?

  2. Как да настроите съпоставянето на колона в SQL Server (T-SQL)

  3. LOG10() Примери в SQL Server

  4. DevOps решения за автоматизация на разработка на бази данни

  5. CTE безкраен цикъл с ОПЦИЯ (макс. рекурсия 0)