Olá galera o/

Vamos a mais uma postagem sobre o Azure Data Factory, se você não conhece o Azure Data Factory (ADF) abaixo segue três posts que fiz sobre o mesmo, os posts estão bem legais e detalhados.

  • Conhecendo o Azure Data Factory >> LINK <<
  • Azure Data Factory: Criando seu primeiro pipeline de dados >> LINK <<
  • Azure Data Factory: Criando datasets genéricos >> LINK <<

Vamos continuar a nossa serie de postagens sobre as Triggers do ADF, hoje vamos criar uma trigger do tipo Storage Events no ADF para executar o processo do nosso pipeline de dados quando ocorre um evento no Storage (blob storage ou data lake). Utilizaremos os pipeline criado na postagem sobre os datasets genéricos para exemplificar. Já realizamos a criação de uma trigger do tipo Schedule a postagem está abaixo.

  • Azure Data Factory: Criando triggers do tipo Schedule>> LINK <<

Primeiro vamos entender o que é uma trigger no ADF e quais tipos posso criar.

As triggers determinam quando a execução do pipeline será acionada com base no tipo de trigger e critérios definidos. Existem 4 tipos de trigger no ADF, cada tipo tem uma característica especifica, vamos entender cada tipo:

  • Schedule
    • Neste tipo é possível executar um ou mais pipelines com um cronograma definido. Você tem controle total de como quer agendar a execução do pipeline. Podendo escolher data de inicio e fim, time zone, recorrência (minutos, horas, dia, semanas e meses). Você pode vincular esta trigger a múltiplos pipelines.
  • Tumbling Window (Teremos um post sobre este tipo de trigger isso em breve)
    • Neste tipo é possível executar um único pipeline em um intervalo de tempo especificado.
  • Storage Events
    • Neste tipo é possível executar os pipelines quando um determinado evento relacionado a blob storage ou data lake ocorre. Os eventos que dispararão a trigger são criação, exclusão, ou criação e exclusão de um arquivo de blob storage ou data lake.
  • Custom events (Preview) (Teremos um post sobre este tipo de trigger isso em breve)
    • Segue o mesmo conceito do tipo Storage Events.

  • Cenário
    • Criar uma trigger do tipo Storage Eventos no ADF que vai executar o processo do pipeline genérico ao colocarmos o arquivo CSV de Pessoas no Blob Storage. O Objetivo é criar e popular a tabela Pessoas no Azure SQL Database toda vez que o arquivo de pessoas for inserido no blob.
  • Passo a Passo a ser executado.
    1. Consultar a tabela Pessoas no Azure SQL Database.
    2. Apagar o arquivo Pessoas.csv
    3. Ativar o Resource Provider EventGrid.
    4. Criar uma trigger para executar o pipeline pipeline_teste_generico após inserir o arquivo no blob.
    5. Consulta a execução da Trigger.
    6. Consultar os dados na tabela Pessoas.
    7. Desabilitar a trigger.

Consultando a tabela Pessoas no Azure SQL Database

1 – Acessar seu banco de dados no Azure SQL Database

1.1 – Clicar em Tables. Verifiquem que a tabela Pessoas não existe ainda.

Apagar arquivo pessoas do Blob Storage

1 – Primeiro devemos acessar o Storage Account, selecionar o container em questão e seguir os seguintes passos:

1.1 – Selecionar o arquivo pessoas.csv.
1.2 – Clicar na opção Delete. Uma tela de aviso será exibida
1.3 – Marcar a opção Also delete blob snapshots
1.4 – Clicar no botão OK.

2 – O arquivo é excluído do container e uma notificação será exibida informando que a exclusão foi realizada com sucesso.

Ativando o Microsoft.EventGrid na Subscription

Para que a Trigger Storage Events funcione, é necessário a ativação do Resource Provider EventGrid.

Funções internas do Azure: O controle de acesso baseado em função do Azure (RBAC do Azure) tem várias funções internas do Azure que você pode atribuir a usuários, grupos, entidades de serviço e identidades gerenciadas. Atribuições de função são a maneira de controlar o acesso aos recursos do Azure. Se as funções internas não atenderem às necessidades específicas de sua organização, você poderá criar funções personalizadas do Azure próprias. Mais informações sobre estas funções internas através deste >> LINK <<

Ações do Microsoft.EventGrid: https://docs.microsoft.com/pt-br/azure/role-based-access-control/resource-provider-operations#microsofteventgrid

1 – Acessamos a home do nosso portal azure.

1.1 – No campo de pesquisa, vamos buscar por subscription.
1.2 – Assim que o serviço for exibido, selecione o mesmo. Você será direcionado para a tela de subscriptions do azure.

