FileTables (SQL Server)FileTables (SQL Server)

SE APLICA A: síSQL Server noAzure SQL Database noAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

La característica FileTable proporciona compatibilidad con el espacio de nombres de archivo de Windows y con las aplicaciones Windows para los datos de archivo almacenados en SQL ServerSQL Server.The FileTable feature brings support for the Windows file namespace and compatibility with Windows applications to the file data stored in SQL ServerSQL Server. FileTable permite que una aplicación pueda integrar sus componentes de administración de datos y almacenamiento, así como proporcionar servicios de SQL ServerSQL Server integrados (incluidas la búsqueda de texto completo y la búsqueda semántica) en datos y metadatos no estructurados.FileTable lets an application integrate its storage and data management components, and provides integrated SQL ServerSQL Server services - including full-text search and semantic search - over unstructured data and metadata.

Es decir, ahora puede almacenar archivos y documentos en tablas especiales de FileTables denominadas SQL ServerSQL Server y tener acceso a ellos desde las aplicaciones Windows como si estuviesen almacenados en el sistema de archivos, sin efectuar cambios en las aplicaciones cliente.In other words, you can store files and documents in special tables in SQL ServerSQL Server called FileTables, but access them from Windows applications as if they were stored in the file system, without making any changes to your client applications.

La característica FileTable se basa en la tecnología de FILESTREAM de SQL ServerSQL Server.The FileTable feature builds on top of SQL ServerSQL Server FILESTREAM technology. Para obtener más información sobre FILESTREAM, vea FILESTREAM (SQL Server).To learn more about FILESTREAM, see FILESTREAM (SQL Server).

Ventajas de la característica FileTableBenefits of the FileTable Feature

Los objetivos de la característica FileTable incluyen los siguientes:The goals of the FileTable feature include the following:

  • Compatibilidad con la API de Windows para los datos de archivos almacenados en una base de datos de SQL ServerSQL Server .Windows API compatibility for file data stored within a SQL ServerSQL Server database. La compatibilidad con la API de Windows incluye lo siguiente:Windows API compatibility includes the following:

    • Acceso no transaccional de transmisión por secuencias y actualizaciones en contexto de datos FILESTREAM.Non-transactional streaming access and in-place updates to FILESTREAM data.

    • Espacio de nombres jerárquico de directorios y archivos.A hierarchical namespace of directories and files.

    • Almacenamiento de atributos de archivo, como fecha de creación y fecha de modificación.Storage of file attributes, such as created date and modified date.

    • Compatibilidad con las API de administración de archivos y directorios de Windows.Support for Windows file and directory management APIs.

  • Compatibilidad con otras características de SQL ServerSQL Server incluidos herramientas de administración, servicios y capacidades de consultas relacionales en FILESTREAM y en datos de atributos de archivo.Compatibility with other SQL ServerSQL Server features including management tools, services, and relational query capabilities over FILESTREAM and file attribute data.

De esta forma, FileTables quita una barrera importante respecto al uso de SQL ServerSQL Server para el almacenamiento y la administración de datos no estructurados que residan actualmente en los archivos y servidores de archivos.Thus FileTables remove a significant barrier to the use of SQL ServerSQL Server for the storage and management of unstructured data that is currently residing as files on file servers. Las empresas pueden mover estos datos desde los servidores de archivo a FileTables para aprovechar la administración integrada y los servicios proporcionados por SQL ServerSQL Server.Enterprises can move this data from file servers into FileTables to take advantage of integrated administration and services provided by SQL ServerSQL Server. Al mismo tiempo, pueden mantener la compatibilidad de las aplicaciones Windows para sus aplicaciones existentes de Windows que ven estos datos como archivos del sistema de archivos.At the same time, they can maintain Windows application compatibility for their existing Windows applications that see this data as files in the file system.

¿Qué es una FileTable?What Is a FileTable?

SQL ServerSQL Server proporciona una tabla de archivosespecial, también denominada FileTable, para aplicaciones que requieren almacenamiento de archivos y directorios en la base de datos, con compatibilidad con la API de Windows y acceso no transaccional.provides a special table of files, also referred to as a FileTable, for applications that require file and directory storage in the database, with Windows API compatibility and non-transactional access. La FileTable es una tabla de usuario especializada con un esquema predefinido que almacena los datos FILESTREAM, así como información de jerarquía de directorios y archivos e información de atributos de archivos.A FileTable is a specialized user table with a pre-defined schema that stores FILESTREAM data, as well as file and directory hierarchy information and file attributes.

