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

Impara a archiviare e analizzare documenti su file system di Windows con la ricerca semantica di SQL Server - Parte 1

L'articolo esamina l'archiviazione di dati non strutturati utilizzando la struttura di directory di Windows nativa e la sua gestione tramite il database di SQL Server. Successivamente, dimostriamo come eseguire analisi comparative con l'aiuto della ricerca semantica per ottenere informazioni preziose dai dati. Inoltre, avrai un'esperienza pratica sull'archiviazione e il collegamento di documenti su file system di Windows e utilizzando la ricerca semantica.

È di grande importanza sia per i principianti che per i professionisti di database sapere come applicare strategie di archiviazione file come File Table a tecnologie di ricerca come Semantic Search per l'analisi dei dati non strutturati.

Prerequisiti

I prerequisiti menzionati in questa sezione si applicano all'articolo completo, che si compone di tre parti.

Concetti di tabelle di file

Non sarebbe male avere una conoscenza di base della tabella file utilizzata nei database di SQL Server. Tuttavia, questa parte dell'articolo fornisce informazioni dettagliate su come utilizzare le tabelle file per archiviare i documenti.

Concetti di ricerca semantica

Poiché l'obiettivo finale di questo articolo è eseguire l'analisi comparativa utilizzando la ricerca semantica, si consiglia vivamente di conoscere bene i concetti di base di quanto segue, in particolare, se si è interessati all'implementazione delle procedure dettagliate:

  1. Concetti di ricerca semantica.
  2. Nozioni di base sull'analisi comparativa dei documenti.
  3. Utilizzo di base della ricerca semantica.

Fare riferimento all'articolo Come utilizzare la ricerca semantica di SQL Server per soddisfare i requisiti di cui sopra a condizione che tu abbia competenze di base di T-SQL.

Nozioni di base sulla ricerca full-text

Inoltre, ti consigliamo di conoscere la ricerca full-text, che viene offerta come componente aggiuntivo speciale insieme alla ricerca semantica durante l'installazione di SQL Server.

Tieni presente che la ricerca semantica può anche essere considerata una funzionalità estesa della ricerca full-text in quanto non può essere implementata senza soddisfare i requisiti di base della ricerca full-text.

Fare riferimento all'articolo Implementazione della ricerca full-text in SQL Server 2016 per i principianti per ottenere ulteriori informazioni sulla ricerca full-text.

Istanza SQL in uso

Stiamo utilizzando la versione di SQL Server 2016 in questo articolo ma seguire i passaggi non dovrebbe essere un problema con le versioni più recenti con poche eccezioni.

Impostazione del database abilitato per FILESTREAM

Dobbiamo utilizzare un tipo speciale di database chiamato Database abilitato FILESTREAM per archiviare documenti su File System di Windows e gestirli dal database SQL.

Ci sono alcuni passaggi che devono essere completati prima di poter creare questo tipo speciale di database.

Abilita FILESTREAM a livello di istanza

Una delle prime cose da fare è abilitare FILESTREAM a livello di istanza di SQL Server.

Digita Configurazione di SQL Server 2016 (o la versione dell'istanza SQL se diversa da SQL 2016) nella casella di ricerca di Windows, generalmente situata nell'angolo inferiore sinistro della barra delle applicazioni, come mostrato di seguito:

Fare clic per aprire Gestione configurazione SQL Server .

Individua e fai clic con il pulsante destro del mouse sulla tua istanza SQL, che è SQLTAB2016 nel nostro caso e fare clic su Proprietà in Servizi SQL:

Seleziona Abilita FILESTREAM per l'accesso Transaction-SQL e Abilita FILESTREAM per l'accesso ai file I/O sotto il FILESTREAM scheda. Inserisci un nome condivisione Windows adatto e fai clic su OK , come mostrato di seguito:

Cambia livello di accesso FILESTREAM

La prossima cosa è cambiare il livello di accesso FILESTREAM da 0 a 2 se non è già stato modificato.

Esegui il seguente script T-SQL sul database master:

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

L'output è il seguente:

Ricorda che va bene se esegui lo script precedente anche se FILESTREAM è già impostato su 2.

Crea una cartella Windows per archiviare il database

Crea una cartella Windows C:\Sample\Data dove memorizzerai fisicamente il tuo database SQL:

Puoi scegliere qualsiasi unità diversa dall'unità C.

Crea database abilitato per FILESTREAM

Creiamo ora un nuovo database abilitato per FILESTREAM denominato EmployeesFilestreamSample eseguendo il seguente script T-SQL sul database master:

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

L'output è il seguente:

Il database abilitato per FILESTREAM è stato creato con successo.

Verifica database abilitato FILESTREAM

Vai a Esplora oggetti ed espandi EmployeesFilestreamSample database sotto i Banche dati nodo per visualizzare il database abilitato per FILESTREAM appena creato.

Imposta la tabella dei file

Dopo aver creato il database abilitato per FILESTREAM, il passaggio successivo consiste nell'impostare una Tabella di file, che ci aiuterà a salvare i nostri documenti sul file system di Windows.

Nome Directory FILESTREAM

Per creare la tabella dei file, è necessario apportare alcune modifiche alle proprietà principali del database.

Fare clic con il pulsante destro del mouse sul database (EmployeesFilestreamSample ) in Esplora oggetti e fai clic su Proprietà :

Vai alle Opzioni Pagina e nome Nome directory FILESTREAM come EmployeesFilestreamDirectory, come mostrato nella figura seguente:

Imposta Accesso senza transazione FILESTREAM su COMPLETO, come mostrato di seguito, e fare clic su OK:

Fai clic su alla domanda se va bene modificare le proprietà e chiudere tutte le connessioni:

Crea tabella file

Crea una nuova tabella file per archiviare i documenti digitando ed eseguendo il seguente script T-SQL:

USE EmployeesFilestreamSample

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

Esplora la tabella dei file

Seleziona Database=> dbo.EmployeeDocumentStore=>Tabelle =>FileTables => EmployeesDocumentStore.

Fai clic con il pulsante destro del mouse su EmployeesDocumentStore e fare clic su Esplora directory FileTable , come mostrato di seguito:

Correzione dell'errore di posizione del file (bug Microsoft)

Se sei in grado di visualizzare la cartella in cui dovrebbero essere archiviati i documenti, allora sei a posto, ma se riscontri il seguente errore, devi prima risolverlo:

FIX:l'errore "Impossibile aprire il percorso del file" si verifica quando si tenta di aprire una directory FileTable in SQL Server

Questo è un bug Microsoft, come confermato da Microsoft:

Per correggere questo bug, devi eseguire l'aggiornamento cumulativo 11 per SQL Server 2016 SP2.

Eseguire la correzione adatta alla propria istanza SQL in base alla sua versione se non si utilizza l'istanza SQL Server utilizzata in questo articolo e si riscontra lo stesso problema.

Scarica l'aggiornamento se è applicabile alla tua istanza SQL, come mostrato di seguito:

Devi accettare termini e condizioni per procedere come segue:

Una volta che l'aggiornamento è stato installato correttamente, dovresti vedere il seguente messaggio:

Esplora la tabella dei file dopo aver risolto l'errore di posizione

Ora dovresti essere in grado di esplorare FileTable Directory:

La cartella Windows può ora essere riempita con i tuoi documenti non strutturati come i documenti MS Word, come mostrato di seguito:

Crea e salva documenti MS Word per i dipendenti

Crea un nuovo documento MS Word e chiamalo Asif Permanent Employee, come mostrato di seguito:

Aggiungi il testo seguente a questo documento di Word e assicurati che la prima riga sia il titolo del documento:

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.

Ricordati di salvare il documento.

Crea un altro documento MS Word e chiamalo Peter Permanent Employee con il testo seguente dove la prima riga è il titolo del documento:

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.

Ricordati di salvare il documento, che dovrebbe contenere il seguente testo:

Visualizza documenti archiviati

Digitare il seguente codice SQL per visualizzare come il database SQL ha archiviato questi documenti:

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

L'output è il seguente:

Congratulazioni! Hai impostato correttamente un database abilitato FILESTREAM per archiviare documenti su file system Windows gestito dal database SQL.

In altre parole, ora puoi sfruttare appieno il file system di Windows creando e archiviando comodamente documenti non strutturati mentre, dall'altro lato, puoi gestire completamente questi documenti archiviati attraverso un'architettura coerente con il database.

Si prega di non rimuovere questi documenti se si desidera continuare la procedura dettagliata e rimanere in contatto poiché nella prossima parte di questo articolo eseguiremo analisi comparative sui documenti archiviati utilizzando la ricerca semantica.