Archive

Posts Tagged ‘Integration Services’

The requested OLE DB provider Microsoft.Jet.OLEDB.4.0 is not registered — perhaps no 64-bit provider is available

January 17, 2012 Leave a comment

Olá! Alegre

Cenário:

Automatizando alguns processos e/ou coletando informações de diversas fontes de dados para centralizar relatórios em um único ponto (SharePoint!) precisamos criar mecanismos de extração e carga das informações (ETL).

Na experiência deste post, precisei extrair as informações de banco de dados Access (.mdb) e jogar a informação em tabela no SQL.

Ao utilizar o provider nativo de acesso a fonte de dados Access e mandar rodar a extração me deparo com um erro.

ERRO:

The requested OLE DB provider Microsoft.Jet.OLEDB.4.0 is not registered — perhaps no 64-bit provider is available.

E de fato, como podemos ler, não existe a versão deste provider para plataforma 64 bits: http://support.microsoft.com/kb/957570.

SOLUÇÃO:

Para resolver o problema forcei o pacote do SQL Server Integration Services (SSIS) rodar como 32 bits, tanto no Business Intelligence Management Studio (BIMS) quanto no Timer no SQL Server Agent.

No BIMS, nas propriedades de configuração do projeto:

clip_image002

No Job do SQL Server Agent:

clip_image004

Abraço!

Extraindo informações de listas no SharePoint e carregando em tabelas no SQL Server usando Integration Services

October 28, 2010 15 comments

Autor:

Thiago Silva

Publicação:

28/Out/10

Overview

Constantemente encontramos situações onde precisamos extrair as informações do SharePoint para tratar, analisar e mostrar algo.

Já vi situações que usuários acessam os dados do SharePoint diretamente no Banco de Dados. Esse procedimento não é recomendado, pois a Microsoft não garante suporte ao produto se acessamos os dados diretamente na base de dados do SharePoint. Para isso, existem as APIs e afins.

Recentemente, montei um projeto de BI, usando as informações das listas do SharePoint, para montar indicadores, dashboards e tudo mais. Mas, como fazer isso usando as listas do SharePoint?

Utilizei os recursos do SQL Server, mais precisamente o Integration Services (SSIS), para extrair as informações do SharePoint e jogar em tabelas criadas no SQL Server, em uma instância e um Banco de Dados separado para isso. Assim, também ajudamos para que a performance das outras aplicações do SharePoint não sofram tanto.

