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

[SQL Saturday 606 – Chile] Impressões Gerais

WhatsApp Image 2017-04-01 at 22.16.45

Fala Galera,

Nesse último final de semana vivi uma das experiencias mais legais da minha vida profissional. Tive a oportunidade de palestrar no meu primeiro evento internacional: SQL Saturday 606 em Santiago, Chile.
Contamos com a participação de speakers de várias partes do continente Americano
(Brasil, Uruguay, Chile, EUA, México e Argentina) e um total de 158 pessoas na audiência.

De todas as coisas que aconteceram eu resumiria em dois pontos principais:

  1. Todo meu material: PPT, demos , flyer e meu mindset estavam prontos para uma apresentação em inglês; Durante o tradicional jantar dos palestrantes, que antecede o evento, me disseram que eu conseguia me comunicar muito bem em espanhol e que eu não deveria fazer a “charla” em inglês.
    É…depois de um pouco (muito) de pânico acabei aceitando. Faltavam menos de 12 horas para minha apresentação e mudam o idioma..tá fácil. Bem, acabou que tudo se desenrolou muito bem, tive o suporte de um dos palestrantes que falava inglês-espanhol e pode me ajudar, em tempo real, se eu dissesse alguma frase sem sentido. (Thanks for that @Erwin)
  2. Poder conhecer o grande @BenjaminNevarez , autor de dois dos livros de otimização de SQL Server que uso como guia nas horas de dúvida (esse e esse). Palestrar no mesmo evento que ele foi uma experiência única.

Um agradecimento especial a: Patrício Cofre e Carlos Farias pela oportunidade  😉

Grande Abraço e que venham as próximas!

Piroto

[SSIS] Access is Denied com usuário não administrador

Fala Galera,

Mais uma dica rápida de SSIS:

Cenário: Ambiente com AD. Usuário não adm tentando acessar o Integration Services via SSMS.
Erro: Access is Denied.
By default, only administrators have access to the integration services.

Sem título.png

Motivo :”In previous versions of SQL Server, by default when you installed SQL Server all users in the Users group had access to the Integration Services service. When you install the current release of SQL Server, users do not have access to the Integration Services service. The service is secure by default. After SQL Server is installed, the administrator must grant access to the service.”

fonte: https://msdn.microsoft.com/en-us/library/hh213130(v=sql.110).aspx

Solução:

Adicionar o permissionamento necessário para o usuário

Abra o DCOMCNFG, um utilitário padrão do windows para alterar configurações do registro

Iniciar >  executar > dcomcnfg.exe

Capturar.PNG

 

Depois basta reiniciar o serviço do SSIS e testar novamente

Sem título.png

Done 🙂

[]’s

Piroto

 

SQL Saturday #606 – Santiago Chile

Pessoas,

No dia 1 de abril (não, não é pegadinha rs) farei minha primeira palestra internacional para o PASS.

Quem estiver de férias ou a trabalho no Chile nesse período, se inscreve ae 🙂

 

El capítulo Chileno de PASS, te invita a participar en el PASS SQL Saturday Santiago-Chile 2017que se llevará a cabo el 1 de Abril del 2017 en Duoc Antonio Varas.
PASS SQL Saturday es un evento de entrenamiento para profesionales que trabajan con SQL Server y para aquellos que desean aprender sobre SQL Server. Contaremos con speakers de toda Latinoamerica, Expertos de Microsoft, Expertos en SQL Server y Microsoft MVPs.

http://www.sqlsaturday.com/606/Sessions/Schedule.aspx 

No automatic alt text available.

 

[]’s

Piroto

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