Comparar opções de armazenamento de Blobs (SQL Server)

Aplica-se a: SQL Server

Discute e compara as opções disponíveis para armazenar arquivos e documentos no SQL Server.

Armazenando arquivos no banco de dados – Benefícios e expectativas

Um grande percentual de dados corporativos é não estruturado por natureza, e é normalmente armazenado como arquivos e documentos em sistemas de arquivos. A maioria desses dados é produzida, gerenciada e consumida por aplicativos que acessam os arquivos por meio de APIs do Windows. As empresas geralmente mantêm esses dados no sistema de arquivos, enquanto armazenam os metadados relacionados dos arquivos em um banco de dados relacional.

A integração de dados não estruturados no banco de dados relacional oferece os seguintes benefícios:

  • Recursos de armazenamento integrado e gerenciamento de dados, inclusive backup.
  • Serviços integrados, como pesquisa de texto completo e pesquisa semântica em dados e metadados.
  • Facilidade de administração e gerenciamento de políticas nos dados não estruturados.

Geralmente, não tem sido conveniente armazenar dados não estruturados em um banco de dados relacional. Não é prático reescrever aplicativos estabelecidos (como Microsoft Word ou Adobe Reader) para interagir por meio de APIs de banco de dados relacional. Esses aplicativos esperam que os dados estejam acessíveis por meio de APIs do Windows. Os aplicativos têm estas expectativas:

  • Aplicativos do Windows não estão cientes das transações de banco de dados e não as requerem.
  • Aplicativos do Windows requerem compatibilidade com APIs do sistema de arquivos para dados de arquivos e diretórios.

Há muitos anos, o SQL Server não oferecia qualquer variedade de maneiras de armazenar dados não estruturados em um banco de dados relacional. No entanto, hoje oferece maneiras de armazenar dados não estruturados.

FILESTREAM

O SQL Server já tem o recurso FILESTREAM. O recurso FILESTREAM fornece armazenamento eficiente, gerenciamento e streaming de dados não estruturados armazenados como arquivos no sistema de arquivos. Entretanto, uma solução FILESTREAM exige a programação personalizada e não satisfaz o requisito de compatibilidade total de aplicativos do Windows, descrito anteriormente.

Tabelas de arquivos

O recurso FileTable se baseia nos recursos existentes de FILESTREAM. O recurso FileTable permite que os clientes corporativos armazenem dados de arquivos não estruturados e hierarquias de diretório em um banco de dados SQL Server. O recurso aborda os requisitos de acesso não transacional e compatibilidade de aplicativos do Windows para dados com base em arquivo.

Comparando FILESTREAM e FileTable

Recurso Servidor de arquivos e solução de banco de dados Solução FILESTREAM Solução FileTable
Armazenamento único para tarefas de gerenciamento Não Sim Sim
Conjunto único de serviços: pesquisa, relatório, consulta etc. Não Sim Sim
Modelo de segurança integrada Não Sim Sim
Atualizações in loco de dados FILESTREAM Sim Não Sim
Hierarquia de arquivos e diretórios mantida no banco de dados Não No Sim
Compatibilidade de aplicativos do Windows Sim Não Sim
Acesso relacional a atributos de arquivo Não No Sim

Comparando FILESTREAM e repositório de BLOB remoto (RBS)

Outra opção para armazenar dados não estruturados envolve um RBS (Remote BLOB Store). Para saber mais, confira RBS (Remote BLOB Store (SQL Server).

Mais informações

FILESTREAM (SQL Server)
FileTables (SQL Server)
RBS (Armazenamento de Blob Remoto) [SQL Server]