sql >> Database teknologi >  >> RDS >> Sqlserver

Lær at gemme og analysere dokumenter på Windows filsystem med SQL Server Semantic Search – Del 1

Artiklen undersøger lagring af ustrukturerede data ved hjælp af native Windows-biblioteksstruktur og styring af dem gennem SQL Server-databasen. Efterfølgende demonstrerer vi, hvordan man udfører komparativ analyse ved hjælp af Semantic Search for at få værdifuld information ud af dataene. Derudover vil du få nogle praktiske erfaringer med at gemme og linke dokumenter på Windows filsystem og bruge semantisk søgning.

Det er af stor betydning for både databasebegyndere og professionelle at vide, hvordan man anvender fillagringsstrategier såsom File Table til søgeteknologier som Semantisk søgning til ustruktureret dataanalyse.

Forudsætninger

Forudsætningerne nævnt i dette afsnit gælder for hele artiklen, som består af tre dele.

Filetabelkoncepter

Det ville ikke skade at have grundlæggende viden om File Table brugt i SQL Server-databaser. Ikke desto mindre giver denne del af artiklen detaljerede oplysninger om, hvordan man bruger File Tables til lagring af dokumenter.

Semantiske søgekoncepter

Da det ultimative mål med denne artikel er at udføre komparativ analyse ved hjælp af semantisk søgning, anbefales det stærkt at være opmærksom på de grundlæggende begreber i følgende, især hvis du er interesseret i at implementere gennemgangen(e):

  1. Semantisk søgekoncepter.
  2. Grundlæggende oplysninger om komparativ analyse af dokumenter.
  3. Grundlæggende brug af semantisk søgning.

Se artiklen Sådan bruges SQL Server Semantic Search for at opfylde ovenstående krav, forudsat at du har grundlæggende T-SQL-færdigheder.

Grundlæggende om fuldtekstsøgning

Derudover opfordres du til at have kendskab til Full-Text Search, som tilbydes som en speciel tilføjelse sammen med Semantic Search under installationen af ​​SQL Server.

Bemærk venligst, at semantisk søgning også kan betragtes som en udvidet funktion af fuld tekstsøgning, da den ikke kan implementeres uden at opfylde de grundlæggende krav til fuld tekstsøgning.

Se venligst artiklen Implementering af fuldtekstsøgning i SQL Server 2016 for begyndere for at få flere oplysninger om fuldtekstsøgning.

SQL-instans i brug

Vi bruger SQL Server 2016-versionen i denne artikel, men at følge trinene burde ikke være et problem med de nyere versioner med få undtagelser.

Opsæt FILESTREAM-aktiveret database

Vi skal bruge en speciel type database kaldet FILESTREAM Enabled Database at gemme dokumenter på Windows filsystem og administrere dem ved hjælp af SQL-databasen.

Der er nogle trin, der skal udføres, før vi kan oprette denne specielle type database.

Aktiver FILESTREAM på instansniveau

En af de første ting at gøre er at aktivere FILESTREAM på SQL Server-instansniveau.

Skriv SQL Server 2016-konfiguration (eller din SQL-instansversion, hvis en anden end SQL 2016) i Windows-søgefeltet, generelt placeret i nederste venstre hjørne af proceslinjen, som vist nedenfor:

Klik for at åbne SQL Server Configuration Manager .

Find og højreklik på din SQL-instans, som er SQLTAB2016 i vores tilfælde, og klik på Egenskaber under SQL-tjenester:

Marker Aktiver FILESTREAM for Transaction-SQL-adgang og Aktiver FILESTREAM for fil I/O-adgang under FILESTREAM fanen. Indtast et passende Windows-sharenavn også, og klik på OK , som vist nedenfor:

Skift FILESTREAM-adgangsniveau

Den næste ting er at ændre FILESTREAM-adgangsniveauet fra 0 til 2, hvis det ikke allerede er blevet ændret.

Kør følgende T-SQL-script mod masterdatabasen:

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

Outputtet er som følger:

Husk, at det er fint, hvis du kører ovenstående script, selvom FILESTREAM allerede er indstillet til 2.

Opret en Windows-mappe til at gemme databasen

Opret venligst en Windows-mappe C:\Sample\Data hvor du fysisk skal gemme din SQL-database:

Du kan vælge et hvilket som helst andet drev end C-drev.

Opret FILESTREAM-aktiveret database

Lad os nu oprette en ny FILESTREAM-aktiveret database ved navn EmployeesFilestreamSample ved at køre følgende T-SQL-script mod masterdatabasen:

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

