sql >> Base de Datos >  >> RDS >> Sqlserver

Aprenda a almacenar y analizar documentos en el sistema de archivos de Windows con la búsqueda semántica de SQL Server:parte 1

El artículo examina el almacenamiento de datos no estructurados mediante la estructura de directorios nativos de Windows y su administración a través de la base de datos de SQL Server. Posteriormente, demostramos cómo realizar un análisis comparativo con la ayuda de la búsqueda semántica para obtener información valiosa de los datos. Además, obtendrá experiencia práctica en el almacenamiento y la vinculación de documentos en el sistema de archivos de Windows y en el uso de la búsqueda semántica.

Es de gran importancia tanto para los principiantes como para los profesionales de las bases de datos saber cómo aplicar estrategias de almacenamiento de archivos, como la tabla de archivos, a tecnologías de búsqueda como la búsqueda semántica para el análisis de datos no estructurados.

Requisitos

Los requisitos previos mencionados en esta sección se aplican al artículo completo, que consta de tres partes.

Conceptos de tablas de archivos

No estaría de más tener un conocimiento básico de la tabla de archivos utilizada en las bases de datos de SQL Server. No obstante, esta parte del artículo brinda información detallada sobre cómo usar tablas de archivos para almacenar documentos.

Conceptos de búsqueda semántica

Dado que el objetivo final de este artículo es realizar un análisis comparativo mediante la búsqueda semántica, se recomienda encarecidamente conocer bien los conceptos básicos de lo siguiente, en particular, si está interesado en implementar los tutoriales:

  1. Conceptos de búsqueda semántica.
  2. Documenta los conceptos básicos del análisis comparativo.
  3. Uso básico de la búsqueda semántica.

Consulte el artículo Cómo usar la búsqueda semántica de SQL Server para cumplir con los requisitos anteriores siempre que tenga conocimientos básicos de T-SQL.

Conceptos básicos de la búsqueda de texto completo

Además, le animamos a tener conocimiento de la búsqueda de texto completo, que se ofrece como un complemento especial junto con la búsqueda semántica durante la instalación de SQL Server.

Tenga en cuenta que la búsqueda semántica también puede considerarse una función ampliada de la búsqueda de texto completo, ya que no se puede implementar sin cumplir los requisitos básicos de la búsqueda de texto completo.

Consulte el artículo Implementación de la búsqueda de texto completo en SQL Server 2016 para principiantes para obtener más información sobre la búsqueda de texto completo.

Instancia de SQL en uso

Estamos usando la versión de SQL Server 2016 en este artículo, pero seguir los pasos no debería ser un problema con las versiones más nuevas, con algunas excepciones.

Configurar base de datos habilitada para FILESTREAM

Tenemos que usar un tipo especial de base de datos llamada Base de datos habilitada para FILESTREAM para almacenar documentos en el sistema de archivos de Windows y administrarlos mediante la base de datos SQL.

Hay algunos pasos que se deben completar antes de que podamos crear este tipo especial de base de datos.

Habilitar FILESTREAM a nivel de instancia

Una de las primeras cosas que debe hacer es habilitar FILESTREAM en el nivel de instancia de SQL Server.

Escriba Configuración de SQL Server 2016 (o la versión de su instancia SQL si no es SQL 2016) en el cuadro de búsqueda de Windows, generalmente ubicado en la esquina inferior izquierda de la barra de tareas, como se muestra a continuación:

Haga clic para abrir Administrador de configuración de SQL Server .

Localice y haga clic con el botón derecho en su instancia de SQL, que es SQLTAB2016 en nuestro caso, y haga clic en Propiedades en Servicios SQL:

Marque Habilitar FILESTREAM para el acceso a Transaction-SQL y Habilitar FILESTREAM para el acceso de E/S de archivos bajo FILESTREAM pestaña. Ingrese un nombre compartido de Windows adecuado también y haga clic en Aceptar , como se muestra a continuación:

Cambiar el nivel de acceso de FILESTREAM

Lo siguiente es cambiar el nivel de acceso de FILESTREAM de 0 a 2 si aún no se ha cambiado.

Ejecute el siguiente script T-SQL en la base de datos maestra:

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

La salida es la siguiente:

Recuerde que está bien si ejecuta el script anterior incluso si FILESTREAM ya está configurado en 2.

Cree una carpeta de Windows para almacenar la base de datos

Cree una carpeta de Windows C:\Sample\Data donde va a almacenar físicamente su base de datos SQL:

Puede elegir cualquier unidad que no sea la unidad C.

Crear base de datos habilitada para FILESTREAM

Ahora vamos a crear una nueva base de datos habilitada para FILESTREAM llamada EmployeesFilestreamSample ejecutando el siguiente script T-SQL en la base de datos maestra:

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

La salida es la siguiente:

La base de datos habilitada para FILESTREAM se ha creado correctamente.

Comprobar la base de datos habilitada para FILESTREAM

Vaya a Explorador de objetos y expanda el EmployeesFilestreamSample base de datos bajo Bases de datos para ver la base de datos habilitada para FILESTREAM recién creada.

Configurar tabla de archivos

Una vez que hemos creado la base de datos habilitada para FILESTREAM, el siguiente paso es configurar una tabla de archivos. que nos ayudará a guardar nuestros documentos en el sistema de archivos de Windows.

Nombre del directorio FILESTREAM

Para crear la tabla de archivos, debemos realizar algunos cambios en las propiedades de la base de datos principal.

Haga clic derecho en la base de datos (EmployeesFilestreamSample ) en Explorador de objetos y haga clic en Propiedades :

Ve a las Opciones Página y nombre Nombre del directorio FILESTREAM como EmployeesFilestreamDirectory, como se muestra en la siguiente figura:

Establecer acceso sin transacciones de FILESTREAM a COMPLETO, como se muestra a continuación, y haga clic en Aceptar:

Haga clic en cuando se le pregunte si puede cambiar las propiedades y cerrar todas las conexiones:

Crear tabla de archivos

Cree una nueva tabla de archivos para almacenar los documentos escribiendo y ejecutando el siguiente script T-SQL:

USE EmployeesFilestreamSample

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

Explorar tabla de archivos

Seleccione Bases de datos=> dbo.EmployeeDocumentStore=>Tables =>FileTables => Tienda de documentos de empleados.

Haga clic derecho en EmployeesDocumentStore y haga clic en Explorar directorio de FileTable , como se muestra a continuación:

Reparación del error de ubicación del archivo (error de Microsoft)

Si puede ver la carpeta donde se supone que se almacenan los documentos, entonces está listo para continuar, pero si encuentra el siguiente error, primero debe corregirlo:

REVISIÓN:se produce el error "No se puede abrir la ubicación del archivo" cuando intenta abrir un directorio de FileTable en SQL Server

Este es un error de Microsoft confirmado por Microsoft:

Para corregir este error, debe ejecutar la Actualización acumulativa 11 para SQL Server 2016 SP2.

Ejecute la solución que se adapte a su instancia de SQL en función de su versión si no está utilizando la instancia de SQL Server utilizada en este artículo y enfrenta el mismo problema.

Descargue la actualización si es aplicable a su instancia de SQL, como se muestra a continuación:

Debe aceptar los términos y condiciones para continuar de la siguiente manera:

Una vez que la actualización se haya instalado correctamente, debería ver el siguiente mensaje:

Explorar la tabla de archivos después de resolver el error de ubicación

Ahora, debería poder explorar el Directorio de FileTable:

La carpeta de Windows ahora se puede llenar con sus documentos no estructurados, como documentos de MS Word, como se muestra a continuación:

Cree y guarde documentos de MS Word para empleados

Cree un nuevo documento de MS Word y asígnele el nombre Empleado permanente de Asif, como se muestra a continuación:

Agregue el siguiente texto a este documento de Word y asegúrese de que la primera línea sea el título 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.

Recuerde guardar el documento.

Cree otro documento de MS Word y asígnele el nombre Peter Empleado Permanente con el siguiente texto donde la primera línea es el título 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.

Recuerde guardar el documento, que debe contener el siguiente texto:

Ver documentos almacenados

Escriba el siguiente código SQL para ver cómo la base de datos SQL ha almacenado estos documentos:

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

La salida es la siguiente:

¡Felicidades! Ha configurado correctamente una base de datos habilitada para FILESTREAM para almacenar documentos en el sistema de archivos de Windows administrado por la base de datos SQL.

En otras palabras, ahora puede aprovechar al máximo el sistema de archivos de Windows creando y almacenando cómodamente documentos no estructurados mientras, por otro lado, puede administrar completamente estos documentos almacenados a través de una arquitectura coherente con la base de datos.

No elimine estos documentos si desea continuar con el tutorial y mantenerse en contacto, ya que realizaremos un análisis comparativo de los documentos almacenados mediante la búsqueda semántica en la siguiente parte de este artículo.