Compartir a través de


FileTables (SQL Server)

La característica FileTable ofrece compatibilidad con el espacio de nombres de archivo de Windows y la compatibilidad con las aplicaciones de Windows a los datos de archivo almacenados en SQL Server. FileTable permite a una aplicación integrar sus componentes de administración de datos y almacenamiento, y proporciona servicios integrados de SQL Server , incluida la búsqueda de texto completo y la búsqueda semántica, sobre datos y metadatos no estructurados.

En otras palabras, puede almacenar archivos y documentos en tablas especiales en SQL Server denominados FileTables, pero acceder a ellos desde aplicaciones de Windows como si estuvieran almacenados en el sistema de archivos, sin realizar ningún cambio en las aplicaciones cliente.

La característica FileTable se basa en la tecnología FILESTREAM de SQL Server. Para obtener más información sobre FILESTREAM, consulte FILESTREAM (SQL Server).

Ventajas de la característica FileTable

Los objetivos de la característica FileTable incluyen lo siguiente:

  • Compatibilidad de la API de Windows con los datos de archivo almacenados en una base de datos de SQL Server. La compatibilidad de la API de Windows incluye lo siguiente:

    • Acceso de streaming no transaccional y actualizaciones in situ a los datos FILESTREAM.

    • Un espacio de nombres jerárquico de directorios y archivos.

    • Almacenamiento de atributos de archivo, como la fecha de creación y la fecha de modificación.

    • Compatibilidad con las API de administración de archivos y directorios de Windows.

  • Compatibilidad con otras características de SQL Server, incluidas las herramientas de administración, los servicios y las funcionalidades de consulta relacional sobre FILESTREAM y los datos de atributos de archivo.

Por lo tanto, FileTables elimina una barrera significativa para el uso de SQL Server para el almacenamiento y la administración de datos no estructurados que residen actualmente como archivos en los servidores de archivos. Las empresas pueden mover estos datos de servidores de archivos a FileTables para aprovechar las ventajas de la administración integrada y los servicios proporcionados por SQL Server. Al mismo tiempo, pueden mantener la compatibilidad de aplicaciones de Windows para sus aplicaciones de Windows existentes que ven estos datos como archivos en el sistema de archivos.

¿Qué es una FileTable?

SQL Server proporciona una tabla especial de archivos, también denominada FileTable, para las aplicaciones que requieren almacenamiento de archivos y directorios en la base de datos, con compatibilidad con la API de Windows y acceso no transaccional. Una FileTable es una tabla de usuario especializada con un esquema predefinido que almacena datos FILESTREAM, así como información de jerarquía de archivos y directorios y atributos de archivo.

Una FileTable proporciona la siguiente funcionalidad:

  • Una FileTable representa una jerarquía de directorios y archivos. Almacena datos relacionados con todos los nodos de esa jerarquía, tanto para directorios como para los archivos que contienen. Esta jerarquía comienza desde un directorio raíz que se especifica al crear la FileTable.

  • Cada fila de una FileTable representa un archivo o un directorio.

  • Cada fila contiene los siguientes elementos. Para obtener más información sobre el esquema de una FileTable, vea Esquema de FileTable.

    • Columna file_stream para los datos de flujo y un stream_id como identificador (GUID). (La columna file_stream es NULL para un directorio).

    • Tanto path_locator como parent_path_locator columnas para representar y mantener la jerarquía de archivos y directorios.

    • 10 atributos de archivo, como la fecha de creación y la fecha de modificación que son útiles con las API de E/S de archivo.

    • Columna de tipo que admite la búsqueda de texto completo y la búsqueda semántica en archivos y documentos.

  • Una FileTable aplica ciertas restricciones y desencadenadores definidos por el sistema para mantener la semántica del espacio de nombres de archivo.

  • Cuando la base de datos está configurada para el acceso no transaccional, la jerarquía de archivos y directorios representada en FileTable se expone en el recurso compartido FILESTREAM configurado para la instancia de SQL Server. Esto proporciona acceso al sistema de archivos para las aplicaciones de Windows.

