Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Apprenez à stocker et à analyser des documents sur le système de fichiers Windows avec la recherche sémantique SQL Server - Partie 1

L'article examine le stockage de données non structurées à l'aide de la structure de répertoire Windows native et sa gestion via la base de données SQL Server. Par la suite, nous montrons comment effectuer une analyse comparative à l'aide de la recherche sémantique afin d'obtenir des informations précieuses à partir des données. De plus, vous allez acquérir une expérience pratique du stockage et de la liaison de documents sur le système de fichiers Windows et de l'utilisation de la recherche sémantique.

Il est très important pour les débutants et les professionnels des bases de données de savoir comment appliquer des stratégies de stockage de fichiers telles que File Table à des technologies de recherche telles que la recherche sémantique pour l'analyse de données non structurées.

Prérequis

Les prérequis mentionnés dans cette section s'appliquent à l'article complet, qui se compose de trois parties.

Concepts des tableaux de fichiers

Cela ne ferait pas de mal d'avoir une connaissance de base de la table de fichiers utilisée dans les bases de données SQL Server. Néanmoins, cette partie de l'article fournit des informations détaillées sur l'utilisation des tables de fichiers pour stocker des documents.

Concepts de recherche sémantique

Étant donné que le but ultime de cet article est d'effectuer une analyse comparative à l'aide de la recherche sémantique, il est fortement recommandé de bien connaître les concepts de base des éléments suivants, en particulier si vous souhaitez mettre en œuvre la ou les procédures pas à pas :

  1. Concepts de recherche sémantique.
  2. Bases de l'analyse comparative des documents.
  3. Utilisation de base de la recherche sémantique.

Veuillez vous référer à l'article Comment utiliser la recherche sémantique SQL Server pour remplir les conditions ci-dessus à condition que vous ayez des compétences de base en T-SQL.

Principes de base de la recherche en texte intégral

De plus, nous vous encourageons à connaître la recherche en texte intégral, qui est proposée en tant que module complémentaire spécial avec la recherche sémantique lors de l'installation de SQL Server.

Veuillez noter que la recherche sémantique peut également être considérée comme une fonctionnalité étendue de la recherche en texte intégral car elle ne peut pas être mise en œuvre sans remplir les exigences de base de la recherche en texte intégral.

Veuillez vous référer à l'article Implémentation de la recherche en texte intégral dans SQL Server 2016 pour les débutants pour obtenir plus d'informations sur la recherche en texte intégral.

Instance SQL en cours d'utilisation

Nous utilisons la version SQL Server 2016 dans cet article, mais suivre les étapes ne devrait pas poser de problème avec les versions les plus récentes à quelques exceptions près.

Configurer la base de données compatible FILESTREAM

Nous devons utiliser un type spécial de base de données appelé FILESTREAM Enabled Database pour stocker des documents sur le système de fichiers Windows et les gérer par la base de données SQL.

Certaines étapes doivent être complétées avant de pouvoir créer ce type spécial de base de données.

Activer FILESTREAM au niveau de l'instance

L'une des premières choses à faire est d'activer FILESTREAM au niveau de l'instance SQL Server.

Tapez Configuration SQL Server 2016 (ou la version de votre instance SQL si autre que SQL 2016) dans le champ de recherche Windows, généralement situé dans le coin inférieur gauche de la barre des tâches, comme indiqué ci-dessous :

Cliquez pour ouvrir Gestionnaire de configuration SQL Server .

Localisez et cliquez avec le bouton droit sur votre instance SQL, qui est SQLTAB2016 dans notre cas, et cliquez sur Propriétés sous Services SQL :

Cochez Activer FILESTREAM pour l'accès Transaction-SQL et Activer FILESTREAM pour l'accès aux E/S de fichiers sous le FILESTREAM languette. Entrez un nom de partage Windows approprié également et cliquez sur OK , comme indiqué ci-dessous :

Modifier le niveau d'accès FILESTREAM

La prochaine chose est de changer le niveau d'accès FILESTREAM de 0 à 2 s'il n'a pas déjà été changé.

Exécutez le script T-SQL suivant sur la base de données master :

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

Le résultat est le suivant :

N'oubliez pas qu'il n'y a pas de problème si vous exécutez le script ci-dessus même si FILESTREAM est déjà défini sur 2.

Créer un dossier Windows pour stocker la base de données

Veuillez créer un dossier Windows C:\Sample\Data où vous allez stocker physiquement votre base de données SQL :

Vous pouvez choisir n'importe quel lecteur autre que le lecteur C.

Créer une base de données compatible FILESTREAM