Una FileTable proporciona la funcionalidad siguiente:A FileTable provides the following functionality:

  • Una FileTable representa una jerarquía de directorios y archivos.A FileTable represents a hierarchy of directories and files. Almacena los datos relacionados con todos los nodos de esa jerarquía, tanto para los directorios como los archivos que contienen.It stores data related to all the nodes in that hierarchy, for both directories and the files they contain. Esta jerarquía se inicia en un directorio raíz que se especifica cuando se crea la FileTable.This hierarchy starts from a root directory that you specify when you create the FileTable.

  • Cada fila de una FileTable representa un archivo o un directorio.Every row in a FileTable represents a file or a directory.

  • Cada fila contiene los elementos siguientes.Every row contains the following items. Para obtener más información acerca del esquema de una FileTable, vea FileTable Schema.For more information about the schema of a FileTable, see FileTable Schema.

    • Una columna file_stream para los datos de secuencia y un identificador stream_id (GUID).A file_stream column for stream data and a stream_id (GUID) identifier. (El valor de la columna file_stream es NULL para un directorio).(The file_stream column is NULL for a directory.)

    • Las dos columnas path_locator y parent_path_locator para representar y mantener el elemento actual (archivo o directorio) y la jerarquía de directorios.Both path_locator and parent_path_locator columns for representing and maintaining the current item (file or directory) and directory hierarchy.

    • 10 atributos de archivo como fecha de creación y fecha de modificación que son útiles con las API de E/S de archivos.10 file attributes such as created date and modified date that are useful with file I/O APIs.

    • Una columna de tipo compatible con las búsquedas de texto completo y semántica en archivos y documentos.A type column that supports full-text search and semantic search over files and documents.

  • Una FileTable aplica ciertos desencadenadores y restricciones definidos por el sistema para mantener la semántica del espacio de nombres de archivo.A FileTable enforces certain system-defined constraints and triggers to maintain file namespace semantics.

  • Cuando se configura la base de datos para el acceso no transaccional, la jerarquía de archivos y directorios representada en FileTable se en el recurso compartido de FILESTREAM configurado para la instancia de SQL ServerSQL Server .When the database is configured for non-transactional access, the file and directory hierarchy represented in the FileTable is exposed under the FILESTREAM share configured for the SQL ServerSQL Server instance. De esta forma, se proporciona acceso al sistema de archivos para aplicaciones Windows.This provides file system access for Windows applications.

Algunas características adicionales de FileTables incluyen las siguientes:Some additional characteristics of FileTables include the following:

  • Los datos de archivos y directorios almacenados en una FileTable se exponen a través de un recurso compartido de Windows para el acceso no transaccional a los archivos de las aplicaciones basadas en la API de Windows.The file and directory data stored in a FileTable is exposed through a Windows share for non-transactional file access for Windows API based applications. Para una aplicación Windows, esto parece un recurso compartido normal con sus archivos y directorios.For a Windows application, this looks like a normal share with its files and directories. Las aplicaciones pueden usar un variado conjunto de API de Windows para administrar archivos y directorios del recurso compartido.Applications can use a rich set of Windows APIs to manage the files and directories under this share.

  • La jerarquía de directorios que apareció a través del recurso compartido es simplemente una estructura de directorios lógica que se mantiene en FileTable.The directory hierarchy surfaced through the share is a purely logical directory structure that is maintained within the FileTable.

  • Un componente de SQL ServerSQL Server intercepta las llamadas para crear o cambiar un archivo o directorio a través del recurso compartido de Windows y las refleja en los datos relacionales correspondientes de la FileTable.Calls to create or change a file or directory through the Windows share are intercepted by a SQL ServerSQL Server component and reflected in the corresponding relational data in the FileTable.

  • Las operaciones de la API de Windows no son transaccionales por naturaleza y no se asocian con transacciones de usuario.Windows API operations are non-transactional in nature, and are not associated with user transactions. No obstante, el acceso transaccional a los datos FILESTREAM almacenados en una FileTable son totalmente compatibles, como es el caso de cualquier columna FILESTREAM de una tabla normal.However, transactional access to FILESTREAM data stored in a FileTable is fully supported, as is the case for any FILESTREAM column in a regular table.

  • Las FileTables también se pueden consultar y actualizar mediante el acceso normal de Transact-SQLTransact-SQL .FileTables can also be queried and updated through normal Transact-SQLTransact-SQL access. Además, se integran con las herramientas de administración de SQL ServerSQL Server y características como la copia de seguridad.They are also integrated with SQL ServerSQL Server management tools, and features such as backup.

  • No se puede enviar una solicitud de correo electrónico a través de dbmail ni adjuntar un archivo ubicado en un directorio de secuencia de archivos (y, por tanto, filetable).You are unable to send an email request through dbmail and attach a file located in a filestream directory (and therefore filetable). El controlador del filtro del sistema de archivos RsFx0420 inspecciona las solicitudes entrantes de E/S que entran y salen de la carpeta de la secuencia de archivos.The filesystem filter driver RsFx0420 inspects incoming I/O requests going in and out of the filestream folder. Si la solicitud no procede del archivo ejecutable SQLServer y el código Filestream, se deshabilitan explícitamente.If the request is not both from the SQLServer executable and Filestream code, they are explicitly disallowed.

Consideraciones adicionales sobre el uso de FileTablesAdditional Considerations for Using FileTables

Consideraciones administrativasAdministrative Considerations

