Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Erfahren Sie, wie Sie Dokumente im Windows-Dateisystem mit der semantischen Suche von SQL Server speichern und analysieren – Teil 1

Der Artikel untersucht das Speichern unstrukturierter Daten mithilfe der nativen Windows-Verzeichnisstruktur und deren Verwaltung über die SQL Server-Datenbank. Anschließend zeigen wir, wie man mithilfe der semantischen Suche vergleichende Analysen durchführt, um aus den Daten wertvolle Informationen zu gewinnen. Darüber hinaus erhalten Sie praktische Erfahrungen mit dem Speichern und Verknüpfen von Dokumenten im Windows-Dateisystem und mit der semantischen Suche.

Sowohl für Datenbankanfänger als auch für Profis ist es von großer Bedeutung zu wissen, wie man Dateispeicherstrategien wie File Table auf Suchtechnologien wie Semantic Search für die Analyse unstrukturierter Daten anwendet.

Voraussetzungen

Die in diesem Abschnitt genannten Voraussetzungen gelten für den vollständigen Artikel, der aus drei Teilen besteht.

Dateitabellenkonzepte

Grundlegende Kenntnisse der in SQL Server-Datenbanken verwendeten Dateitabellen können nicht schaden. Nichtsdestotrotz enthält dieser Teil des Artikels detaillierte Informationen zur Verwendung von Dateitabellen zum Speichern von Dokumenten.

Semantische Suchkonzepte

Da das ultimative Ziel dieses Artikels darin besteht, eine vergleichende Analyse mithilfe der semantischen Suche durchzuführen, wird dringend empfohlen, sich der folgenden Grundkonzepte bewusst zu sein, insbesondere wenn Sie an der Implementierung der exemplarischen Vorgehensweise(n) interessiert sind:

  1. Semantische Suchkonzepte.
  2. Dokumentiert die Grundlagen der vergleichenden Analyse.
  3. Grundlegende Verwendung der semantischen Suche.

Weitere Informationen finden Sie im Artikel So verwenden Sie die semantische Suche in SQL Server um die oben genannten Anforderungen zu erfüllen, vorausgesetzt, Sie verfügen über grundlegende T-SQL-Kenntnisse.

Grundlagen der Volltextsuche

Darüber hinaus sollten Sie über Kenntnisse der Volltextsuche verfügen, die als spezielles Add-on zusammen mit der semantischen Suche während der SQL Server-Installation angeboten wird.

Bitte beachten Sie, dass die semantische Suche auch als erweiterte Funktion der Volltextsuche angesehen werden kann, da sie nicht implementiert werden kann, ohne die grundlegenden Anforderungen der Volltextsuche zu erfüllen.

Weitere Informationen zur Volltextsuche finden Sie im Artikel Volltextsuche in SQL Server 2016 für Anfänger implementieren.

SQL-Instanz in Verwendung

Wir verwenden in diesem Artikel die Version von SQL Server 2016, aber das Befolgen der Schritte sollte mit den neueren Versionen mit wenigen Ausnahmen kein Problem darstellen.

Richten Sie eine FILESTREAM-fähige Datenbank ein

Wir müssen eine spezielle Art von Datenbank namens FILESTREAM Enabled Database verwenden um Dokumente im Windows-Dateisystem zu speichern und von der SQL-Datenbank zu verwalten.

Es gibt einige Schritte, die abgeschlossen werden müssen, bevor wir diesen speziellen Datenbanktyp erstellen können.

Aktivieren Sie FILESTREAM auf Instanzebene

Eines der ersten Dinge, die Sie tun müssen, ist, FILESTREAM auf der Ebene der SQL Server-Instanz zu aktivieren.

Geben Sie SQL Server 2016-Konfiguration ein (oder Ihre SQL-Instanzversion, wenn es sich nicht um SQL 2016 handelt) im Windows-Suchfeld, das sich im Allgemeinen in der unteren linken Ecke der Taskleiste befindet, wie unten gezeigt:

Klicken Sie hier, um den SQL Server Configuration Manager zu öffnen .

Suchen Sie Ihre SQL-Instanz, die SQLTAB2016 ist, und klicken Sie mit der rechten Maustaste darauf in unserem Fall, und klicken Sie auf Eigenschaften unter SQL-Dienste:

Aktivieren Sie FILESTREAM für Transaction-SQL-Zugriff aktivieren und FILESTREAM für Datei-E/A-Zugriff aktivieren unter FILESTREAM Tab. Geben Sie einen geeigneten Windows-Freigabenamen ein und klicken Sie auf OK , wie unten gezeigt:

Ändern Sie die FILESTREAM-Zugriffsebene

Als Nächstes ändern Sie die FILESTREAM-Zugriffsebene von 0 auf 2, falls sie noch nicht geändert wurde.

Führen Sie das folgende T-SQL-Skript für die Master-Datenbank aus:

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

Die Ausgabe sieht wie folgt aus:

Bitte denken Sie daran, dass es in Ordnung ist, wenn Sie das obige Skript ausführen, auch wenn FILESTREAM bereits auf 2 gesetzt ist.

Erstellen Sie einen Windows-Ordner zum Speichern der Datenbank

Bitte erstellen Sie einen Windows-Ordner C:\Sample\Data wo Sie Ihre SQL-Datenbank physisch speichern werden:

Sie können ein anderes Laufwerk als C-Laufwerk auswählen.

Erstellen Sie eine FILESTREAM-fähige Datenbank

Lassen Sie uns nun eine neue FILESTREAM-fähige Datenbank mit dem Namen EmployeesFilestreamSample erstellen indem Sie das folgende T-SQL-Skript für die Master-Datenbank ausführen:

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

Die Ausgabe sieht wie folgt aus:

FILESTREAM-fähige Datenbank wurde erfolgreich erstellt.

Prüfen Sie die FILESTREAM-fähige Datenbank

Gehen Sie zum Objekt-Explorer und erweitern Sie das EmployeesFilestreamSample Datenbank unter Datenbanken -Knoten, um die neu erstellte FILESTREAM-fähige Datenbank anzuzeigen.

Dateitabelle einrichten

Nachdem wir eine FILESTREAM-fähige Datenbank erstellt haben, besteht der nächste Schritt darin, eine Dateitabelle einzurichten was uns helfen wird, unsere Dokumente im Windows-Dateisystem zu speichern.

Name des FILESTREAM-Verzeichnisses

Um eine Dateitabelle zu erstellen, müssen wir einige Änderungen an den Hauptdatenbankeigenschaften vornehmen.

Klicken Sie mit der rechten Maustaste auf die Datenbank (EmployeesFilestreamSample ) im Objekt-Explorer und klicken Sie auf Eigenschaften :

Gehen Sie zu den Optionen Seite und Name FILESTREAM-Verzeichnisname als EmployeesFilestreamDirectory, wie in der folgenden Abbildung gezeigt:

Legen Sie FILESTREAM-Zugriff ohne Transaktion fest auf FULL, wie unten gezeigt, und klicken Sie auf OK:

Klicken Sie auf Ja wenn Sie gefragt werden, ob Sie in Ordnung sind, die Eigenschaften zu ändern und alle Verbindungen zu schließen:

Dateitabelle erstellen

Erstellen Sie eine neue Dateitabelle zum Speichern der Dokumente, indem Sie das folgende T-SQL-Skript eingeben und ausführen:

USE EmployeesFilestreamSample

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

Dateitabelle durchsuchen

Wählen Sie Datenbanken=> dbo.EmployeeDocumentStore=>Tabellen =>Dateitabellen => MitarbeiterDocumentStore.

Klicken Sie mit der rechten Maustaste auf EmployeesDocumentStore und klicken Sie auf Dateitabellenverzeichnis durchsuchen , wie unten gezeigt:

Fixierung des Dateispeicherortfehlers (Microsoft-Bug)

Wenn Sie den Ordner sehen können, in dem Dokumente gespeichert werden sollen, können Sie loslegen, aber wenn Sie auf den folgenden Fehler stoßen, müssen Sie ihn zuerst beheben:

FIX:Der Fehler „Der Dateispeicherort kann nicht geöffnet werden“ tritt auf, wenn Sie versuchen, ein FileTable-Verzeichnis in SQL Server zu öffnen

Dies ist ein Microsoft-Fehler, wie von Microsoft bestätigt:

Um diesen Fehler zu beheben, müssen Sie das kumulative Update 11 für SQL Server 2016 SP2 ausführen.

Bitte führen Sie den Fix aus, der Ihrer SQL-Instanz basierend auf ihrer Version entspricht, wenn Sie nicht die in diesem Artikel verwendete SQL Server-Instanz verwenden und dasselbe Problem haben.

Laden Sie das Update herunter, wenn es auf Ihre SQL-Instanz anwendbar ist, wie unten gezeigt:

Sie müssen die Nutzungsbedingungen akzeptieren, um wie folgt fortfahren zu können:

Sobald das Update erfolgreich installiert wurde, sollten Sie die folgende Meldung sehen:

Dateitabelle nach Behebung des Standortfehlers durchsuchen

Jetzt sollten Sie in der Lage sein, das FileTable-Verzeichnis zu durchsuchen:

Der Windows-Ordner kann nun wie unten gezeigt mit Ihren unstrukturierten Dokumenten wie MS Word-Dokumenten gefüllt werden:

MS Word-Dokumente für Mitarbeiter erstellen und speichern

Erstellen Sie ein neues MS Word-Dokument und nennen Sie es Asif Permanent Employee, wie unten gezeigt:

Fügen Sie diesem Word-Dokument den folgenden Text hinzu und stellen Sie sicher, dass die erste Zeile der Titel des Dokuments ist:

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.

Denken Sie daran, das Dokument zu speichern.

Erstellen Sie ein weiteres MS Word-Dokument und nennen Sie es Peter Festangestellter mit folgendem Text, wobei die erste Zeile der Titel des Dokuments ist:

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.

Bitte denken Sie daran, das Dokument zu speichern, das folgenden Text enthalten sollte:

Gespeicherte Dokumente anzeigen

Geben Sie den folgenden SQL-Code ein, um anzuzeigen, wie die SQL-Datenbank diese Dokumente gespeichert hat:

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

Die Ausgabe sieht wie folgt aus:

Herzliche Glückwünsche! Sie haben erfolgreich eine FILESTREAM-fähige Datenbank eingerichtet, um Dokumente im Windows-Dateisystem zu speichern, das von einer SQL-Datenbank verwaltet wird.

Mit anderen Worten, Sie können jetzt die Vorteile des Windows-Dateisystems voll ausschöpfen, indem Sie bequem unstrukturierte Dokumente erstellen und speichern, während Sie andererseits diese gespeicherten Dokumente durch eine datenbankkonsistente Architektur vollständig verwalten können.

Bitte entfernen Sie diese Dokumente nicht, wenn Sie mit der exemplarischen Vorgehensweise fortfahren und in Kontakt bleiben möchten, da wir im nächsten Teil dieses Artikels eine vergleichende Analyse der gespeicherten Dokumente mithilfe der semantischen Suche durchführen werden.