sql >> Database >  >> RDS >> Sqlserver

Leer documenten op het Windows-bestandssysteem op te slaan en te analyseren met SQL Server Semantic Search - Deel 1

Het artikel onderzoekt het opslaan van ongestructureerde gegevens met behulp van de native Windows-directorystructuur en het beheren ervan via de SQL Server-database. Vervolgens laten we zien hoe u met behulp van Semantic Search een vergelijkende analyse kunt uitvoeren om waardevolle informatie uit de gegevens te halen. Bovendien ga je wat praktische ervaring opdoen met het opslaan en koppelen van documenten op het Windows-bestandssysteem en het gebruik van Semantic Search.

Het is van groot belang voor zowel database-beginners als professionals om te weten hoe ze bestandsopslagstrategieën zoals File Table kunnen toepassen op zoektechnologieën zoals Semantic Search voor ongestructureerde gegevensanalyse.

Vereisten

De vereisten die in deze sectie worden genoemd, zijn van toepassing op het volledige artikel, dat uit drie delen bestaat.

Bestandstabelconcepten

Het zou geen kwaad om basiskennis te hebben van de bestandstabel die wordt gebruikt in SQL Server-databases. Desalniettemin biedt dit deel van het artikel gedetailleerde informatie over het gebruik van bestandstabellen voor het opslaan van documenten.

Semantische zoekconcepten

Aangezien het uiteindelijke doel van dit artikel is om vergelijkende analyses uit te voeren met behulp van Semantic Search, wordt het ten zeerste aanbevolen om goed op de hoogte te zijn van de basisconcepten van het volgende, met name als u geïnteresseerd bent in het implementeren van de walkthrough(s):

  1. Semantische zoekconcepten.
  2. Documenten basisprincipes van vergelijkende analyse.
  3. Basisgebruik van semantisch zoeken.

Raadpleeg het artikel Hoe SQL Server Semantic Search te gebruiken om aan de bovenstaande vereisten te voldoen, op voorwaarde dat u over basis T-SQL-vaardigheden beschikt.

Basisprincipes van zoeken in volledige tekst

Daarnaast wordt u aangemoedigd om kennis te hebben van Full-Text Search, dat wordt aangeboden als een speciale add-on naast Semantic Search tijdens de installatie van SQL Server.

Houd er rekening mee dat semantisch zoeken ook kan worden beschouwd als een uitgebreide functie van zoeken in volledige tekst, omdat het niet kan worden geïmplementeerd zonder te voldoen aan de basisvereisten van zoeken in volledige tekst.

Raadpleeg het artikel Full-Text Search implementeren in SQL Server 2016 voor beginners voor meer informatie over Full-Text Search.

SQL-instantie in gebruik

We gebruiken de SQL Server 2016-versie in dit artikel, maar het volgen van de stappen zou geen probleem moeten zijn met de nieuwere versies, op enkele uitzonderingen na.

Setup FILESTREAM ingeschakelde database

We moeten een speciaal soort database gebruiken genaamd FILESTREAM Enabled Database om documenten op het Windows-bestandssysteem op te slaan en te beheren door de SQL-database.

Er zijn enkele stappen die moeten worden voltooid voordat we dit speciale type database kunnen maken.

FILESTREAM inschakelen op instantieniveau

Een van de eerste dingen die u moet doen, is FILESTREAM inschakelen op het niveau van de SQL Server-instantie.

Typ SQL Server 2016-configuratie (of uw versie van SQL-instantie indien anders dan SQL 2016) in het Windows-zoekvak, meestal in de linkerbenedenhoek van de taakbalk, zoals hieronder weergegeven:

Klik om SQL Server Configuration Manager te openen .

Zoek en klik met de rechtermuisknop op uw SQL-instantie, dat is SQLTAB2016 in ons geval, en klik op Eigenschappen onder SQL-services:

Vink FILESTREAM inschakelen voor toegang tot transactie-SQL aan en FILESTREAM inschakelen voor toegang tot I/O-bestanden onder de FILESTREAM tabblad. Voer een geschikte Windows-sharenaam in ook en klik op OK , zoals hieronder weergegeven:

Wijzig toegangsniveau FILESTREAM

Het volgende is om het FILESTREAM-toegangsniveau te wijzigen van 0 naar 2 als dit nog niet is gewijzigd.

Voer het volgende T-SQL-script uit op de hoofddatabase:

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

De uitvoer is als volgt:

Onthoud dat het prima is als u het bovenstaande script uitvoert, zelfs als FILESTREAM al is ingesteld op 2.

Maak een Windows-map om de database op te slaan

Maak een Windows-map C:\Sample\Data waar u uw SQL-database fysiek gaat opslaan:

Je kunt elke andere schijf dan de C-schijf kiezen.

Maak FILESTREAM ingeschakelde database

Laten we nu een nieuwe FILESTREAM-enabled database maken met de naam EmployeesFilestreamSample door het volgende T-SQL-script uit te voeren tegen de hoofddatabase:

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

De uitvoer is als volgt:

FILESTREAM ingeschakelde database is succesvol aangemaakt.

Controleer FILESTREAM ingeschakelde database

Ga naar Objectverkenner en vouw de EmployeesFilestreamSample database onder de Databases node om de nieuw aangemaakte FILESTREAM Enabled-database te bekijken.

Bestandstabel instellen

Zodra we de FILESTREAM Enabled-database hebben gemaakt, is de volgende stap het opzetten van een Bestandstabel, waarmee we onze documenten op het Windows-bestandssysteem kunnen opslaan.

Naam FILESTREAM-map

Om een ​​bestandstabel te maken, moeten we enkele wijzigingen aanbrengen in de belangrijkste database-eigenschappen.

Klik met de rechtermuisknop op de database (EmployeesFilestreamSample ) in Objectverkenner en klik op Eigenschappen :

Ga naar de Opties Pagina en naam FILESTREAM Directorynaam als EmployeesFilestreamDirectory, zoals weergegeven in de volgende afbeelding:

Stel FILESTREAM niet-verhandelde toegang in naar VOLLEDIG, zoals hieronder weergegeven, en klik op OK:

Klik op Ja wanneer u wordt gevraagd of u akkoord gaat met het wijzigen van de eigenschappen en het sluiten van alle verbindingen:

Bestandstabel maken

Maak een nieuwe bestandstabel om de documenten op te slaan door het volgende T-SQL-script te typen en uit te voeren:

USE EmployeesFilestreamSample

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

Bestandentabel verkennen

Selecteer Databases=> dbo.EmployeeDocumentStore=>Tabellen =>Bestandtabellen => EmployeesDocumentStore.

Klik met de rechtermuisknop op EmployeesDocumentStore en klik op Verken FileTable Directory , zoals hieronder weergegeven:

Bestandslocatiefout oplossen (Microsoft-bug)

Als u de map kunt zien waarin documenten moeten worden opgeslagen, dan bent u klaar om te gaan, maar als u de volgende fout tegenkomt, moet u deze eerst oplossen:

FIX:"De bestandslocatie kan niet worden geopend"-fout treedt op wanneer u probeert een FileTable-directory in SQL Server te openen

Dit is een Microsoft-bug zoals bevestigd door Microsoft:

Om deze bug te verhelpen, moet u Cumulatieve Update 11 voor SQL Server 2016 SP2 uitvoeren.

Voer de oplossing uit die past bij uw SQL-instantie op basis van de versie als u niet de SQL Server-instantie gebruikt die in dit artikel wordt gebruikt en met hetzelfde probleem wordt geconfronteerd.

Download de update als deze van toepassing is op uw SQL-instantie, zoals hieronder weergegeven:

U moet de algemene voorwaarden accepteren om als volgt verder te gaan:

Zodra de update met succes is geïnstalleerd, zou u het volgende bericht moeten zien:

Bestandentabel verkennen na oplossen van locatiefout

Nu zou u FileTable Directory moeten kunnen verkennen:

De Windows-map kan nu worden gevuld met uw ongestructureerde documenten zoals MS Word-documenten, zoals hieronder weergegeven:

Maak en bewaar MS Word-documenten voor werknemers

Maak een nieuw MS Word-document en noem het Asif Vaste Werknemer, zoals hieronder weergegeven:

Voeg de volgende tekst toe aan dit Word-document en zorg ervoor dat de eerste regel de titel van het document is:

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.

Vergeet niet om het document op te slaan.

Maak nog een MS Word-document en noem het Peter Vaste Medewerker met de volgende tekst waarbij de eerste regel de titel van het document is:

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.

Vergeet niet om het document op te slaan, dat de volgende tekst moet bevatten:

Bekijk opgeslagen documenten

Typ de volgende SQL-code om te zien hoe de SQL-database deze documenten heeft opgeslagen:

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

De uitvoer is als volgt:

Gefeliciteerd! U hebt met succes een FILESTREAM-enabled database ingesteld om documenten op te slaan op een Windows-bestandssysteem dat wordt beheerd door een SQL-database.

Met andere woorden, u kunt nu volledig profiteren van het Windows-bestandssysteem door comfortabel ongestructureerde documenten te maken en op te slaan, terwijl u aan de andere kant deze opgeslagen documenten volledig kunt beheren via een consistente databasearchitectuur.

Verwijder deze documenten niet als u door wilt gaan met de procedure en contact wilt houden, aangezien we in het volgende deel van dit artikel een vergelijkende analyse van de opgeslagen documenten gaan uitvoeren met behulp van Semantic Search.


  1. toegang geweigerd voor laadgegevensbestand in MySQL

  2. SQL-joins

  3. Een MariaDB-database verplaatsen naar versleutelde en niet-versleutelde toestanden

  4. SQL Sub-query's met controlebeperking