Acessando dados do Azure TableStorage no Excel PowerPivot via OData

Com o avanço na utilização de Cloud Computing, temos cada vez mais dados armazenados nos datacenters das empresas que vendem serviços de computação na nuvem, como é o caso da Microsoft.

Muitas das vezes, precisamos apresentar os dados que estão armazenados de uma maneira intuitiva para o usuário, com uma ferramenta que ele já esteja acosutmado a trabalhar, como o Excel.

Para possibilitar o usuário de visualizar os dados armazenados no Table Storage do Windows Azure, veremos que bastam algumas poucas linhas de código e que seja feito o download do PowerPivot for Excel 2010.

Caso queira baixar o código-fonte da aplicação, clique aqui.

Para começarmos, crie um projeto do tipo "Azure Cloud Service" no Visual Studio e adicione uma WebRole do tipo "WCF Service Web Role". 

Figura 1: Estrutura do projeto no Visual Studio

Agora precisamos adicionar nossa classe que vai definir o modelo dados armazenados na Table Storage.

Adicione uma classe ao projeto web chamada Contato, conforme a figura abaixo:

Figura 2: Modelo de dados

Podemos ver que nossa classe herda de TableServiceEntity. Essa classe define tres propriedades que são necessárias para armazenar nosso dados no Table Storage do Azure. São elas: Partition Key, Row Key e Timestamp. Caso não saiba qual a finalidade dessas propriedades, leia este artigo na MSDN que explica muito bem por que elas existem.

Repare que há um atributo atribuito a classe do tipo EntityPropertyMapping. Este atributo será utilizado para quando o feed AtomPub for gerado, o título de cada item do feed será definido pelo valor armazenado na propriedade Nome.

O próximo passo é criar a classe de contexto com o Table Storage, que será responsável por fazer a comunicação com o serviço no Azure e receber os dados lá armazenados.

Figura 3: Contexto de dados

Repare que primeiramente instanciamos um objeto do tipo CloudStorageAccount, que irá ter todas as informações sobre nossa conta de Storage no Azure. Depois, criamos o objeto (tableContext) que irá servir de interface de comunicação entre a nossa aplicação e o Table Storage.

A propriedade Contatos, irá retornar as entidades armazenadas no Table Storage do tipo Contato.

Feito isso, agora precisamos somente criar o serviço que irá expor os dados utilizando o protocolo OData. Para isso, adicione um novo item ao projeto web do tipo WCF Data Service e adicione o código abaixo:

Figura 4: WCF Data Service

Para expor os nossos dados utilizando o protocolo OData, basta criarmos um serviço que herda da classe DataService<T> e passarmos para o tipo T a nossa classe contexto. O serviço então irá se encarregar de serializar os nossos dados no formato apropriado (AtomPub, XML ou JSON) e transmiti-los através em pacotes HTTP.

Se abrirmos nosso serviço no browser, visualizarmos o feed OData, conforme a figura abaixo:

Figura 5: Feed OData

Agora, podemos acessar os dados no Excel através do PowerPivot. Para isso abra o Excel, e na guia PowerPivot, clique em PowerPivotWindow.

Após aberto o PowerPivotWindow, clique em From Data Feeds. A janela abaixo irá abrir.

 

Figura 6: Configuração do PowerPivot

Clique em Next. Agora, podemos filtrar os dados retornados. Clique em Preview & Filter e desmarque as propriedades Timestamp, Row Key e Partition Key.

Figura 7: Filtros no PowerPivot

Clique em Finish e os dados serão mostrados na janela do PowerPivot. 

Figura 8: Dados do Table Storage no PowerPivot

Aprofunde seus conhecimento sobre esse tema no grupo de Azure na co...

Exibições: 37

Tags: Azure, Excel, OData, PowerPivot, Tables

Comentar

Você precisa ser um membro de Azure Services BR para adicionar comentários!

Entrar em Azure Services BR

© 2013   Criado por Lucas A. Romão.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço