Dando continuidade nas novidades que o SQL Server 2012 nos traz, vemos uma nova feature chamada: FileTable.
Mas o que isso significa?
Uma nova feature construída sobre a tecnologia do FILESTREAM,
permitindo que dados BLOB sejam armazenados como arquivos individuais, porém,
separados dos arquivos de um banco de dados, onde podemos usa-los como uma
tabela de banco de dados com quase todas as funções de uma tabela
“convencional”.
Para ser mais objetivo, podemos armazenar arquivos e documentos em
tabelas do SQL Server, além acessá-las de aplicações do Windows sendo que elas
estão armazenadas no Sistema de arquivos, sem que para isso seja necessária
alteração nos aplicativos.
Mas você deve estar se perguntando: “Qual o benefício de se usar
isto?”.
Seguem alguns:
Armazenamento dos atributos do arquivo gerado, como a Data de criação,
modificação e último acesso;
- Suporte para o gerenciamento de arquivos e de diretórios do Windows;
- Facilidade de mover esses arquivos de dados para servidores de arquivos, mantendo a compatibilidade das aplicações que trabalham com esses dados como arquivos no sistema de arquivos;
- Compatibilidade com outros recursos do SQL Server
No entanto, para configurar o FileTable na Instância do SQL Server,
existem algumas etapas envolvidas no processo, como por exemplo a configuração
do FileStream.
Para configurá-lo, e darmos andamento no processo, vamos seguir esta
“receita de bolo”. Segue:
Abra o SQL Server Configuration Manager, conforme apresentado na imagem
1.
Imagem 1 – Selecione o SQL Server Configuration Manager
Navegue até o SQL Server Services, no painel esquerdo da janela aberta,
conforme apresentado na imagem 2.
Imagem 2 – Selecionando o Serviço do SQL Server
No painel a direita, clique na instância do banco de dados sobre o qual
você deve ativar o suporte do FILESTREAM e selecione a opção propriedades,
conforme vemos na Imagem 3 abaixo.
Imagem 3 – Selecionando a opção Propriedades do Serviço
da Instancia do
Banco de Dados
Será aberta as propriedades do SQL Server, que conterá as Abas onde poderemos configurar a opção FILESTREAM, habilitando o serviço.
Imagem 4 – Opção FileStream disponível para ser Habilitada.
Com isso, habilite a Opção do FileStream, apresentado na imagem acima,
para darmos andamento na utilização do FileTable.
Observação: Você pode também alterar o nome do compartilhamento do
Windows. Contudo, vou deixa-lo no padrão, ou seja, o nome do exemplo.
Agora, um fato interessante que você pode notar e que o servidor
disponibiliza um compartilhamento do Windows usando o nome da Instância do
Banco de dados instalado no seu Micro. Para ver este compartilhamento, abra o
Explorer do seu Sistema Operacional e digite o seguinte endereço: \\127.0.0.1 e
veja a o resultado, conforme imagem 5 abaixo.
Imagem 5 – Verificando o compartilhamento do Windows ao habilitar o
FileStream
Nota: Se você habilitou o acesso remoto na opção Enable FILESTREAM for file I/O streaming access, poderá acessar este compartilhamento, mas ele estará vazio neste momento.
Habilitando o SQL Server para usar o FileStream
Vamos novamente seguir um passo-a-passo:
- Abra o SQL Server Management Studio e cancele a tela de Login que será aberta.
- Clique no botão New Query e se conecte na instância do SQL Server, a qual foi configurada nos passos anteriores.
- Execute uma consulta com o seguinte Script:
exec sp_configure
filestream_access_level, 2;
Bom, com o FileStream configurado na Instância, podemos começar a configurar o nosso exemplo de armazenamento de banco de dados de FileStream.
Para isso, na mesma tela aberta no SQL Server, abra uma New Query e
execute o Script abaixo:
CREATE DATABASE FileTableSample
Nessa mesma janela, execute o script abaixo:
ALTER DATABASE FileTableSample
ADD FILEGROUP
FileStreamG1 CONTAINS FILESTREAM;
Imagem 8 – Executando o Script de Alteração do Database e adicionando
um grupo de arquivos FileStream para o banco de dados
Nessa mesma janela, execute o próximo script abaixo para dar andamento no processo:
ALTER DATABASE
FileTableSample
ADD FILE (
NAME = FileStream01,
FILENAME =
‘C:\Temp\FileStreamGroup1′
)
TO FILEGROUP
FileStreamG1;
Imagem 9 – Executando o script que cria o arquivo FileTable em um
respectivo diretório e definindo o armazenamento associado com o grupo de
arquivos FileStream adicionado anteriormente
Nesta última etapa será necessária um comentário: Percebam que o caminho de armazenamento do FileStream é identificado conforme o nome do arquivo de configuração, sendo o mesmo um caminho válido no Sistema Operacional, ou seja, o Diretório C:\Temp deve existir e estar disponível para uso. Entretanto, a pasta FileStreamGroup1 não será preciso ser criada, pois o próprio SQL Server se encarregará de cria-la no momento da execução do Script.
Bom, com o banco de dados ajustado, precisamos configurar a forma como
o banco vai apresentar e controle as iterações com os dados do FileStream.
Para isso, vamos seguir os passos abaixo:
- Necessitamos agora definir o nome da subpasta compartilhada através do qual o FileStream irá associar o banco de dados. Para isso, necessitamos executar o script abaixo:
ALTER DATABASE
FileTableSample
SET FILESTREAM (
DIRECTORY_NAME = ‘FileTableSample’ );
Imagem 10 – Definindo o nome da subpasta compartilhada
O próximo passo será habilitar o acesso de leitura e escrita de dados no FileStream, de acordo com o script e imagem abaixo:
ALTER DATABASE FileTableSample
SET FILESTREAM (
non_transacted_access = full );
Imagem 11 – Liberando acesso a leitura e escrito de dados no FileStream
Para terminarmos, vamos criar uma tabela neste banco de dados criado. Para tanto, segue mais um Script:
use FileTableSample
GO
CREATE TABLE
TBL_FileTable AS FILETABLE
GO
Enfim, conforme verão na imagem abaixo, temos agora a tabela criada e
disponível para acesso.
Imagem 12 – Tabela FileTable criada com sucesso
Abaixo, temos em outra imagem como ficou a estrutura de arquivos dentro do Diretório que utilizamos para armazenar arquivos com o FIleStrem.
Figura 13 – Apresentando a estrutura de arquivos criados
Bom, com isso terminamos nosso exemplo.
Vemos que com um FileTable, possuímos definido no banco de dados uma
tabela, sendo que a configuração da estrutura permitirá acesso não-transacional
para esta estrutura de pastas, onde poderemos arrastar e soltar arquivos dentro
da pasta e até mesmo criar subpastas, sendo que tudo isso se reflete na table
MyFileTable, isso quando interagímos usando Transact SQL.
Da mesma forma, quando utilizamos Transact SQL para realizar o “CRUD”,
essas alterações serão refletidas na pasta associada no compartilhamento do
Windows.
Bons estudos!
Nenhum comentário:
Postar um comentário