Algunas características adicionales de FileTables son las siguientes:

  • Los datos de archivo y directorio almacenados en una FileTable se exponen a través de un recurso compartido de Windows para el acceso a archivos no transaccionales para aplicaciones basadas en la API de Windows. En el caso de una aplicación de Windows, se parece a un recurso compartido normal con sus archivos y directorios. Las aplicaciones pueden usar un amplio conjunto de API de Windows para administrar los archivos y directorios de este recurso compartido.

  • La jerarquía de directorios expuesta a través del recurso compartido es una estructura de directorios puramente lógica que se mantiene dentro de FileTable.

  • Las llamadas para crear o cambiar un archivo o directorio a través del recurso compartido de Windows se interceptan mediante un componente de SQL Server y se reflejan en los datos relacionales correspondientes de FileTable.

  • Las operaciones de api de Windows no son transaccionales por naturaleza y no están asociadas a transacciones de usuario. Sin embargo, el acceso transaccional a los datos FILESTREAM almacenados en una FileTable está totalmente admitida, al igual que cualquier columna FILESTREAM en una tabla normal.

  • FileTables también se puede consultar y actualizar a través del acceso normal Transact-SQL. También se integran con las herramientas de administración de SQL Server y características como la copia de seguridad.

Consideraciones adicionales para usar FileTables

Consideraciones administrativas

Acerca de FILESTREAM y FileTables

  • Puede configurar FileTables por separado de FILESTREAM. Por lo tanto, puede seguir usando la característica FILESTREAM sin habilitar el acceso no transaccional ni crear FileTables.

  • No hay acceso no transaccional a los datos FILESTREAM, excepto a través de FileTables. Por lo tanto, al habilitar el acceso no transaccional, el comportamiento de las aplicaciones y columnas FILESTREAM existentes no se ve afectado.

Acerca de FileTables y acceso no transaccional

  • Puede habilitar o deshabilitar el acceso no transaccional en el nivel de base de datos.

  • Puede configurar o ajustar el acceso no transaccional en el nivel de base de datos desactivando o habilitando el acceso de solo lectura o escritura completo.

FileTables no admite archivos Memory-Mapped

FileTables no soportan archivos asignados a memoria. El Bloc de notas y Paint son dos ejemplos comunes de aplicaciones que usan archivos asignados a memoria. No puede usar estas aplicaciones en el mismo equipo que SQL Server para abrir archivos almacenados en una FileTable. Sin embargo, puede usar estas aplicaciones desde un equipo remoto para abrir archivos almacenados en una FileTable, ya que en estas circunstancias no se usa la característica de asignación de memoria.

Tareas relacionadas

Habilitación de los requisitos previos para FileTable
Describe cómo habilitar los requisitos previos para crear y usar FileTables.

Crear, modificar y quitar FileTables
Describe cómo crear una nueva FileTable o modificar o quitar una FileTable existente.

Cargar archivos en FileTables
Describe cómo cargar o migrar archivos a FileTables.

Trabajar con directorios y rutas de acceso en FileTables
Describe la estructura de directorios en la que los archivos se almacenan en FileTables.

Acceso a FileTables con Transact-SQL
Se describen cómo los comandos de Transact-SQL del lenguaje de manipulación de datos (DML) funcionan con FileTables.

Acceso a FileTables con las API de File Input-Output
Describe cómo funciona la E/S del sistema de archivos en una FileTable.

Administrar FileTables
Describe las tareas administrativas comunes para administrar FileTables.

Contenido relacionado

Esquema de FileTable
Describe el esquema predefinido y fijo de una FileTable.

Compatibilidad de FileTable con otras características de SQL Server
Describe cómo funcionan FileTables con otras características de SQL Server.

DDL de FileTable, funciones, procedimientos almacenados y vistas
Enumera las instrucciones Transact-SQL y los objetos de base de datos de SQL Server que se han agregado o cambiado para admitir la característica FileTable.