Introdução ao Azure Data Factory

Galera,

Estou começando hoje uma série de posts sobre o Azure Data Factory, ferramenta de ETL do MS Azure.

Ele nos permite fazer integração entre várias fontes de dados diferentes que estejam
on-premisses ou na nuvem, estes dados poderão ser transformados de várias maneiras possíveis e depois armazenados em um repositório que servirá de base para relatórios, por exemplo.

Objetivo a ser atingido com o artigo: Apresentar conceitos básicos sobre o ADF e criar uma integração simples entre uma storage account e um Azure Data Lake.

Terminologias

Antes de tudo precisamos entender alguns termos comuns que são utilizados no Data Factory:

  • Pipeline: agrupamento lógico de atividades que executam uma determinada atividade. Um Data Factory pode ter N pipelines.
  • Atividade: Representa a menor unidade de processamento. Cada um executa um tipo de atividade dentro do pipeline; Podendo se dividir em:
    • data movement activities
    • data transformation activities
    • control activities.
  • Dataset: estruturas de armazenamento de dados que servem como input e output para as atividades.
  • Linked server: Informações sobre as fontes de dados a serem usadas (connection strings)
  • Trigger: Como será disparada a execução do pipeline.

 

Criando um Data Factory

Para dar inicio na nossa PoC, precisamos criar todos os recursos que a compõe.
O primeiro deles é o Azure Data Factory.
Abra o portal do Azure e crie um novo recurso.

11.png

A definição dos parâmetros iniciais é bem auto-explicativa

12

Criando Storage Account (fonte de dados)

Continuando, vamos criar nossa fonte de dados. É aqui que a atividade de input de dados do pipeline irá buscar os dados para dar inicio ao processo.

Crie uma storage account, e insira um arquivo de texto, como blob, no seguinte formato dentro de um

14

 

nome,idade
dhiego,piroto
fernanda,tomiko
carlos,medeiros

Criando Azure Data Lake (Destino dos dados)

Agora vamos criar o destino dos nossos dados.
Não se preocupe se você nunca usou o ADL, vamos começar com o básico.

15

A definição dos parâmetros, assim como os do ADF, é bem auto-explicativa.

16

Gimme my demo!

Agora que já compreendemos alguns conceitos básicos e fizemos a criação do nosso ambiente, vamos para nossa demo de integração de dados.

Para manter as coisas simples, vamos criar essa primeira integração através do wizard que o Azure portal nos dá. Então acesse o nosso recém criado Azure Data Factory

17.png

A configuração via wizard é bem simples e precisamos nos atentar em alguns poucos detalhes:

Nome da task:

20

Fonte de Dados

21

onde, em nossa storage account, está o arquivo:

22

Qual padrão que o arquivo está, como é o delimitador de colunas e como é feita a quebra de linha?

24

Destino dos dados

Vamos mandar para nosso data lake

25

Precisamos trocar o tipo de autenticação de “principal” (que demandaria criar um application id no AD do Azure) para OAuth.

26.png

Como é o padrão que os dados vão ser exportados para o data lake

27

Como será o comportamento em caso se falha e qual será o nível de paralelismo

28

Validemos todos as informações.
Clique ‘Authorize’ para entrar com suas credencias do Azure (OAuth)

29

Acompanhando o deploy:

30

 

No final podemos ver isso nos diretório do nosso ADL e ver se o arquivo está lá
31

 

Você pode monitorar a execução de todos os seus pipelines no portal do Azure Data Factory: https://datafactory.azure.com 

31

Você poderá ver

  • Um modelo gráfico do seu código que exibe todas as entidades relacionadas ao seu pipeline.
  • Um correspondente, em json, ao seu pipeline

32.png

 

Pessoas, o exemplo de hoje foi bem simples, mas no decorrer da série vamos trabalhar algumas coisas mais complexas como: transformação de dados, agendamento de execuções, importação de pacotes DTS, integração com azure functions e outros.

Referencias

https://docs.microsoft.com/en-us/azure/data-factory/introduction 

