Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Naucz się przechowywać i analizować dokumenty w systemie plików Windows za pomocą wyszukiwania semantycznego SQL Server — część 1

W artykule przeanalizowano przechowywanie nieustrukturyzowanych danych przy użyciu natywnej struktury katalogów systemu Windows i zarządzanie nimi za pośrednictwem bazy danych SQL Server. Następnie pokazujemy, jak przeprowadzić analizę porównawczą za pomocą Semantic Search, aby z danych wydobyć cenne informacje. Dodatkowo zdobędziesz praktyczne doświadczenie w przechowywaniu i łączeniu dokumentów w systemie plików Windows oraz korzystaniu z wyszukiwania semantycznego.

Zarówno dla początkujących, jak i dla profesjonalistów, bardzo ważne jest, aby wiedzieć, jak zastosować strategie przechowywania plików, takie jak tabela plików, w technologiach wyszukiwania, takich jak wyszukiwanie semantyczne, w celu analizy danych nieustrukturyzowanych.

Wymagania wstępne

Wymagania wstępne wymienione w tej sekcji dotyczą całego artykułu, który składa się z trzech części.

Koncepcje dotyczące tabeli plików

Nie zaszkodzi mieć podstawową wiedzę na temat tablicy plików używanej w bazach danych SQL Server. Niemniej jednak ta część artykułu zawiera szczegółowe informacje na temat korzystania z tabel plików do przechowywania dokumentów.

Koncepcje wyszukiwania semantycznego

Ponieważ ostatecznym celem tego artykułu jest przeprowadzenie analizy porównawczej przy użyciu wyszukiwania semantycznego, zaleca się, aby dobrze znać podstawowe pojęcia z poniższych, szczególnie jeśli jesteś zainteresowany wdrożeniem instrukcji:

  1. Koncepcje wyszukiwania semantycznego.
  2. Podstawy analizy porównawczej dokumentów.
  3. Podstawowe użycie wyszukiwania semantycznego.

Zapoznaj się z artykułem Jak korzystać z wyszukiwania semantycznego SQL Server aby spełnić powyższe wymagania, pod warunkiem posiadania podstawowych umiejętności T-SQL.

Podstawy wyszukiwania pełnotekstowego

Dodatkowo zachęcamy do znajomości wyszukiwania pełnotekstowego, które jest oferowane jako specjalny dodatek obok wyszukiwania semantycznego podczas instalacji programu SQL Server.

Należy pamiętać, że wyszukiwanie semantyczne może być również uważane za rozszerzoną funkcję wyszukiwania pełnotekstowego, ponieważ nie można go zaimplementować bez spełnienia podstawowych wymagań wyszukiwania pełnotekstowego.

Zapoznaj się z artykułem Implementacja wyszukiwania pełnotekstowego w SQL Server 2016 dla początkujących, aby uzyskać więcej informacji na temat wyszukiwania pełnotekstowego.

Instancja SQL w użyciu

W tym artykule używamy wersji SQL Server 2016, ale wykonanie tych kroków nie powinno stanowić problemu w przypadku nowszych wersji z kilkoma wyjątkami.

Konfiguruj bazę danych z włączoną funkcją FILESTREAM

Musimy użyć specjalnego rodzaju bazy danych o nazwie FILESTREAM Enabled Database do przechowywania dokumentów w systemie plików Windows i zarządzania nimi przez bazę danych SQL.

Jest kilka kroków, które należy wykonać, zanim będziemy mogli utworzyć ten specjalny typ bazy danych.

Włącz FILESTREAM na poziomie instancji

Jedną z pierwszych rzeczy do zrobienia jest włączenie FILESTREAM na poziomie instancji SQL Server.

Wpisz Konfiguracja SQL Server 2016 (lub wersję instancji SQL, jeśli jest inna niż SQL 2016) w polu wyszukiwania systemu Windows, zwykle znajdującym się w lewym dolnym rogu paska zadań, jak pokazano poniżej:

Kliknij, aby otworzyć Menedżera konfiguracji serwera SQL .

Zlokalizuj i kliknij prawym przyciskiem myszy swoją instancję SQL, czyli SQLTAB2016 w naszym przypadku i kliknij Właściwości w sekcji Usługi SQL:

Zaznacz Włącz FILESTREAM dla dostępu Transaction-SQL i Włącz FILESTREAM dla dostępu do plików we/wy pod ŚCIEMNĄ FILESTU patka. Wpisz odpowiednią nazwę udziału Windows również i kliknij OK , jak pokazano poniżej:

Zmień poziom dostępu FILESTREAM

Następną rzeczą jest zmiana poziomu dostępu FILESTREAM z 0 na 2, jeśli nie został jeszcze zmieniony.

Uruchom następujący skrypt T-SQL w głównej bazie danych:

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

Dane wyjściowe są następujące:

Pamiętaj, że uruchomienie powyższego skryptu jest w porządku, nawet jeśli FILESTREAM jest już ustawione na 2.

Utwórz folder Windows do przechowywania bazy danych

Utwórz folder Windows C:\Sample\Data gdzie zamierzasz fizycznie przechowywać bazę danych SQL:

Możesz wybrać dowolny dysk inny niż dysk C.

Utwórz bazę danych z obsługą FILESTREAM

Stwórzmy teraz nową bazę danych z obsługą FILESTREAM o nazwie EmployeesFilestreamSample uruchamiając następujący skrypt T-SQL na głównej bazie danych:

-- 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

Dane wyjściowe są następujące:

Baza danych obsługująca FILESTREAM została pomyślnie utworzona.

Sprawdź włączoną bazę danych FILESTREAM

Przejdź do Eksploratora obiektów i rozwiń Próbkę strumienia plików pracowników bazy danych w sekcji Bazy danych węzeł, aby wyświetlić nowo utworzoną bazę danych FILESTREAM Enabled.

Ustaw tabelę plików

Po utworzeniu bazy danych z włączoną funkcją FILESTREAM następnym krokiem jest skonfigurowanie tabeli plików, co pomoże nam zapisać nasze dokumenty w systemie plików Windows.

Nazwij katalog FILESTREAM

Aby utworzyć tabelę plików, musimy wprowadzić pewne zmiany w głównych właściwościach bazy danych.

Kliknij prawym przyciskiem bazę danych (EmployeesFilestreamSample ) w Eksploratorze obiektów i kliknij Właściwości :

Przejdź do Opcji Strona i nazwa Nazwa katalogu FILESTREAM jako EmployeesFilestreamDirectory, jak pokazano na poniższym rysunku:

Ustaw dostęp nietransakcyjny do FILESTREAM na PEŁNE, jak pokazano poniżej, i kliknij OK:

Kliknij Tak na pytanie, czy możesz zmienić właściwości i zamknąć wszystkie połączenia:

Utwórz tabelę plików

Utwórz nową tabelę plików do przechowywania dokumentów, wpisując i wykonując następujący skrypt T-SQL:

USE EmployeesFilestreamSample

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

Przeglądaj tabelę plików

Wybierz Bazy danych=> dbo.EmployeeDocumentStore=>Tabele =>Tabele plików => Sklep z dokumentami pracowników.

Kliknij prawym przyciskiem myszy PracownicyDocumentStore i kliknij Eksploruj katalog FileTable , jak pokazano poniżej:

Naprawianie błędu lokalizacji pliku (błąd Microsoft)

Jeśli jesteś w stanie wyświetlić folder, w którym mają być przechowywane dokumenty, dobrze jest iść, ale jeśli napotkasz następujący błąd, musisz go najpierw naprawić:

NAPRAW:Błąd „Nie można otworzyć lokalizacji pliku” podczas próby otwarcia katalogu FileTable w SQL Server

To jest błąd Microsoft potwierdzony przez Microsoft:

Aby naprawić ten błąd, musisz uruchomić zbiorczą aktualizację 11 dla SQL Server 2016 SP2.

Uruchom poprawkę, która pasuje do Twojej instancji SQL w oparciu o jej wersję, jeśli nie używasz instancji SQL Server używanej w tym artykule i napotykasz ten sam problem.

Pobierz aktualizację, jeśli dotyczy Twojej instancji SQL, jak pokazano poniżej:

Musisz zaakceptować regulamin, aby przejść dalej w następujący sposób:

Po pomyślnym zainstalowaniu aktualizacji powinien pojawić się następujący komunikat:

Przeglądaj tabelę plików po rozwiązaniu błędu lokalizacji

Teraz powinieneś być w stanie przeglądać katalog FileTable:

Folder Windows można teraz wypełnić nieustrukturyzowanymi dokumentami, takimi jak dokumenty MS Word, jak pokazano poniżej:

Twórz i zapisuj dokumenty MS Word dla pracowników

Utwórz nowy dokument MS Word i nazwij go Asif Permanent Employee, jak pokazano poniżej:

Dodaj następujący tekst do tego dokumentu programu Word i upewnij się, że pierwszy wiersz to tytuł dokumentu:

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.

Pamiętaj, aby zapisać dokument.

Utwórz kolejny dokument MS Word i nazwij go Peter Stały Pracownik z następującym tekstem, gdzie pierwszy wiersz to tytuł dokumentu:

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.

Pamiętaj, aby zapisać dokument, który powinien zawierać następujący tekst:

Wyświetl zapisane dokumenty

Wpisz następujący kod SQL, aby zobaczyć, jak baza danych SQL przechowuje te dokumenty:

-- 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

Dane wyjściowe są następujące:

Gratulacje! Pomyślnie skonfigurowałeś bazę danych z obsługą FILESTREAM do przechowywania dokumentów w systemie plików Windows zarządzanym przez bazę danych SQL.

Innymi słowy, możesz teraz w pełni korzystać z systemu plików Windows, wygodnie tworząc i przechowując nieustrukturyzowane dokumenty, podczas gdy z drugiej strony możesz w pełni zarządzać tymi przechowywanymi dokumentami dzięki spójnej architekturze bazy danych.

Nie usuwaj tych dokumentów, jeśli chcesz kontynuować samouczek i pozostać w kontakcie, ponieważ w następnej części tego artykułu przeprowadzimy analizę porównawczą przechowywanych dokumentów za pomocą wyszukiwania semantycznego.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Podłączanie RStudio do SQL Server

  2. Jak przekonwertować wartości wierszy na kolumny z dynamiczną liczbą kolumn?

  3. Jak zainstalować SQLOPS na komputerze Mac?

  4. Jak działa funkcja STRING_ESCAPE() w SQL Server (T-SQL)

  5. SQL Server 2008:jak nadać uprawnienia do nazwy użytkownika?