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

[Cloud] Modelos de Cloud

Fala Galera,

Continuando a nossa série sobre Cloud Computing (posts anteriores), vamos discutir um pouco sobre os três modelos de computação em nuvem existentes. Entender estes modelos te ajudará a planear qual utilizar em cada estágio do cliclo de vida da sua organização.

Cloud Pública: O provedor do serviço é responsável por fornecer toda a infra-estrutura, que é compartilhada com outros usuários, e disponibiliza-la para acesso via internet. Este modelo é ideal para pequenas empresas que precisam direcionar seus recursos financeiros para a evolução do core do negócio e não em infra-estrutura de TI.

Cloud Privada: Toda a infra-estrutura é compartilhada por uma única empresa ou grupo específico. Ideal para empresas de médio/grande porte que possuem alto volume de dados sigilosos sendo armazenados e trafegados; Geralmente é utilizado por coportações que sofrem regulamentações específicas. É o modelo mais caro dos três.

Cloud Híbrida: Este modelo é o mais comumente utilizado pelo mundo corporativo, onde um híbrido entre máquinas on-premise e máquinas/serviços em nuvem é criado. Pode ser implementado para extender as capacidades computacionais do ambiente local ou para criar um site de DR (disaster recovery), por exemplo .

E aí? Qual a que mais se encaixa no seu cenário? Deixe nos comentários 🙂

[]’s

Piroto

[Cloud] Siglas, siglas em todo lugar

Fala Galera,

Para aqueles que são novatos no fantástico mundo de cloud computing, com certeza já se depararam com uma sopa de letrinhas gigantesca e que, no inicio, torna a aprendizagem um pouco massante. (PaaS, SaaS, IaaS, STaaS, MaaS, CaaS, BCaaS) wooow!

O intuito deste primeiro post é: Definir algumas terminologias básicas quando falamos de cloud computing.

Mas, antes de tudo, o que é o tal do “Cloud Computing” ?
Quando falamos em Cloud Computing (ou só “Cloud”), estamos nos referindo a possibilidade de retirar um software ou um componente arquitetural de uma solução (ou toda ela) de um ambiente on-premise, coloca-lo na internet e fazer o pagamento conforme o uso.
A vantagem disso? O custo de manter um ambiente on-premise é bem alto: Eletricidade, refrigeração, hardware, pessoas etc; Pense em uma pequena empresa, onde TI não é o core. Vale a pena para ele fazer todos estes investimentos?
Se  eu tivesse que definir em 3 palavras eu diria: Economia, Escalabilidade e Alta Disponibilidade (quatro palavras 😦   )

Você pode estar se perguntando:
-“Piroto, minha empresa faz esse tipo de “virtualização”. Cloud é só um nome bonitinho para algo que está no mundo de TI a muito tempo?”
Não exatamente. Virtualização é um dos componentes que fazem parte do Cloud Computing mas está bem longe de ser o todo.
O que está mais próximo à virtualização clássica que conhecemos é o IaaS (definição a seguir).

 

Alphabet Soup

Os primeiros acrônimos  que escutamos quando entramos no mundo de cloud são: Saas, PaaS e IaaS. Cada um deles tem suas vantagens e desvantagens, tudo depende da natureza e estratégia do seu negócio.

IaaS – Infrastructure as a Service
Permite a um usuário criar maquinas virtuais, baseadas em uma lista de pré-existentes imagens,  conforme sua necessidade; Neste caso toda a administração, instalação de softwares, atualizações, é executada pelo cliente final.

PaaS – Plataform as a Service
Não há acesso direto a uma máquina virtual, mas sim a uma plataforma.
Por exemplo: Azure SQL e Azure Web Sites. Um desenvolvedor acessaria uma URL de um serviço na nuvem e, a partir daí, conseguiria publicar conteúdo ou criar sua base de dados e tabelas; Não precisando se importar com atualizações de versão, instalação de softwares adicionais ou qualquer outro tipo de administração que um ambiente demandaria; Basta consumir o serviço. O resultado é que o  desenvolvedor pode focar no que ele realmente está ali para fazer: Desenvolver.

SaaS – Software as a Service
O SaaS em nosso dia-a-dia e muitas vezes nem notamos. Ele tem a característica de disponibilizar um serviço e, toda a estrutura por trás do serviço é gerida pelo seu fornecedor; Você não precisa instalar um programa na sua máquina local, você pode acessa-lo por um browser ou um thin client. Exemplo? Onedrive, Onenote, Xbox Live, Outlook.com
A imagem 1 exemplifica bem as fronteiras que cada categoria de serviço segue.

az

Imagem 1 (azure.microsoft.com)

Além destas três principais siglas posso citar, por exemplo:

  • STaaS: Storage as a Service
  • MaaS: Monitoring as a Service
  • SECaaS: Security as a Service
  • DRaaS: Disaster Recovery as a Service
  • e muitos outros

No momento não vamos focar nestes serviços. Com o tempo vamos ver cada um deles =)

Por hora é isso galerinha.

[]’s

Piroto

[Cloud] How to and Tips

Fala Galera,
Tudo bem com vocês?

Estou iniciando hoje uma série de posts sobre nosso querido SQL Azure. Comecei a me envolver com várias demandas de SQL Server em nuvem (paas) tanto em Azure e no Amazon RDS, contudo darei mais foco ao primeiro. A ideia da série de posts veio seguindo alguns pedidos e visando repetir o sucesso que os tutoriais de Integration Services fizeram. Não viu? Click aqui.

Espero que vocês gostem!

ah, feedbacks são bem vindos 🙂

Abraços.

 

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