[]`s

Piroto

Anúncios

Alertas Power BI + Flow/Azure Logic App

Fala Galera,

Recentemente precisei disparar alertas quando uma determinada condição dos meus dados exibidos em um dashboard do Power BI fosse verdadeira. Felizmente encontrei que há a possibilidade de integrar o MS Flow com tiles específicos do Power BI.

[Tudo que será explicado aqui envolvendo o Flow, pode ser replicado para o Azure Logic App. Escolhi fazer o tutorial no Flow pra que quem não use o Azure como provedor de cloud possa se beneficiar da funcionalidade.]

Vamos a um passo a passo bem simples de como fazê-lo:

Uma estrutura bem básica de tabelas será utilizada:

Estrutura de tabelas básica:

CREATE DATABASE TEMP
USE TEMP
GO
--Tabela que será usada para armazenar os dados do alarme
CREATE TABLE LOGPOWERBI (TEXTO VARCHAR(2000))
/*Tabela que irá armazenar os valores que serão usados como base
para nosso relatório o powerbi e para o alerta.*/
CREATE TABLE LOGPOWERBI_BASE (VALOR INT)
GO
INSERT INTO LOGPOWERBI_BASE (VALOR) VALUES (1000)
GO 4

 

  1. Configurações do  Power BI

No nosso exemplo vamos criar um report que vai somente somar os valores da coluna VALOR da tabela LOGPOWERBI_BASE e apresentar o total em um KPI.
Depois de publicado o relatório, vamos adicionar o nosso KPI em um dashboard:
(como não é o foco do artigo, esta parte será resumida em 3 imagens)

*lembrando que este processo não pode ser feito com todos os tipos de vizualizações do Power BI.
**O KPI e Gauge podem ser usados.

Uma vez adicionado o KPI a nosso dashboard podemos configurar o valor que servirá de trigger para disparar nosso fluxo do flow (rs) .

O menu pode ser acessado através de um clique na ellipsis (…)

4 adiciona alertas

Agora vamos configurar como será nossa regra para o acionamento do evento.
Em nosso caso, quero que quando a soma do campo VALOR da tabela LOGPOWERBI_BASE ultrapassar 6k, o fluxo seja disparado.

5 alerta
2. Configuração do Microsoft Flow

  • Acesse a página do MS Flow e crise sua conta. (**use a mesma conta que você usou para publicar seu relatório do Power BI)
  • No topo da página vá em  “meus fluxos” e depois “criar a partir do zero”
  • No final da página vá em: “Pesquisar outros conectores” e busque por “Power BI”

7

Como você usou a mesma conta que usou para publicar seu relatório do Power BI, agora é apresentada uma lista dos alertas que já existem configurados para esta conta. Selecione o que criamos no passo 1 do artigo.

8

Agora vamos adicionar outros passos a nosso fluxo.
Vá em “Adicionar nova etapa” e adicione um envio de alerta de e-mail.

9.png

Note que você pode selecionar cada uma das informações que você deseja receber no evento.

1, 2, 3 … Testando:

Nosso teste será bem simples. Vamos adicionar mais 1K linhas na nossa tabela, atualizar o dataset do dashboard e ver o que acontece:

 

INSERT INTO LOGPOWERBI_BASE (VALOR) VALUES (1000)  

6 refresh.png

Nada aconteceu,  certo?

Agora vamos executar o seguinte comando 3 vezes.

INSERT INTO LOGPOWERBI_BASE (VALOR) VALUES (1000)
GO 3 

e atualizar o datasource:

6 refresh

Resultados:

Você deve ter reparado que uma notificação apareceu no seu console do Power BI

10

Vamos checar o e-mail:

11

Bem bacana, né ?

Lembrando que o Flow tem MUITOS conectores diferentes: Twitter, Onedrive, Dropbox. Use a imaginação 😀

E o que é mais legal, você usa Azure? Ao invés de usar o Ms Flow, você pode usar o Azure Logic App. Fica mais fácil de controlar e com uma estrutura mais corporativa de gerenciamento centralizado.

Por hoje é isso.
[]’s

Piroto

[Power BI] Row Level Security

Fala Galera,

Quando falamos de dados, um dos assuntos que sempre nos vem a mente é a segurança. Não importa a natureza da informação ela é o bem maior das empresas e, como tal, o acesso a ela deve ser restrito a quem de direito.

Objetivo a ser atingido com o artigo: Criar um relatório utilizado o Power BI e controlar os acessos a um subgrupo de informações.

 

O Power Bi tem uma solução muito interessante para controlar estes acessos: Row Level Security (RLS).

Pre-requisitos para a demo:

  1. Executar o script abaixo para criação da nossa estrutura dos relatórios
CREATE TABLE MOVIMENTACAO(
FILIAL VARCHAR(20),
FATURAMENTO DECIMAL(10,2),
MES TINYINT ) 

INSERT INTO MOVIMENTACAO (FILIAL, FATURAMENTO, MES)
VALUES
('SP',43211.00, 1),
('SP',8297.00, 2),
('SP',50.00, 3),
('RJ',99.00, 1),
('RJ',1232.00, 2),
('RJ',5.00, 3),
('BH',8432.00, 1),
('BH',1243.00, 2),
('BH',321.00, 3)

 

Power BI
Criar uma nova conexão com sua base de dados, no meu caso em um Azure SQL Server, e fazer uma direct query que selecione todos os dados da tabela dbo.MOVIMENTACAO.

1 Select

Agora vamos criar alguns gráficos para representar nossos dados.

11.png

Agora vá até a aba de modelagem. Vamos usar os componentes da sessão de segurança.
A partir daqui faremos todas as configurações de permissionamento de vizualização dos dados do report.

2.5

Vamos criar duas regras: EstadoSP e EstadoRJ. Elas serão responsáveis, respectivamente, por dar acesso de visualização das informações destes estados aos usuários que estiverem dentro do grupo.

3 Config Roles

O PowerBI permite que o filtro seja feito através de uma expressão DAX. O que nos da muita liberdade pra criar regras complexas.

No nosso exemplo acima, estamos criando duas regras no meu dataset ‘query1’ e explicitando que no campo “FILIAL” somente os registros que contenham o valor “RJ” devem ser retornados.
Simples assim…

Testando o permissionamento

O próprio Power BI desktop permite que façamos testes com uma role de segurança específica.
Para isso vá até a modelagem >  componentes da sessão de segurança > View as Roles

4

Selecione uma das roles. (no nosso caso RJ)

rj.png

 

Vinculando os usuários com seus reports de direito

O próximo passo será adicionarmos os usuários que tem direito cada tipo de registro. Para isso precisamos publicar o relatório.

Uma vez publicado, acesse o portal e vá no menu de segurança do dataset desejado

6 onde atualizar

Agora basta adicionar os usuários em seus devidos grupos.

7

 

as simple as that.

Por hoje é isso.
[]’s

Piroto


[Azure] Certificação 70-533 – Impressões

Fala Povo,

Jogo rápido, nos últimos 2 meses estive me preparando para realizar a prova de certificação 70-533 – Implementing Microsoft Azure Solutions; No último dia 10/10 fiz a prova e consegui ser aprovado.

22308975_1206529462781517_4734504700106686741_n

Como organizei meus estudos:

  1. Livro Azure Fundamentals 
  2. Pluralsight: Azure Resource Manager Deep Dive 
  3. Pluralsight: Implementing Microsoft Azure Infrastructure Solution (70-533) [7 cursos]
  4. Outras atividades: http://www.jonathanmedd.net/2017/03/preparing-for-70-533-implementing-microsoft-azure-infrastructure-solutions.html 

Como foi a MINHA prova:

  • muita coisa de Powershell/app service/Azure SQL/Backup-Restore
  • pouca coisa sobre VPN/AD/Monitoração
  • Tamanho das máquinas e suas capacidades 😦

Próximos passos:

Até dezembro estou focado em tirar a AWS Certified Solutions Architect. Para isso estou estudando com  essa plataforma.

Por hora é isso.

Abs.

Piroto

[Azure] Máquinas Virtuais

Fala Galera,

Continuando nossa série de artigos sobre Cloud Computing e Microsoft Azure, hoje vamos ver um pouco sobre as máquinas virtuais que podemos criar no Azure.

Um dos serviços mais básicos que um vendor de  cloud computing pode disponibilizar para seus clientes é o de  criação de máquinas virtuais.

Atualmente o Azure tem suporte para vários sistemas operacionais, por exemplo:

capturar

Se você preferir, e além da apenas a máquina virtual “crua”, você também quiser que um software específico venha instalado, há a opção de utilizar imagens pré-existentes de sistemas operacionais com uma solução já prontos para serem usados..
Discutimos um pouco do licenciamento desde modelo aqui.

capturar

Basicamente uma maquina virtual na Azure é composta por três recursos:

  • Recursos Computacionais
  • Storage
  • Network

Existem vários tipo tamanhos para as máquinas virtuais na Azure. Dependendo da quantidade disponível de um recuso eles são enquadrados em uma “série” específica. exemplos:
Série A – Máquinas básicas
Série D
Série DS: 16+ cores | 112+ GB RAM | 224+ SSD | 512MB/s Largura de Banda
Série G
Série GS: 16+ cores | 448+ GB RAM | 896+ SSD | 2GB/s Largura de Banda

Os tamanhos são muitos e sempre adicionam novas séries. Eu gosto de olhar sempre aqui para me atualizar.

E, para que tenhamos sucesso na hora de dimensionar a máquina que precisaremos contratar antes de fazer uma migração pra núvem,  a Microsoft nos disponibiliza o calculador de DTU: http://dtucalculator.azurewebsites.net/
E se você não tiver um ambiente on-premise para coletar essas informações? Bem, aí você pode usar uma das mais importantes (e legais) características de máquinas na nuvem: Resizing. (a.k.a: tentativa e ajuste)

Modos de Deploy

Quando criamos uma máquina no Azure, precisamos que ela seja  implantada com base em um modelo de deploy; Atualmente existem dois tipos:

  • Classic
  • Azure Resource Manager (ARM)

De modo geral o que muda de um para o outro é a forma como se controla os recursos computacionais da máquina; No modelo clássico estes recursos são gerenciados individualmente e no ARM eles podem ser gerenciados em grupo em grupos de recursos.

obs: Atualmente não há um modo de converter uma VM criada no modelo clássico para o ARM. 😦

Modos de Licenciamento

Quando vamos migrar um sistema existente ou novo para a nuvem, precisamos levar em conta os modelos de licenciamento das tecnologias que vamos fazer uso.
No caso de máquinas virtuais, se você optar pola instalação default de um S.O um preço será pago.

  • Por tempo de utilização (SO + RDBMS): Uma VM é criada já com uma imagem do SO e do SQL Server (versões disponíveis). Neste modelo a licença do Windows e do SQL Server já estão embutidas no preço.
  • Por tempo de utilização (SO) + Licença Existente: Uma VM do Windows é criada e a instalação é de responsabilidade do administrador da máquina; Esta abordagem possui significativas vantagens, já que há mais flexibilidade com relação a qual versão do Windows e do SQL Server usar.

 

Conclusão

Máquinas virtuais no Azure são bem parecidas com o modelo já existente na maioria das empresas.
O grande desafio, a meu ver,  está na hora de dimensionar corretamente a máquina, permitindo assim que seu cliente ou empregador economize $.

 

Por agora é isso galera.
[]’s

Piroto

[Cloud] Microsoft Azure

Fala Galera,

Continuando nossa série de artigos sobre Cloud Computing, hoje não vou abordar um assunto comum ao tema Cloud. Focarei especificamente na solução para computação em nuvem da Microsoft: O Microsoft Azure.

O que é o Microsoft Azure?

“O Microsoft Azure é uma plataforma destinada à execução de aplicativos e serviços, baseada nos conceitos da computação em nuvem

Wikipédia

 

Na verdade ele vai bem além de simplesmente isso. O Azure tem uma grande quantidade de pequenos serviços, que ele disponibiliza para atender as necessidades de seus clientes.
Quer trabalhar com Hadoop? Azure tem HD Insights
Que tal criar um web-site? Use o Azure Web Application
Iot? Machine Learning? Armazenar dados de maneira não estruturada? uma solução para TUDO ISSO  e muito mais pode ser encontrado no Azure.

No key note do Build 2016, um dos eventos mais importantes da comunidade Microsoft, alguns números foram informados pelo Scott Guthrie, vice presidente da divisão de cloud computing da MS (twitter), são bem animadores.

Azure Momentum

 

e também mostrou que mais de 85% das 500 maiores empresas, listadas pela Forbes Magazine, utiliza o Microsoft Azure.

Azure Customers

Sem dúvidas a ida para ambientes em nuvem, híbridos ou não, é uma tendência irreversível. Cabe a nós, profissionais de T.I nos atualizarmos e saber como utilizar mais essa nova ferramenta no nosso arsenal.

Por hora é isso!

[]’s
Piroto

 

Referências

Microsoft Azure Essentials Migrating SQL Server Data bases

Build 2016 Key Note –

 

 

 

Alex Souza

"Aprendendo a Aprender e Aprendendo a Ensinar (inclusive Máquinas)!"

Blog - Thiago Carlos de Alencar

Aprendendo SQL Server !

SQL Authority with Pinal Dave

SQL Server Performance Tuning Expert

Vitor Fava

SELECT (CrazyIdeas*2), (InsaneIdeas*100), MyExperience FROM MyBigHead WHERE InsaneLevel > 1000

Think Think SQL

DBCC DumpMemory 'TECH','ALL'

Gustavo Maia Aguiar

Artigos, dicas e algumas reflexões sobre o SQL Server

Kimberly L. Tripp

DBCC DumpMemory 'TECH','ALL'

Thiago Zavaschi R2

www.zavaschi.com

Blog do Luti

DBCC DumpMemory 'TECH','ALL'

Luan.Moreno a.k.a [SQL.Soul]

Lead Database Consultant at Pythian

Blog do Leka

let's make things better