Créons maintenant une nouvelle base de données compatible FILESTREAM nommée EmployeesFilestreamSample en exécutant le script T-SQL suivant sur la base de données 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

Le résultat est le suivant :

La base de données compatible FILESTREAM a été créée avec succès.

Vérifier la base de données activée FILESTREAM

Accédez à Explorateur d'objets et développez EmployeesFilestreamSample base de données sous Bases de données nœud pour afficher la nouvelle base de données FILESTREAM Enabled.

Configurer le tableau des fichiers

Une fois que nous avons créé la base de données activée FILESTREAM, l'étape suivante consiste à configurer une table de fichiers, qui va nous aider à enregistrer nos documents sur le système de fichiers Windows.

Nom du répertoire FILESTREAM

Afin de créer une table de fichiers, nous devons apporter quelques modifications aux propriétés principales de la base de données.

Faites un clic droit sur la base de données (EmployeesFilestreamSample ) dans Explorateur d'objets et cliquez sur Propriétés :

Allez dans les Options Page et nom Nom du répertoire FILESTREAM en tant que EmployeesFilestreamDirectory, comme illustré dans la figure suivante :

Définir l'accès sans transaction FILESTREAM sur PLEIN, comme indiqué ci-dessous, puis cliquez sur OK :

Cliquez sur Oui lorsqu'on vous demande si vous êtes d'accord pour modifier les propriétés et fermer toutes les connexions :

Créer un tableau de fichiers

Créez une nouvelle table de fichiers pour stocker les documents en saisissant et en exécutant le script T-SQL suivant :

USE EmployeesFilestreamSample

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

Explorer le tableau des fichiers

Sélectionnez Bases de données=> dbo.EmployeeDocumentStore=>Tables =>FileTables => EmployésDocumentStore.

Faites un clic droit sur EmployeesDocumentStore et cliquez sur Explorer le répertoire FileTable , comme indiqué ci-dessous :

Correction d'une erreur d'emplacement de fichier (bogue Microsoft)

Si vous parvenez à afficher le dossier dans lequel les documents sont censés être stockés, vous êtes prêt à partir, mais si vous rencontrez l'erreur suivante, vous devez d'abord la corriger :

CORRECTIF :L'erreur "L'emplacement du fichier ne peut pas être ouvert" se produit lorsque vous essayez d'ouvrir un répertoire FileTable dans SQL Server

Il s'agit d'un bogue Microsoft confirmé par Microsoft :

Pour corriger ce bogue, vous devez exécuter la mise à jour cumulative 11 pour SQL Server 2016 SP2.

Veuillez exécuter le correctif qui convient à votre instance SQL en fonction de sa version si vous n'utilisez pas l'instance SQL Server utilisée dans cet article et que vous rencontrez le même problème.

Téléchargez la mise à jour si elle s'applique à votre instance SQL, comme indiqué ci-dessous :

Vous devez accepter les termes et conditions pour continuer comme suit :

Une fois la mise à jour installée avec succès, vous devriez voir le message suivant :

Explorer la table des fichiers après avoir résolu l'erreur de localisation

Vous devriez maintenant pouvoir explorer le répertoire FileTable :

Le dossier Windows peut maintenant être rempli avec vos documents non structurés tels que des documents MS Word, comme indiqué ci-dessous :

Créer et enregistrer des documents MS Word pour les employés

Créez un nouveau document MS Word et nommez-le Asif Permanent Employee, comme indiqué ci-dessous :

Ajoutez le texte suivant à ce document Word et assurez-vous que la première ligne correspond au titre du document :

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.

N'oubliez pas de sauvegarder le document.

Créez un autre document MS Word et nommez-le Peter Permanent Employee avec le texte suivant où la première ligne est le titre du document :

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.

N'oubliez pas d'enregistrer le document, qui doit contenir le texte suivant :

Afficher les documents stockés

Tapez le code SQL suivant pour voir comment la base de données SQL a stocké ces documents :

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

Le résultat est le suivant :

Toutes nos félicitations! Vous avez configuré avec succès une base de données compatible FILESTREAM pour stocker des documents sur le système de fichiers Windows géré par la base de données SQL.

En d'autres termes, vous pouvez désormais tirer pleinement parti du système de fichiers Windows en créant et en stockant confortablement des documents non structurés, tandis que, d'un autre côté, vous pouvez gérer entièrement ces documents stockés grâce à une architecture cohérente de la base de données.

Veuillez ne pas supprimer ces documents si vous souhaitez continuer la procédure pas à pas et rester en contact car nous allons effectuer une analyse comparative sur les documents stockés à l'aide de la recherche sémantique dans la prochaine partie de cet article.