Outputtet er som følger:

FILESTREAM-aktiveret database er blevet oprettet.

Tjek FILESTREAM-aktiveret database

Gå til Object Explorer og udvid EmployeesFilestreamSample database under Databaser node for at se den nyoprettede FILESTREAM Enabled database.

Opsæt filtabel

Når vi har oprettet FILESTREAM Enabled database, er næste trin at oprette en Fil Tabel, som vil hjælpe os med at gemme vores dokumenter på Windows-filsystemet.

Navn FILESTREAM Directory

For at oprette en filtabel skal vi foretage nogle ændringer i hoveddatabaseegenskaberne.

Højreklik på databasen (EmployeesFilestreamSample ) i Object Explorer og klik på Egenskaber :

Gå til Indstillinger Side og navn FILESTREAM-katalognavn som EmployeesFilestreamDirectory, som vist i følgende figur:

Indstil FILESTREAM Non-Transacted Access til FULD, som vist nedenfor, og klik på OK:

Klik på Ja når du bliver spurgt, om du har det fint med at ændre egenskaberne og lukke alle forbindelser:

Opret filtabel

Opret en ny filtabel for at gemme dokumenterne ved at skrive og udføre følgende T-SQL-script:

USE EmployeesFilestreamSample

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

Udforsk filtabel

Vælg Databaser=> dbo.EmployeeDocumentStore=>Tables =>FileTables => MedarbejdereDocumentStore.

Højreklik på EmployeesDocumentStore og klik på Udforsk FileTable Directory , som vist nedenfor:

Rettelse af filplaceringsfejl (Microsoft-fejl)

Hvis du er i stand til at se mappen, hvor dokumenterne skal opbevares, så er du god til at gå, men hvis du støder på følgende fejl, så skal du rette den først:

RET:Fejlen "Filplaceringen kan ikke åbnes" opstår, når du forsøger at åbne en FileTable-mappe i SQL Server

Dette er en Microsoft-fejl som bekræftet af Microsoft:

For at rette denne fejl skal du køre Kumulativ opdatering 11 til SQL Server 2016 SP2.

Kør venligst den rettelse, der passer til din SQL-instans baseret på dens version, hvis du ikke bruger den SQL Server-instans, der bruges i denne artikel, og står over for det samme problem.

Download opdateringen, hvis den er relevant for din SQL-instans, som vist nedenfor:

Du skal acceptere vilkår og betingelser for at fortsætte som følger:

Når opdateringen er installeret, bør du se følgende meddelelse:

Udforsk filtabellen efter at have løst placeringsfejl

Nu skulle du være i stand til at udforske FileTable Directory:

Windows-mappen kan nu udfyldes med dine ustrukturerede dokumenter, såsom MS Word-dokumenter, som vist nedenfor:

Opret og gem MS Word-dokumenter til medarbejdere

Opret et nyt MS Word-dokument, og giv det navnet Asif Fast Employee, som vist nedenfor:

Tilføj følgende tekst til dette Word-dokument, og sørg for, at den første linje er titlen på dokumentet:

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.

Husk at gemme dokumentet.

Opret endnu et MS Word-dokument, og navngiv det Peter Permanent Employee med følgende tekst, hvor den første linje er titlen på dokumentet:

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.

Husk at gemme dokumentet, som skal indeholde følgende tekst:

Se gemte dokumenter

Indtast følgende SQL-kode for at se, hvordan SQL-databasen har gemt disse dokumenter:

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

Outputtet er som følger:

Tillykke! Du har konfigureret en FILESTREAM-aktiveret database til at gemme dokumenter på Windows-filsystemet, der administreres af SQL-databasen.

Med andre ord kan du nu drage fuld fordel af Windows File System ved komfortabelt at oprette og gemme ustrukturerede dokumenter, mens du på den anden side fuldt ud kan administrere disse lagrede dokumenter gennem databasekonsistent arkitektur.

Fjern venligst ikke disse dokumenter, hvis du gerne vil fortsætte gennemgangen og holde kontakten, da vi skal udføre sammenlignende analyse af de lagrede dokumenter ved hjælp af Semantisk søgning i den næste del af denne artikel.


  1. Slet en databasepostkonto i SQL Server (T-SQL)

  2. SUBTIME() Eksempler – MySQL

  3. SQLAlchemy - SQLite til test og Postgresql til udvikling - Hvordan porterer man?

  4. Sådan fungerer SUBSTR()-funktionen i MySQL