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

[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


SQL Server – Performance Monitor

Nota: Este artigo é de nível iniciante e servira como referência a um artigo sobre a elaboração de um baseline que estou preparando para a segunda quinzena de março; Caso você seja um DBA/Dev com um pouco mais de experiência talvez ache este um artigo deveras simples; Essa é a intenção. 😉

 

Fala Galera,

Hoje vou falar um pouco sobre um velho companheiro de todos que, assim como eu, são entusiastas das tecnologias Microsoft e precisam descobrir algumas informações sobre o que anda rolando por debaixo do capô do Windows.

O performance monitor, ou perfmon para os íntimos, é um excelente ponto de partida para coletar informações do seu parque de máquinas. É uma ferramenta que, obviamente, tem suas limitações; mas que dá conta do recado se você souber o que procurar e como correlacionar os dados corretas.

Como encontra-lo?

Executar o perfmon é simples. Basta procurar pelo “perfmon.exe” ou acessário pelo menu Windows>Administrative Tools> Performance Monitor

Sem título

Imagem 1

 

Assim que o perfmon é aberto uma série de informações são apresentadas. A princípio o que realmente importa é que você pode ter dois tipos de visão: Tempo real (A) e coletores que vão armazenar os dados (B) por tempo indefinido, tendo como base um intervalo de tempo pré-configurado de snapshots.

Sem título

Imagem 2

Em nossa imagem acima, temos uma listagem dos coletores configurados na máquina; Um está ativo e outro parado.

Performance Couters

As coletas realizadas pelo perfmon são baseadas em contadores. Estes contadores são separados por grupos () e cada grupo tem informações de uma área de conhecimento específica.

Em geral existem dois “modos” de coleta de cada snapshot (A.K.A: momento que os dados são coletados)

  1. Acumulativos: O valor do snapshot sempre é acumulativo, para se ter uma visão melhor será necessário calcular o delta.  ex: Buffer Manager – Lazy Writer/sec
  2. Média: O valor do snapshot é uma média do valor dentro do tempo.
    ex: Physical Disk – Avg Disk Sec/ Read

Por exemplo, se quisermos obter dados sobre o gerenciador de memória do SQL Server. Basta entrar no perfmon, adicionar um novo contador, procurar pelo grupo “Memory Manager” e adicionar o contador que você quer consultar

Sem título

Imagem 3

Pode acontecer dos contadores não estarem sendo listados. Existem vários motivos para isso: Regedit – Rebuild nos perfcounters etc…

 

Criar uma coleta personalizada

Você precisa coletar as informações de memória de CPU de um servidor X por que amanhã será realizado um teste de performance, que sensibilizará seu SQL Server, e é desejo do time de arquitetura saber se a capacidade está sub-dimensionada ou não.
Criaremos um coletor que será executado a cada 1 minuto, gravará os dados em BLG em C:\Perflogs\

  1. Abra o perfmon
  2. Acesse o menu de coletas definidas pelo usuário e adicione uma nova coleta.Sem título
  3. Adicione o nome e selecione a opção de criação manual
  4. Crie logs baseados em contadores de desempenho (performance counters)Sem título
  5. Configure o intervalo de coleta desejado
  6. clique em adicionar para que possamos cadastrar os contadores a serem coletados.
    Na nova janela, você notará algumas listagens

    • Rosa: Computador que será alvo das coletas. O perfmon permite que as coletas sejam feitas de maneira remota; basta ter as permissões necessárias;
    • Azul: Performance Counters. Como queremos procurar sobre CPU e Memória, temos que achar o grupo de contadores que agrupe estas informações. Na imagem abaixo estamos coletando a % de uso de CPU do Core 1 da minha máquina.
    • Preto: São as instâncias passiveis de se obter informações de um dado contador. Esta listagem nem sempre é mostrada, depende de qual contador você deseja coletar.
    • Verde: Lista de contadores que fazem parte do seu Coletor de dados. Na imagem nós só adicionamos um: Coleta de CPU
  7. Sem título.png
  8. Após selecionar todos os contadores desejados; de um OK. Avance. Defina um diretório de output.
  9. Seu contador será listado na janela da direita da listagem de contadores do usuário. Agora precisamos inicia-lo.Sem título
  10. Feito isso um “play” verde será apresentado ao lado do nome do contador.
  11. Basta entrar nas opções do contador, se você desejar alterar algumas das suas propriedades, tais como:
    • Formato do output (CSV, Separado por virgula,  separado por tab, BLOB)
    • Diretório do Output
    • Condição de parada

Sem título

12. Confira se o arquivo foi criado no diretório de destino e pronto.

Sem título

 

Tenha em mente que o perfmon possui uma gama gigante de contadores e cabe ao profissional que irá fazer realizar o troubleshooting, análise de performance ou construção de um baseline, saber quais os contadores são os mais relevantes para que as correlações corretas possam ser realizadas.
Existe um guia dos valores indicados para cada contados. Alguns do SQL Server podem ser encontrados aqui. Lembrando que eles são guidelines, e não regras.
O perfmon, além de ser um excelente ferramenta para uma análise mais detalhada do seu servidor, ainda permite correlacionar informações obtidas pelo quase falecido, mas ainda muito usado, SQL Profiler; (assunto para outro post  :v)

 

Abraços.

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