FileTables (SQL Server)FileTables (SQL Server)

APLICA-SE A: simSQL Server nãoBanco de Dados SQL do Azure nãoSQL Data Warehouse do Azure nãoParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

O recurso FileTable oferece suporte para namespace de arquivo do Windows e compatibilidade de aplicativos do Windows com dados de arquivo armazenados no 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. O FileTable permite que um aplicativo integre seus componentes de armazenamento e gerenciamento de dados e forneça serviços integrados do SQL ServerSQL Server , inclusive pesquisa de texto completo e pesquisa semântica, em dados não estruturados e metadados.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.

Em outras palavras, você pode armazenar arquivos e documentos em tabelas especiais no SQL ServerSQL Server , denominadas FileTables, mas acessá-los a partir de aplicativos do Windows como se eles estivessem armazenados no sistema de arquivos, sem fazer alterações nos seus aplicativos 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.

O recurso FileTable se baseia na tecnologia FILESTREAM do SQL ServerSQL Server.The FileTable feature builds on top of SQL ServerSQL Server FILESTREAM technology. Para saber mais sobre o FILESTREAM, veja FILESTREAM (SQL Server).To learn more about FILESTREAM, see FILESTREAM (SQL Server).

Benefícios do recurso FileTableBenefits of the FileTable Feature

Os objetivos do recurso FileTable incluem o seguinte:The goals of the FileTable feature include the following:

  • Compatibilidade com APIs do Windows para dados de arquivos armazenados em um banco de dados do SQL ServerSQL Server .Windows API compatibility for file data stored within a SQL ServerSQL Server database. A compatibilidade com APIs do Windows inclui o seguinte:Windows API compatibility includes the following:

    • Acesso de streaming não transacional e atualizações in loco para dados FILESTREAM.Non-transactional streaming access and in-place updates to FILESTREAM data.

    • Um namespace hierárquico de diretórios e arquivos.A hierarchical namespace of directories and files.

    • Armazenamento de atributos de arquivo, como data de criação e data de modificação.Storage of file attributes, such as created date and modified date.

    • Suporte para APIs de gerenciamento de arquivos e diretórios do Windows.Support for Windows file and directory management APIs.

  • Compatibilidade com outros recursos do SQL ServerSQL Server que incluem ferramentas de gerenciamento, serviços e recursos de consulta relacional em dados de atributo de arquivo e FILESTREAM.Compatibility with other SQL ServerSQL Server features including management tools, services, and relational query capabilities over FILESTREAM and file attribute data.

Com isso, as FileTables removem uma barreira significativa ao uso do SQL ServerSQL Server para o armazenamento e gerenciamento de dados não estruturados que residem atualmente como arquivos em servidores de arquivos.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. As empresas podem mover esses dados de servidores de arquivos para FileTables para aproveitar a administração integrada e os serviços fornecidos pelo 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. Ao mesmo tempo, podem manter a compatibilidade de aplicativos do Windows para seus aplicativos do Windows existentes que consultam esses dados como arquivos no sistema de arquivos.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.

O que é uma FileTable?What Is a FileTable?

SQL ServerSQL Server oferece uma tabela de arquivosespecial, também chamada de FileTable, para aplicativos que exigem o armazenamento de arquivos e diretório no banco de dados, com a compatibilidade de API do Windows e o acesso não transacional.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. Uma FileTable é uma tabela de usuário especializada com um esquema predefinido que armazena dados FILESTREAM, além de informações de hierarquias de arquivos e diretórios e atributos de arquivos.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.

Uma FileTable fornece a seguinte funcionalidade:A FileTable provides the following functionality:

  • Uma FileTable representa uma hierarquia de diretórios e arquivos.A FileTable represents a hierarchy of directories and files. Armazena dados relacionados a todos os nós dessa hierarquia, tanto aos diretórios quanto aos arquivos que contêm.It stores data related to all the nodes in that hierarchy, for both directories and the files they contain. Essa hierarquia começa em um diretório raiz que você especifica ao criar a FileTable.This hierarchy starts from a root directory that you specify when you create the FileTable.

  • Cada linha de uma FileTable representa um arquivo ou um diretório.Every row in a FileTable represents a file or a directory.

  • Cada linha contém os seguintes itens:Every row contains the following items. Para obter mais informações sobre o esquema de uma FileTable, veja Esquema de FileTable.For more information about the schema of a FileTable, see FileTable Schema.

    • Uma coluna file_stream para dados de fluxo e um identificador (GUID) stream_id.A file_stream column for stream data and a stream_id (GUID) identifier. (A coluna file_stream é NULL para um diretório.)(The file_stream column is NULL for a directory.)

    • As colunas path_locator e parent_path_locator para representar e manter a hierarquia de diretórios do item atual (arquivo ou diretório).Both path_locator and parent_path_locator columns for representing and maintaining the current item (file or directory) and directory hierarchy.

    • 10 atributos de arquivo, como a data de criação e a data de modificação que são úteis com APIs de E/S de arquivo.10 file attributes such as created date and modified date that are useful with file I/O APIs.

    • Uma coluna de tipo que oferece suporte à pesquisa de texto completo e à pesquisa semântica em arquivos e documentos.A type column that supports full-text search and semantic search over files and documents.

  • Uma FileTable impõe determinados gatilhos e restrições definidos pelo sistema para manter a semântica de namespace de arquivo.A FileTable enforces certain system-defined constraints and triggers to maintain file namespace semantics.

  • Quando o banco de dados é configurado para acesso não transacional, a hierarquia de arquivos e diretórios representada no FileTable é exposta no compartilhamento FILESTREAM configurado para a instância do 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. Isso oferece ao sistema de arquivos acesso para aplicativos Windows.This provides file system access for Windows applications.

Algumas características adicionais de FileTables incluem o seguinte:Some additional characteristics of FileTables include the following:

  • Os dados de arquivos e diretórios armazenados em uma FileTable são expostos através de um compartilhamento do Windows para acesso não transacional a arquivos para aplicativos baseados em APIs do 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 um aplicativo do Windows, isto parece um compartilhamento normal com seus arquivos e diretórios.For a Windows application, this looks like a normal share with its files and directories. Aplicativos podem usar um conjunto sofisticado de APIs do Windows para gerenciar os arquivos e diretórios neste compartilhamento.Applications can use a rich set of Windows APIs to manage the files and directories under this share.

  • A hierarquia de diretórios exposta por meio do compartilhamento é uma estrutura de diretórios puramente lógica que é mantida dentro da FileTable.The directory hierarchy surfaced through the share is a purely logical directory structure that is maintained within the FileTable.

  • As chamadas para criar ou alterar um arquivo ou um diretório por meio do compartilhamento Windows são interceptadas por um componente do SQL ServerSQL Server e refletidas nos dados relacionais correspondentes na 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.

  • As operações de APIs do Windows são não transacionais por natureza, e não estão associadas a transações de usuário.Windows API operations are non-transactional in nature, and are not associated with user transactions. Entretanto, o acesso transacional a dados FILESTREAM armazenados em uma FileTable tem suporte total, como é o caso para qualquer coluna FILESTREAM em uma tabela 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.

  • FileTables também podem ser consultadas e atualizadas através do acesso Transact-SQLTransact-SQL normal.FileTables can also be queried and updated through normal Transact-SQLTransact-SQL access. Elas também são integradas a ferramentas de gerenciamento e recursos do SQL ServerSQL Server , como o backup.They are also integrated with SQL ServerSQL Server management tools, and features such as backup.

  • Você não pode enviar uma solicitação de email usando dbmail e anexar um arquivo localizado em um diretório de filestream (e, portanto, filetable).You are unable to send an email request through dbmail and attach a file located in a filestream directory (and therefore filetable). O driver de filtro do sistema de arquivos RsFx0420 inspeciona as solicitações de E/S que entram e saem da pasta do fluxo de arquivos.The filesystem filter driver RsFx0420 inspects incoming I/O requests going in and out of the filestream folder. Se a solicitação não for tanto do executável do SQL Server quanto do código de Filestream, ela não será explicitamente permitida.If the request is not both from the SQLServer executable and Filestream code, they are explicitly disallowed.

Considerações adicionais para usar FileTablesAdditional Considerations for Using FileTables

Considerações administrativasAdministrative Considerations