2 – Na tela de subscriptions, selecione a sua subscripton que você esta utilizado para criar os recursos do azure. Para o exemplo estarei utilizando a minha subscription do MSDN, que é a subscription que utilizo para criar meus recursos do Azure.

3 – Na tela da subscription selecionada, vamos realizar os seguintes passos:

3.1 – Ir para a Seção Settings (configurações).
3.2 – Selecionar a opção Resource Providers.
3.3 – No campo de busca vamos digitar a palavra event. Os providers com o event no nome serão exibidos.
3.4 – Vamos selecionar o provider com nome Microsoft.EventGrid. Ele ficará em negrito.
3.5 – Clicar em Registre para registrar esse provider.

4 – Aguardar o processo de registro finalizar. Ao finalizar, o status do provider será Registered (registrado).

Criando Trigger Storage Events

1 – Com o ADF aberto vamos clicar no nosso pipeline_teste_generico e realizar algumas alterações. Clicar em cima do componente de Copy Data e realizar os seguintes passos:

1.1 – Clicar na aba Source.
1.2 – Mudar o arquivo do fileName de cidades.csv para pessoas.csv. Lembrando que, estamos utilizando o post do pipeline generico como modelo para as demais postagens, se você ainda não viu esta postagem segue o >> LINK <<
1.3 – Clicar na aba Sink.

2 – Continuando a configuração:

2.1 – Selecionar a aba Sink (destino dos dados).
2.2 – Mudar o tableName de Cidades para Pessoas.
2.3 – Deixar a flag auto create table selecionada. Isso permitirá que o ADF crie a estrutura da tabela em questão.
2.4 – Clicar no nome Trigger.

3 – Continuando a configuração:

3.1 – Ao clicar no nome Trigger, duas opções serão exibidas exibidas.
3.2 – Selecionar a opção New/Edit. A tela para adicionar uma trigger será exibida.

4 – Com a tela de Add Triggers exibida a esquerda:

4.1 – Clique em Choose trigger…
4.2 – Selecione a opção + New.
4.3 – Percebam que, a trigger do tipo schedule criada no post anterior é listada.

5 – A tela New Trigger é exibida para ser configurada, informaremos os seguintes parâmetros:

5.1 – Name: Informei o nome trigger_storage_events.
5.2 – Type: escolher o tipo Storage Events.
Account selection method: Selecionar From Azure Subscription.
5.3 – Azure Subscription: Selecionar sua subscription do Azure.
5.4 – Storage account name: Selecionar o nome do seu Storage Account ou Data Lake.
5.5 – Container name: Selecionar o nome do container.
5.6 – Blob path begin with: Selecionar com que nome o arquivo inicia. Para este caso, queremos os arquivos que contém o nome Pessoas no início.
5.7 – Blob path ends with: Selecionar com que nome ou extensão o arquivo termina. Para este caso, queremos os arquivos que tem a extensão csv no final da palavra.
5.8 – Event: Aqui devemos definir que tipo de evento ira realizar a chamada da trigger. Selecionei apenas blob Created, ou seja, quando um arquivo for adicionar ou sobrescrito no blob a trigger será executada.
5.9 – Ignore empty blobs: Aqui escolhemos se desejamos ignorar blobs vazios. Selecionei a opção Yes.
5.10 – Activated: Selecionamos Yes.

Clicamos em Continue ao realizar toda a configuração.

6 – A tela de Data preview é exibida. Nesta tela será verificado se já existe algum arquivo no container do blob storage que começa com o nome Pessoas e termina com a extensão CSV.

6.1 – Clicamos no botão Continue. A tela New trigger exibida
6.2 – Clicar no botão OK para finalizar o processo.

7 – Retornaremos a tela do pipeline.

7.1 – Clicar em Publish All. A tela de Publish all será exibida.
7.2 – Iremos publicar as alterações no pipeline e a criação da Trigger Storage Events. Clicamos em Publish.

8 – Aguardamos o processo de publicação ser realizado.

8.1 – Clicamos no ícone do sino (notificações). Uma notificação será exibida informando que a publicação foi realizada com sucesso.
8.2 – Clicamos no botão Close para fechar a notificação.

Monitorando e Testando a Trigger no ADF

1 – Para verificar a trigger recém criada funcionando, realizamos o seguinte passo a passo:

1.1 – Clicamos na opção Manage (desenho da maqueta).
1.2 – Na seção Author selecionamos a opção Triggers (desenho de um raio). Será exibida a tela de triggers criadas.
1.3 – Podemos verificar a trigger, seu tipo, seu status e a quantos pipelines a mesma esta relacionada. A trigger storage events está criada e com status ativa.

2 – Para Testar a mesma, vamos voltar ao Container do Blob Storage e executar os seguintes processos:

2.1 – Clicar em Upload. A tela de realizar o upload de um arquivo será exibida no lado esquerdo.
2.2 – Clicar no desenho da pasta, selecionar o arquivo pessoas.csv que está em em sua máquina local.
2.3 – Clicar em Upload.
2.4 – O novo arquivo foi adicionado a lista de arquivos do seu container. Esta ação deverá disparar a trigger storage events e executar o pipeline genérico. O pipeline realizará a leitura do arquivo pessoas.csv, criará a tabela Pessoas no Azure SQL Database e irá realizar a inserção dos registros do arquivo na tabela.

3 – Estrutura do Arquivo pessoas.csv.

cod_pessoa;nome_pessoa;dt_nasc
1;Joanna;2000-05-12
2;Fernanda;1992-08-18
3;Mirella;1990-10-25
4;Mari;1996-04-09
5;Tatiane;2001-12-12

4 – Agora vamos verificar se a trigger de fato funcionou:

4.1 – Clicar em Monitor (desenho de um velocímetro).
4.2 – Na seção Runs, clicar em Pipeline Runs.
4.3 – Os pipelines que executaram nas ultimas 24 horas serão exibidos. Nosso pipeline_teste_generico foi executado. Percebam que a coluna Triggered By está fazendo referencia a trigger que criamos anteriormente.
4.4 – Na seção Runs, clicar em Trigger Runs.
4.5 – Serão exibidas todas as trigger que foram executadas nas ultimas 24 horas. A trigger trigger_storage_events foi executada com sucesso conforme esperado.

5 – Com o SQL Server Management Studio aberto e conectado ao Azure SQL Database vamos validar se os dados realmente foram inseridos conforme esperado.

5.1 – Percebam que a tabela Pessoas agora existe no nossa database azuresql.
5.2 – Para ter certeza, realizei um SELECT na tabela Pessoas para verificar os registros.

Com isso comprovamos que nossa trigger funcionou corretamente.

Desabilitando a Trigger

1 – Para que a trigger seja desativada, é necessário realizar o processo de publicação das alterações do ADF.

1.1 – Clicamos na opção Manage (desenho da maqueta).
1.2 – Na seção Author selecionamos a opção Triggers (desenho de um raio). Será exibida a tela de triggers criadas.
1.3 – Clicar na palavra Deactivate (desenho do pause) para desativar a trigger storage events. Verificar se o status da trigger mudou para Stopped após clicar em Deactivate.

2 – Para que a trigger seja desativada, é necessário realizar o processo de publicação das alterações do ADF.

2.1 – Verificar se o status da trigger esta Stopped.
2.2 – Clicar em Publish all.
2.2 – Será exibida uma tela ao lado com os componentes que foram criados, alterados ou excluídos no ADF. Estes componentes devem ser publicados clicando no botão Publish. O processo de publicação será iniciado.

3 – Aguardamos o processo de publicação ser realizado.

3.1 – Clicamos no ícone do sino (notificações). A publicação foi realizada com sucesso.
3.2 – Clicamos no botão Close para fechar a notificação.

Com este processo, a trigger foi desabilitada e não será disparada quando um arquivo for inserido no blob.

Atenção: Se você esta com uma conta gratuita, pay-as-you-go ou de estudante, não esquecer de apagar os recursos criados nesta postagem. Para contas de estudante e gratuita a exclusão dos recursos evita o consumo dos créditos disponíveis, além disso, evita que aconteça cobrança indevida em sua subscription (assinatura). Para a conta pay-as-you-go é cobrado do cartão de crédito conforme o uso dos serviços, então, recomendo apagar para não gerar cobrança no seu cartão de crédito. Lembrar que o Azure SQL Database fica sempre ativo, então, sua cobrança acontecerá se não for deletado posteriormente.

Espero que tenham gostado desta postagem, vou fazer mais postagens técnicas sobre data factory. Aguardem que 2021 vai ter muito conteúdo legal no blog.

Desejo a todos uma boa leitura, boa prática e bons estudos.

Para quem quer estudar:

  • Para a Certificação Microsoft MTA Database Fundamentals | Banco de Dados Relacional e Linguagem T-SQL.
    • Segue o link do curso na Udemy. >> LINK <<
  • Sobre Bancos da Dados no Azure
    • Segue o link do curso na Udemy. >> LINK <<

Não se esqueçam de avaliar esta postagem através da ESTRELAS abaixo das redes sociais, isso vai me ajudar muito a melhorar as postagens.

Quem quiser mandar comentários, sugestões, criticas e complementos, fiquem a vontade, pois feedbacks positivos ou negativos engradecem meu conhecimento para que possa melhorar as postagem para vocês.

Até a próxima o/

Acessem nossas Redes Sociais: