FileTables (SQL Server)

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

Em outras palavras, você pode armazenar arquivos e documentos em tabelas especiais no SQL 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.

O recurso FileTable se baseia na tecnologia FILESTREAM do SQL Server. Para obter mais informações sobre o FILESTREAM, consulte FILESTREAM (SQL Server).

Neste tópico

  • Benefícios do recurso FileTable

  • O que é uma FileTable?

  • Considerações adicionais para usar FileTables

    • Considerações administrativas

    • FileTables não dão suporte a arquivos mapeados por memória

  • Tarefas relacionadas

  • Conteúdo relacionado

Benefícios do recurso FileTable

Os objetivos do recurso FileTable incluem o seguinte:

  • Compatibilidade com APIs do Windows para dados de arquivos armazenados em um banco de dados do SQL Server. A compatibilidade com APIs do Windows inclui o seguinte:

    • Acesso de streaming não transacional e atualizações in loco para dados FILESTREAM.

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

    • Armazenamento de atributos de arquivo, como data de criação e data de modificação.

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

  • Compatibilidade com outros recursos do SQL Server que incluem ferramentas de gerenciamento, serviços e recursos de consulta relacional em dados de atributo de arquivo e FILESTREAM.

Com isso, as FileTables removem uma barreira significativa ao uso do SQL Server para o armazenamento e 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, podem manter a compatibilidade de aplicativos do Windows para seus aplicativos do Windows existentes que consultam esses dados como arquivos no sistema de arquivos.

[INÍCIO]

O que é uma FileTable?

O SQL Server oferece uma tabela de arquivos especial, também referenciada como 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. 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.

Uma FileTable fornece a seguinte funcionalidade:

  • Uma FileTable representa uma hierarquia de diretórios e arquivos. Armazena dados relacionados a todos os nós dessa hierarquia, tanto aos diretórios quanto aos arquivos que contêm. Essa hierarquia começa em um diretório raiz que você especifica ao criar a FileTable.

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

  • Cada linha contém os seguintes itens: Para obter mais informações sobre o esquema de uma FileTable, consulte Esquema da FileTable.

    • Uma coluna file_stream para fluxo de dados 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 arquivos e diretórios.

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

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

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

  • 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 Server. Isso oferece ao sistema de arquivos acesso para aplicativos Windows.

Algumas características adicionais de FileTables incluem o seguinte:

  • 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. Para um aplicativo do Windows, isto parece um compartilhamento normal com seus arquivos e diretórios. Aplicativos podem usar um conjunto sofisticado de APIs do Windows para gerenciar os arquivos e diretórios neste compartilhamento.

  • A hierarquia de diretórios exposta por meio do compartilhamento é uma estrutura de diretórios puramente lógica que é mantida dentro da 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 Server e refletidas nos dados relacionais correspondentes na 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. 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.

  • FileTables também podem ser consultadas e atualizadas através do acesso Transact-SQL normal. Elas também são integradas a ferramentas de gerenciamento e recursos do SQL Server, como o backup.

[INÍCIO]

Considerações adicionais para 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 existe acesso não transacional a dados FILESTREAM, exceto por meio de FileTables. Portanto, quando você habilita o acesso não transacional, o comportamento de colunas FILESTREAM e aplicativos existentes não é afetado.

Sobre FileTables e acesso não transacional

  • É possível habilitar ou desabilitar o acesso não transacional no nível de banco de dados.

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

[INÍCIO]

FileTables não dão suporte a arquivos mapeados por memória

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 por memória. Você não pode usar estes aplicativos no mesmo computador que o SQL Server para abrir arquivos que estão armazenados em um 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.

[INÍCIO]

Tarefas relacionadas

[INÍCIO]

Conteúdo relacionado

[INÍCIO]