Sobre FILESTREAM e FileTablesAbout FILESTREAM and FileTables

  • Você configura FileTables separadamente de FILESTREAM.You configure FileTables separately from FILESTREAM. Portanto, você pode continuar a usar o recurso FILESTREAM sem habilitar o acesso não transacional ou criar FileTables.Therefore you can continue to use the FILESTREAM feature without enabling non-transactional access or creating FileTables.

  • Não existe acesso não transacional a dados FILESTREAM, exceto por meio de FileTables.There is no non-transactional access to FILESTREAM data except through FileTables. Portanto, quando você habilita o acesso não transacional, o comportamento de colunas FILESTREAM e aplicativos existentes não é afetado.Therefore, when you enable non-transactional access, the behavior of existing FILESTREAM columns and applications is not affected.

Sobre FileTables e acesso não transacionalAbout FileTables and non-transactional access

  • É possível habilitar ou desabilitar o acesso não transacional no nível de banco de dados.You can enable or disable non-transactional access at the database level.

  • Você pode configurar ou ajustar o acesso não transacional no nível de banco de dados desativando-o, ou habilitando o acesso somente leitura ou leitura/gravação completa.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.

FileTables não dão suporte a arquivos mapeados por memóriaFileTables Do Not Support Memory-Mapped Files

FileTables não dão suporte a arquivos mapeados por memória.FileTables do not support memory-mapped files. Bloco de Notas e Paint são dois exemplos comuns de aplicativos que usam arquivos mapeados por memória.Notepad and Paint are two common examples of applications that use memory-mapped files. Você não pode usar estes aplicativos no mesmo computador que o SQL ServerSQL Server para abrir arquivos que estão armazenados em um FileTable.You cannot use these applications on the same computer as SQL ServerSQL Server to open files that are stored in a FileTable. Porém, você pode usar estes aplicativos de um computador remoto para abrir arquivos que estão armazenados em um FileTable, porque, nestes circunstâncias, o recurso do mapeamento de memória não é usado.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.

Tarefas relacionadasRelated Tasks

Habilitar os pré-requisitos para o FileTableEnable the Prerequisites for FileTable
Descreve como habilitar os pré-requisitos para criar e usar FileTables.Describes how to enable the prerequisites for creating and using FileTables.

Criar, alterar e remover FileTablesCreate, Alter, and Drop FileTables
Descreve como criar uma nova FileTable, ou alterar ou remover uma FileTable existente.Describes how to create a new FileTable, or alter or drop an existing FileTable.

Carregar arquivos em FileTablesLoad Files into FileTables
Descreve como carregar ou migrar arquivos para FileTables.Describes how to load or migrate files into FileTables.

Trabalhar com diretórios e caminhos em FileTablesWork with Directories and Paths in FileTables
Descreve a estrutura de diretórios na qual os arquivos são armazenados em FileTables.Describes the directory structure in which the files are stored in FileTables.

Acessar FileTables com Transact-SQLAccess FileTables with Transact-SQL
Descreve como os comandos DML (linguagem de manipulação de dados) Transact-SQL funcionam com FileTables.Describes how Transact-SQL data manipulation language (DML) commands work with FileTables.

Acessar FileTables com APIs de entrada e saída de arquivoAccess FileTables with File Input-Output APIs
Descreve como a E/S do sistema de arquivos funciona em uma FileTable.Describes how file system I/O works on a FileTable.

Gerenciar FileTablesManage FileTables
Descreve tarefas administrativas comuns para gerenciar FileTables.Describes common administrative tasks for managing FileTables.

Conteúdo relacionadoRelated Content

Esquema de FileTableFileTable Schema
Descreve o esquema predefinido e fixo de uma FileTable.Describes the pre-defined and fixed schema of a FileTable.

Compatibilidade do FileTable com outros recursos do SQL ServerFileTable Compatibility with Other SQL Server Features
Descreve como as FileTables funcionam com outros recursos do SQL Server.Describes how FileTables work with other features of SQL Server.

DDL, funções, procedimentos armazenados e exibições de FileTableFileTable DDL, Functions, Stored Procedures, and Views
Lista as instruções Transact-SQLTransact-SQL e os objetos de banco de dados do SQL ServerSQL Server que foram adicionados ou alterados para oferecer suporte ao recurso 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 TambémSee Also

Exibições de gerenciamento dinâmico de fluxo de arquivos e FileTable (Transact-SQL)Filestream and FileTable Dynamic Management Views (Transact-SQL)
Exibições de catálogo de fluxo de arquivos e FileTable (Transact-SQL)Filestream and FileTable Catalog Views (Transact-SQL)
Procedimentos armazenados de fluxo de arquivos e FileTable (Transact-SQL)Filestream and FileTable System Stored Procedures (Transact-SQL)