Compartilhar via


FileTables (SQL Server)

O recurso FileTable traz suporte para o namespace de arquivo do Windows e compatibilidade com aplicativos do Windows para os dados de arquivo armazenados no SQL Server. FileTable permite que um aplicativo integre seus componentes de armazenamento e gerenciamento de dados e fornece serviços integrados do SQL Server - incluindo pesquisa de texto completo e pesquisa semântica - sobre dados e metadados não estruturados.

Em outras palavras, você pode armazenar arquivos e documentos em tabelas especiais no SQL Server chamadas FileTables, mas acessá-los de aplicativos do Windows como se estivessem armazenados no sistema de arquivos, sem fazer nenhuma alteração em seus aplicativos cliente.

O recurso FileTable baseia-se na tecnologia FILESTREAM do SQL Server. Para saber mais sobre FILESTREAM, consulte FILESTREAM (SQL Server).

Benefícios do recurso FileTable

As metas do recurso FileTable incluem o seguinte:

  • Compatibilidade da API do Windows para dados de arquivo armazenados em um banco de dados do SQL Server. A compatibilidade com a API do Windows inclui o seguinte:

    • Acesso de streaming não transacional e atualizações diretas no local para dados FILESTREAM.

    • Um namespace hierárquico de diretórios e arquivos.

    • Armazenamento de atributos de arquivo, como data criada e data modificada.

    • Suporte para APIs de gerenciamento de arquivos e diretórios do Windows.

  • Compatibilidade com outros recursos do SQL Server, incluindo ferramentas de gerenciamento, serviços e capacidades de consulta relacional sobre FILESTREAM e dados de atributo de arquivo.

Assim, as FileTables removem uma barreira significativa ao uso do SQL Server para o armazenamento e o gerenciamento de dados não estruturados que residem atualmente como arquivos em servidores de arquivos. 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 Server. Ao mesmo tempo, eles podem manter a compatibilidade de aplicativos do Windows para seus aplicativos existentes do Windows que veem esses dados como arquivos no sistema de arquivos.

O que é uma FileTable?

O SQL Server fornece uma tabela especial de arquivos, também conhecida como FileTable, para aplicativos que exigem armazenamento de arquivos e diretórios no banco de dados, com compatibilidade com a API do Windows e acesso não transacional. Uma FileTable é uma tabela de usuário especializada com um esquema predefinido que armazena dados FILESTREAM, bem como informações de hierarquia de arquivo e diretório e atributos de arquivo.

Uma FileTable fornece a seguinte funcionalidade:

  • Uma FileTable representa uma hierarquia de diretórios e arquivos. Ele armazena dados relacionados a todos os nós nessa hierarquia, tanto para os diretórios quanto para os arquivos que eles contêm. Essa hierarquia começa a partir de um diretório raiz que você especifica ao criar a FileTable.

  • Cada linha em uma FileTable representa um arquivo ou um diretório.

  • Cada linha contém os itens a seguir. Para obter mais informações sobre o esquema de uma FileTable, consulte FileTable Schema.

    • Uma coluna file_stream para dados de fluxo e um identificador GUID (stream_id). (A coluna file_stream é NULL para um diretório.)

    • As colunas path_locator e parent_path_locator para representar e manter a hierarquia de arquivo e diretório.

    • 10 atributos de arquivo, como data criada e data modificada que são úteis com APIs de E/S do arquivo.

    • Uma coluna de tipo que dá suporte à pesquisa de texto completo e pesquisa semântica em arquivos e documentos.

  • Uma FileTable impõe determinadas restrições e gatilhos definidos pelo sistema para manter a semântica do namespace de arquivo.

  • Quando o banco de dados é configurado para acesso não transacional, a hierarquia de arquivo e diretório representada na FileTable é exposta no compartilhamento FILESTREAM configurado para a instância do SQL Server. Isso fornece acesso ao sistema de arquivos para aplicativos do Windows.

