Entendendo o Modelo de Dados do SharePoint

É comum me questionarem sobre onde os arquivos e itens do Sharepoint  estão gravados. Geralmente o objetivo é para fazer um relatório “direto da base de dados”, pegar um documento específicou ou para fazer backup e essa questão geralmente surge de quem está começando a trabalhar com Sharepoint ou desconhece sua estrutura.

Mas aonde estão os dados salvos pelo SharePoint? Como eu posso extrair esses dados ou manipulá-los sem utilizar o navegador?

Neste post vou falar sobre como funciona o modelo de persistência de dados do SharePoint.

Este post faz parte de uma série de posts sobre entendimento do SharePoint 2010, acesse o post principal para ver os outros assuntos: Entendendo o SharePoint 2010

Armazenamento em Banco de Dados

Todo o conteúdo carregador no SharePoint é armazenado em bases de dados que estão no SQL Server. Independente se for documento, tarefa, item de calendário ou outros tipos de conteúdo, tudo é armazenado no banco de dados.

O SharePoint utiliza um conjunto de bancos de dados para armazenar todas as informações da  Farm, mas é na base de conteúdo, por padrão chamada de WSS_Content, onde ficam salvos todos os documentos, itens, páginas, formulários, enfim, tudo que está dentro do site.

Há algumas exceções para essa regra como:

  • Customizações: alguns recursos customizados como web parts podem armazenar conteúdos fora do SharePoint, dependendo de como foi feita a programação;
  • Business Connectivity Services (BCS): recurso utilizado para que o usuário possa trabalhar com dados externos (oriundos de outros sistemas ou fontes de dados), nesse caso a informação apenas é mapeada para que o usuário consiga utilizá-la no SharePoint;
  • Remote Blog Storage (RBS): o SharePoint utiliza o recurso de File Stream do SQL Server e ao invés de armazenar os documentos dentro do banco de dados, armazena apenas o identificador do arquivo e grava o arquivo no sistemas de arquivo do servidor.

Extração de Dados

É muito comum as pessoas perguntarem o endereço ou nome da base do SharePoint porque desejam fazer um relatório para extrair os dados. A resposta comum para isso é que não acessem a base diretamente. Até porque depois de acessar a base, a construção do relatório será muito complicada pois o SharePoint armazena tudo no formato de metadados, ou seja, a informação é armazenada de uma forma que não é legível para as pessoas, mas sim para o SharePoint. Lá no banco são algumas poucas tabelas que tem todo o conteúdo “misturado” e de difícil entendimento, por isso sempre prefira extrair as informações utilizando algum serviço ou API do SharePoint

A melhor forma de extrair esses dados são:

  • Acessando os serviços que o SharePoint publica com o Lists.asmx, ListData.svc;
  • Exportando a lista ou biblioteca para um arquivo Excel;
  • Utilizar ETL para extrair dados do SharePoint e gravar na base do BI – existe pacote específico para o SharePoint;
  • Utilizando as APIs de cliente do SharePoint em .NET, Silverlight, JavaScript ou a API de servidor.

Como vimos, existem diversas maneiras de extrair dados do SharePoint que não necessitam de acesso direto ao banco. Além de extrair os dados, diversos dos mecanismos listados permitem que o conteúdo do site seja manipulado. Verifique qual recurso melhor lhe atende e utilize-o ao invés de tentar acessar diretamente os dados no banco de dados.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: