sql >> Databasteknik >  >> RDS >> Sqlserver

Lär dig att lagra och analysera dokument på Windows filsystem med SQL Server Semantic Search – Del 1

Artikeln undersöker lagring av ostrukturerad data med inbyggd Windows-katalogstruktur och hantering av den genom SQL Server-databasen. Därefter visar vi hur man gör jämförande analys med hjälp av Semantic Search för att få ut värdefull information ur datan. Dessutom kommer du att få lite praktisk erfarenhet av att lagra och länka dokument på Windows filsystem och använda semantisk sökning.

Det är av stor vikt för både nybörjare och proffs som vet hur man tillämpar fillagringsstrategier som File Table på söktekniker som Semantic Search för ostrukturerad dataanalys.

Förutsättningar

Förutsättningarna som nämns i detta avsnitt gäller för hela artikeln, som består av tre delar.

Filtabellkoncept

Det skulle inte skada att ha grundläggande kunskaper om filtabell som används i SQL Server-databaser. Icke desto mindre ger den här delen av artikeln detaljerad information om hur man använder filtabeller för att lagra dokument.

Semantiska sökkoncept

Eftersom det slutliga målet med den här artikeln är att utföra jämförande analys med hjälp av semantisk sökning, rekommenderas det starkt att du är väl medveten om de grundläggande begreppen i följande, särskilt om du är intresserad av att implementera genomgången/genomgångarna:

  1. Semantiska sökkoncept.
  2. Grundläggande för jämförande analys av dokument.
  3. Grundläggande användning av semantisk sökning.

Se artikeln Hur man använder SQL Server Semantic Search för att uppfylla ovanstående krav förutsatt att du har grundläggande T-SQL-kunskaper.

Grunderna för fulltextsökning

Dessutom uppmuntras du att ha kunskap om Full-Text Search, som erbjuds som ett speciellt tillägg vid sidan av Semantic Search under installationen av SQL Server.

Observera att semantisk sökning också kan betraktas som en utökad funktion i fulltextsökning eftersom den inte kan implementeras utan att uppfylla de grundläggande kraven för fulltextsökning.

Se artikeln Implementing Full-Text Search i SQL Server 2016 för nybörjare för att få mer information om Full-Text Search.

SQL-instans som används

Vi använder SQL Server 2016-versionen i den här artikeln men att följa stegen bör inte vara problem med de nyare versionerna med några få undantag.

Konfigurera FILESTREAM-aktiverad databas

Vi måste använda en speciell typ av databas som heter FILESTREAM Enabled Database för att lagra dokument i Windows filsystem och hantera dem med SQL-databasen.

Det finns några steg som måste utföras innan vi kan skapa den här speciella typen av databas.

Aktivera FILESTREAM på instansnivå

En av de första sakerna att göra är att aktivera FILESTREAM på SQL Server-instansnivå.

Skriv SQL Server 2016 Configuration (eller din SQL-instansversion om en annan än SQL 2016) i Windows sökrutan, vanligtvis i det nedre vänstra hörnet av aktivitetsfältet, som visas nedan:

Klicka för att öppna SQL Server Configuration Manager .

Leta upp och högerklicka på din SQL-instans, som är SQLTAB2016 i vårt fall och klicka på Egenskaper under SQL-tjänster:

Markera Aktivera FILESTREAM för Transaction-SQL-åtkomst och Aktivera FILESTREAM för fil-I/O-åtkomst under FILESTREAM flik. Ange ett lämpligt Windows-resursnamn också och klicka på OK , som visas nedan:

Ändra åtkomstnivå för FILESTREAM

Nästa sak är att ändra åtkomstnivån för FILESTREAM från 0 till 2 om den inte redan har ändrats.

Kör följande T-SQL-skript mot huvuddatabasen:

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

Utgången är som följer:

Kom ihåg att det går bra om du kör skriptet ovan även om FILESTREAM redan är inställt på 2.

Skapa en Windows-mapp för att lagra databasen

Skapa en Windows-mapp C:\Sample\Data där du fysiskt ska lagra din SQL-databas:

Du kan välja vilken enhet som helst förutom C-enhet.

Skapa FILESTREAM-aktiverad databas