Para utilizar o SSIS e extrair as informações do SharePoint, precisaremos de um add-in disponível no CodePlex (http://sqlsrvintegrationsrv.codeplex.com/releases/view/17652). Faça o download, instale e adicione o add-in no Toolbox como sugerido a seguir.

Solução

Para essa solução vou trabalhar com os seguintes produtos e tecnologias:

· Windows 7 Enterprise;

· Microsoft SharePoint 2010 Server Enterprise;

· SQL Server 2008 Enterprise;

· SQL Server 2008 Integration Services;

· SQL Server Business Intelligence Development Studio;

· SharePoint List Source and Destination (http://sqlsrvintegrationsrv.codeplex.com/releases/view/17652)

1. Instalando o SSIS SharePoint List Adapters

a. Faça download do executável no link mencionado acima.

b. Rode o instalador e prossiga com a instalação.

image

2. Adicione o List Source (puxar informação do SharePoint) e o List Destination (inserir informação no SharePoint) ao Toolbox do Business Intelligence Development Studio.

a. Abra o Business Intelligence Development Studio e crie um novo Projeto do Integration Services.

image

b. Clique em DataFlow, depois clique no link no meio da tela para criar um Data Flow Task.

image

c. No menu Tools, selecione Choose Toolbox Items para adicionar os novos itens.

image

d. Na tab SSIS Data Flow Items, selecione SharePoint List Destination e SharePoint List Source marcando os checkbox’s.

image

e. Para organizar melhor, arraste os controles que estão em General para Data Flow sources e Data Flow Destinations respectivamente.

image

3. Criando uma lista customizada no SharePoint para testes com a integração do SSIS.

a. Vá até o site desejado, clique em All Site Contents, e depois em Create para criar uma nova lista. Escolha uma Custom List para facilitar a criação de colunas. Clique Ok, após dar um nome para sua lista.

image

b. Insira alguns itens na lista para que algo seja retornado quando rodarmos o pacote no SSIS.

image

4. De volta ao Business Intelligence Development Studio.

a. Em Data Flow, selecione SharePoint List Source no Toolbox e arraste para a area de Design do Data Flow.

image

image

b. Clique duas vezes para editar as configurações, e apontarmos para a lista desejada.

i. A janela do Advanced Editor for SharePoint List Source deve aparecer para editarmos as configurações.

ii. Em Custom Properties, localize SiteUrl e SiteListName. Insira as informações de acordo com seu ambiente. No meu caso, http://notebook01/ e Lista Teste SSIS respectivamente.

image

NOTA: Perceba que podemos customizar muitas outras opções, como por exemplo, inserir uma Query CAML para trazer apenas itens baseados em certo filtro e/ou ordenado por alguma coluna específica.

iii. Nas tabs Column Mappings e Input and Output Properties, você pode customizar quais colunas deseja trazer da lista e também criar próprias colunas e mapeá-las de acordo com a necessidade.

5. Criando uma tabela no SQL Server para receber os dados da lista.

a. Clique no menu View, depois em Server Explorer.

image

b. Clique com o botão direito em Data Connections, em seguida em Add Connection.

image

c. Insira o nome do seu servidor de banco de dados (caso ele possua instâncias diferentes, como no meu caso, insira também o nome da instância). E mais abaixo, selecione o nome do seu banco de dados onde iremos criar a tabela que irá receber as informações da lista.

image

d. Clique em Test Connection para testar sua conexão com o Banco de Dados, e depois clique em Ok.

e. Expanda a conexão que você acabou de criar. Expanda Tables, clique com o botão direito e selecione Add New Table.

image

f. Crie duas colunas: uma “ID”, do tipo int, para armazenar o ID do item do SharePoint, e outra coluna “Nome”, do tipo nvarchar(255), para armazenar o campo Title do item do SharePoint.

g. Em Propierties, da tabela, coloque um nome para sua tabela. No meu caso, coloquei algo similar ao nome da Lista no SharePoint. Então, ficou assim: “Table_Teste_SSIS”.

image

6. Inserindo as informações extraídas da Lista do SharePoint para a tabela no SQL Server.

a. No Toolbox, arraste o item OLE DB Destination para o Design do Data Flow task.

image

b. Clique no SharePoint List Source, e arraste o conector (output) para o OLE DB Destination (input).

image

c. Clique duas vezes sobre OLE DB Destination para configurar os mapeamentos.

i. O OLE DB Destination Editor deve aparecer. Clique em New no OLE DB connection manager para criar uma nova conexão, que será utilizada por este controle.

ii. Em Configure OLE DB Connection Manager, clique em New.

iii. Configure a conexão com o seu Banco de Dados, como feito anteriormente.

image

iv. Clique Ok, e Ok novamente para voltar ao OLE Destination Editor. De volta ao Editor, escolha a tabela que acabamos de criar.

image

v. Depois clique em Mappings, para mapear as colunas que queremos.

vi. Veja que a coluna ID já teve seu mapeamento feito automaticamente por que elas tem o mesmo nome na Lista do SharePoint e na Tabela no SQL. Mas a coluna Title e Nome, não foram mapeadas. Por tanto, vamos fazê-lo agora.

vii. Clique no Input Column abaixo de ID, e seleciona Title. Depois, clique em OK.

image

d. Agora, clique duas vezes sobre o conector (linha verde) para adicionar um “viewer” para visualizar o que está vindo do SharePoint.

i. O Data Flow Path Editor irá aparecer. Clique Data Viewers, clique em Add. Depois clique em Ok, e Ok novamente pare fechar todos os Editor’s.

image

e. Pronto! Agora vamos pressionar F5 para iniciar a extração dos dados.

f. O Data Viewer vai aparecer para visualizarmos as informações que vieram da lista do SharePoint. Pressione o “play” para continuar e jogar as informações na tabela do SQL.

image

g. Sucesso!

image

h. No Server Explorer clique com o botão direito na tabela, e selecione Show Table Data.

image

i. As informações da nossa lista estão agora na tabela no SQL Server!

image

Conclusão

Nesse artigo mostrei como podemos usar funcionalidades do SLQ Server para extrair dados do SharePoint de forma estruturada e aproveitando-se das API’s do SharePoint para isso, já que não é recomendado acessar diretamente as informações do SharePoint no seu banco de dados.

Benefícios na utilização do SharePoint List Source and Destination:

· Somente os campos que você quer são retornados do SharePoint.

· Listas grandes não são transferidas de uma única vez. Elas são paginadas em batches, com a configuração de tamanho dos batches. Por padrão, são 1000 itens por vez.

· Informação dos tipos de coluna do SharePoint é usada para o mapeamento nos tipos de dados dentro do Integration Services.

· Queries CAML podem ser adicionadas para realizar filtros nas linhas que serão retornadas da lista.