FILESTREAM y FileTablesAbout FILESTREAM and FileTables

  • Las FileTables se configuran independientemente de FILESTREAM.You configure FileTables separately from FILESTREAM. Por lo tanto, puede continuar usando la característica FILESTREAM sin habilitar el acceso no transaccional ni crear FileTables.Therefore you can continue to use the FILESTREAM feature without enabling non-transactional access or creating FileTables.

  • No existe el acceso no transaccional a los datos FILESTREAM salvo a través de las FileTables.There is no non-transactional access to FILESTREAM data except through FileTables. Por tanto, cuando se habilita el acceso no transaccional, el comportamiento de las columnas FILESTREAM y de las aplicaciones existentes no se ve afectado.Therefore, when you enable non-transactional access, the behavior of existing FILESTREAM columns and applications is not affected.

FileTables y acceso no transaccionalAbout FileTables and non-transactional access

  • Puede habilitar o deshabilitar el acceso no transaccional en el nivel de base de datos.You can enable or disable non-transactional access at the database level.

  • Puede configurar o ajustar el acceso no transaccional en el nivel de base de datos desactivándolo, habilitando el acceso de solo lectura o el acceso completo de lectura y escritura.You can configure or fine-tune non-transactional access at the database level by turning it off, or by enabling read only or full read/write access.

Las FileTables no admiten archivos asignados en memoriaFileTables Do Not Support Memory-Mapped Files

Las FileTables no admiten archivos asignados en memoria.FileTables do not support memory-mapped files. El Bloc de notas y Paint son dos ejemplos comunes de aplicaciones que utilizan archivos asignados en memoria.Notepad and Paint are two common examples of applications that use memory-mapped files. No puede utilizar estas aplicaciones en el mismo equipo que SQL ServerSQL Server para abrir archivos que se almacenan en una FileTable.You cannot use these applications on the same computer as SQL ServerSQL Server to open files that are stored in a FileTable. No obstante, puede utilizar estas aplicaciones desde un equipo remoto para abrir archivos que se almacenan en una FileTable, porque en estas circunstancias no se utiliza la característica de asignación de memoria.However you can use these applications from a remote computer to open files that are stored in a FileTable, because in these circumstances the memory-mapping feature is not used.

Tareas relacionadasRelated Tasks

Habilitar los requisitos previos de FileTablesEnable the Prerequisites for FileTable
Describe cómo habilitar los requisitos previos para crear y usar FileTables.Describes how to enable the prerequisites for creating and using FileTables.

Crear, modificar y quitar FileTablesCreate, Alter, and Drop FileTables
Describe cómo crear una nueva FileTable. O bien, modificar o quitar una FileTable existente.Describes how to create a new FileTable, or alter or drop an existing FileTable.

Cargar archivos en FileTablesLoad Files into FileTables
Describe cómo se cargan o migran archivos en las FileTables.Describes how to load or migrate files into FileTables.

Trabajar con directorios y rutas de acceso de FileTablesWork with Directories and Paths in FileTables
Describe la estructura de directorios en la que los archivos se almacenan en FileTables.Describes the directory structure in which the files are stored in FileTables.

Obtener acceso a FileTables con Transact-SQLAccess FileTables with Transact-SQL
Describe el funcionamiento de los comandos del lenguaje de manipulación de datos (DML) de Transact-SQL con FileTables.Describes how Transact-SQL data manipulation language (DML) commands work with FileTables.

Obtener acceso a FileTables con API de entrada-salida de archivoAccess FileTables with File Input-Output APIs
Describe el funcionamiento de E/S del sistema de archivos en una FileTable.Describes how file system I/O works on a FileTable.

Administrar FileTablesManage FileTables
Describe las tareas administrativas comunes para administrar FileTables.Describes common administrative tasks for managing FileTables.

Contenido relacionadoRelated Content

FileTable SchemaFileTable Schema
Describe los esquemas predefinido y fijo de una FileTable.Describes the pre-defined and fixed schema of a FileTable.

Compatibilidad de FileTable con otras características de SQL ServerFileTable Compatibility with Other SQL Server Features
Describe el funcionamiento de FileTables con otras características de SQL Server.Describes how FileTables work with other features of SQL Server.

DDL de FileTable, funciones, procedimientos almacenados y vistasFileTable DDL, Functions, Stored Procedures, and Views
Enumera las instrucciones de Transact-SQLTransact-SQL y objetos de base de datos de SQL ServerSQL Server que se han agregado o se han cambiado para admitir la característica de FileTable.Lists the Transact-SQLTransact-SQL statements and the SQL ServerSQL Server database objects that have been added or changed to support the FileTable feature.

Consulte tambiénSee Also

Vistas de administración dinámica de secuencia de archivo y FileTable (Transact-SQL)Filestream and FileTable Dynamic Management Views (Transact-SQL)
Vistas de catálogo de secuencia de archivo y FileTable (Transact-SQL)Filestream and FileTable Catalog Views (Transact-SQL)
Procedimientos almacenados del sistema de Filestream y FileTable (Transact-SQL)Filestream and FileTable System Stored Procedures (Transact-SQL)