Algumas características adicionais de FileTables incluem o seguinte:

  • Os dados de arquivo e diretório armazenados em uma FileTable são expostos por meio de um compartilhamento do Windows para acesso a arquivos não transacionais para aplicativos baseados em API do Windows. Para um aplicativo do Windows, isso parece um compartilhamento normal com seus arquivos e diretórios. Os aplicativos podem usar um conjunto avançado de APIs do Windows para gerenciar os arquivos e diretórios nesse compartilhamento.

  • A hierarquia de diretório exibida por meio do compartilhamento é uma estrutura de diretório puramente lógica que é mantida dentro da FileTable.

  • As chamadas para criar ou alterar um arquivo ou diretório por meio do compartilhamento do Windows são interceptadas por um componente do SQL Server e refletidas nos dados relacionais correspondentes na FileTable.

  • As operações de API do Windows não são transacionais por natureza e não estão associadas a transações de usuário. No entanto, o acesso transacional aos dados FILESTREAM armazenados em uma FileTable é totalmente suportado, assim como acontece com qualquer coluna FILESTREAM em uma tabela regular.

  • FileTables também podem ser consultados e atualizados com acesso normal Transact-SQL. Eles também são integrados às ferramentas de gerenciamento do SQL Server e a recursos como backup.

Considerações adicionais sobre como usar FileTables

Considerações administrativas

Sobre FILESTREAM e FileTables

  • Você configura FileTables separadamente de FILESTREAM. Portanto, você pode continuar a usar o recurso FILESTREAM sem habilitar o acesso não transacional ou criar FileTables.

  • Não há acesso não transacional aos dados FILESTREAM, exceto por meio de FileTables. Portanto, quando você habilita o acesso não transacional, o comportamento das colunas e aplicativos FILESTREAM existentes não é afetado.

Sobre FileTables e acesso não transacional

  • Você pode habilitar ou desabilitar o acesso não transacional no nível do banco de dados.

  • Você pode configurar ou ajustar o acesso não transacional no nível do banco de dados desativando-o ou habilitando o acesso de leitura/gravação completo ou somente leitura.

FileTables não dão suporte a arquivos Memory-Mapped

FileTables não dão suporte a arquivos mapeados por memória. Bloco de notas e Paint são dois exemplos comuns de aplicativos que usam arquivos mapeados em memória. Você não pode usar esses aplicativos no mesmo computador que o SQL Server para abrir arquivos armazenados em uma FileTable. No entanto, você pode usar esses aplicativos de um computador remoto para abrir arquivos armazenados em uma FileTable, pois nessas circunstâncias o recurso de mapeamento de memória não é usado.

Tarefas Relacionadas

Habilitar os pré-requisitos para FileTable
Descreve como habilitar os pré-requisitos para criar e usar FileTables.

Criar, alterar e remover FileTables
Descreve como criar uma nova FileTable ou alterar ou remover uma FileTable existente.

Carregar arquivos em FileTables
Descreve como carregar ou migrar arquivos para FileTables.

Trabalhar com diretórios e caminhos em FileTables
Descreve a estrutura de diretórios na qual os arquivos são armazenados em FileTables.

Acessar FileTables com Transact-SQL
Descreve como os comandos DML (linguagem de manipulação de dados) Transact-SQL funcionam com FileTables.

Acessar FileTables com APIs de entrada e saída de arquivo
Descreve como a entrada/saída do sistema de arquivos funciona em uma FileTable.

Gerenciar FileTables
Descreve tarefas administrativas comuns para gerenciar FileTables.

Conteúdo relacionado

Esquema FileTable
Descreve o esquema predefinido e fixo de uma FileTable.

Compatibilidade do FileTable com outros recursos do SQL Server
Descreve como o FileTables funciona com outros recursos do SQL Server.

DDL fileTable, funções, procedimentos armazenados e exibições
Lista as instruções Transact-SQL e os objetos de banco de dados do SQL Server que foram adicionados ou alterados para dar suporte ao recurso FileTable.