Låt oss nu skapa en ny FILESTREAM-aktiverad databas med namnet EmployeesFilestreamSample genom att köra följande T-SQL-skript mot huvuddatabasen:

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

Utgången är som följer:

FILESTREAM-aktiverad databas har skapats.

Kontrollera FILESTREAM-aktiverad databas

Gå till Objektutforskaren och expandera EmployeesFilestreamSample databas under Databaser nod för att se den nyskapade FILESTREAM Enabled-databasen.

Konfigurera filtabell

När vi har skapat FILESTREAM Enabled databas är nästa steg att skapa en Filtabell, som kommer att hjälpa oss att spara våra dokument i Windows filsystem.

Namn FILESTREAM-katalogen

För att skapa filtabell måste vi göra några ändringar i databasens huvudegenskaper.

Högerklicka på databasen (EmployeesFilestreamSample ) i Objektutforskaren och klicka på Egenskaper :

Gå till Alternativ Sida och namn FILESTREAM-katalognamn som EmployeesFilestreamDirectory, som visas i följande figur:

Ställ in FILESTREAM Non-Transacted Access till FULL, som visas nedan, och klicka på OK:

Klicka på Ja på frågan om det går bra att ändra egenskaperna och stänga alla anslutningar:

Skapa filtabell

Skapa en ny filtabell för att lagra dokumenten genom att skriva och köra följande T-SQL-skript:

USE EmployeesFilestreamSample

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

Utforska filtabellen

Välj Databaser=> dbo.EmployeeDocumentStore=>Tables =>FileTables => AnställdaDocumentStore.

Högerklicka på EmployeesDocumentStore och klicka på Utforska FileTable Directory , som visas nedan:

Åtgärda filplatsfel (Microsoft-fel)

Om du kan se mappen där dokumenten ska lagras är du bra att gå, men om du stöter på följande fel måste du åtgärda det först:

REGA:Felet "Filplatsen kan inte öppnas" uppstår när du försöker öppna en FileTable-katalog i SQL Server

Detta är ett Microsoft-fel som bekräftats av Microsoft:

För att åtgärda detta fel måste du köra kumulativ uppdatering 11 för SQL Server 2016 SP2.

Kör korrigeringen som passar din SQL-instans baserat på dess version om du inte använder SQL Server-instansen som används i den här artikeln och har samma problem.

Ladda ner uppdateringen om den är tillämplig på din SQL-instans, som visas nedan:

Du måste acceptera villkoren för att gå vidare enligt följande:

När uppdateringen har installerats, bör du se följande meddelande:

Utforska filtabellen efter att ha löst platsfel

Nu bör du kunna utforska FileTable Directory:

Windows-mappen kan nu fyllas med dina ostrukturerade dokument som MS Word-dokument, som visas nedan:

Skapa och spara MS Word-dokument för anställda

Skapa ett nytt MS Word-dokument och döp det till Asif Permanent Employee, som visas nedan:

Lägg till följande text i detta Word-dokument och se till att den första raden är titeln 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.

Kom ihåg att spara dokumentet.

Skapa ett annat MS Word-dokument och döp det till Peter Permanent Employee med följande text där första raden är titeln 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.

Kom ihåg att spara dokumentet, som ska innehålla följande text:

Visa lagrade dokument

Skriv följande SQL-kod för att se hur SQL-databasen har lagrat dessa dokument:

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

Utgången är som följer:

Grattis! Du har framgångsrikt konfigurerat en FILESTREAM-aktiverad databas för att lagra dokument på Windows filsystem som hanteras av SQL-databas.

Med andra ord kan du nu dra full nytta av Windows filsystem genom att bekvämt skapa och lagra ostrukturerade dokument medan du å andra sidan kan hantera dessa lagrade dokument helt och hållet genom databaskonsekvent arkitektur.

Ta inte bort dessa dokument om du vill fortsätta genomgången och hålla kontakten eftersom vi kommer att utföra jämförande analys av de lagrade dokumenten med hjälp av semantisk sökning i nästa del av denna artikel.


  1. Hur skapar jag en lagrad procedur som valfritt söker efter kolumner?

  2. Hur man skickar parametrar till mysql query callback i nodejs

  3. Förbättra inställningen av SQL Server-prestanda med dessa tre tips

  4. Hur man får aktuellt datum och tid med tidszonförskjutning i PostgreSQL