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 <<

Hoje vamos criar uma trigger do tipo schedule no Azure Data Factory para executar automaticamente os processos do nosso pipeline de dados. Utilizaremos os pipeline criado na postagem sobre os datasets genéricos para exemplificar a utilidade das triggers.

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 (Teremos um post sobre este tipo de trigger isso em breve)
    • 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 schedule no ADF, no time zone de Brasília (-03:00) e recorrência de 2 minutos. O objetivo é popular a tabela Cidades.
  • Passo a Passo a ser executado.
    1. Consultar a tabela cidades no Azure SQL Database
    2. Executar um TRUNCATE TABLE na tabela cidades
    3. Criar uma trigger para executar o pipeline pipeline_teste_generico de 2 em 2 minutos
    4. Consultar a execução da trigger
    5. Consultar os dados na tabela Cidades

Truncando os dados da tabela Cidades

1 – Acessar seu banco de dados no Azure SQL Database
1.1 – Consultar os dados da tabela Cidades
1.2 – Truncar os dados da tabela cidade

SELECT * 
FROM [DBO].[CIDADES]
TRUNCATE TABLE [DBO].[CIDADES]

SELECT * 
FROM [DBO].[CIDADES]

Criando a Trigger Schedule no ADF

1 – Com o pipeline do ADF aberto, clicar na opção Add Trigger (desenho do raio) e selecionar New/Edit.

2 – A tela Add triggers será exibida ao lado, você deve clicar no textbox com o nome “Choose Trigger…”, nesta opção você pode selecionar uma trigger já existente ou criar uma nova. Para este exemplo vamos clicar em New para criar uma nova trigger.

3 – A tela New trigger será exibida ao lado, nesta tela estarão todas as opções para configurar sua trigger. Vamos entender as opções e como devemos configura-las.
3.1 – Informar o nome da trigger. Este campo é obrigatório.
3.2 – Você pode colocar uma descrição do que esta trigger esta fazendo.

4 – Na opção Type vamos selecionar o tipo da trigger.
4.1 – Clicamos na setinha para selecionar o tipo que desejamos.
4.2 – Com todas as opções disponíveis, selecionamos o tipo Schedule.
Obs.: Os demais tipos vamos ver em outras postagens.

5 – Na opção Start date vamos selecionar em que data e horário esta trigger será iniciada.
5.1 – Clicamos na data. O calendário será exibido.
5.2 – Selecionamos a data que desejamos. Para o exemplo dia 12 de Março de 2021.
5.3 – Selecionamos a hora de inicio da trigger. Para o exemplo selecionamos 19:20.
5.4 – Clicamos em OK.

6 – Na opção Time zone vamos selecionar em que fuso horário a trigger será executada.
6.1 – Clicamos em cima do fuso horário default (padrão). Uma lista de fusos será exibida.
6.2 – Devemos selecionar qual fuso horário do seu país. Você tem a opção de digitar também. Para o exemplo escolhi o fuso horário de Brasília(Brasil) que é o -03:00.

7 – Na opção Recurrence vamos selecionar a recorrência de execução da nossa trigger.
7.1 – No textbox every (a cada) vamos colocar o valor 2. O valor default é 15.
7.2 – Ao lado do textbox every existe um outro textbox com a recorrência, selecionamos a seta para baixo para listar as opções.
7.3 – Temos as opções: minutos, horas, dias, semanas e meses. Selecionamos a opção minutos. O valor default é minutos.
Obs.: A opção Specify an end date (especificar uma data de fim) indica uma data fim para que a trigger pare de ser executada. Não iremos selecionar a mesma.

8 – Abaixo segue a trigger após configuração.
8.1 – Name: trigger_schedule.
8.2 – Type: Schedule.
8.3 – Start Date: 12/03/2021 as 19:20 (7:20 PM).
8.4 – Time zone: Brasilia (UTC -3).
8.5 – Recurrence: 2 minutes , ou seja, a cada 2 minutos.
8.6 – Actived: Yes.
8.7 – Clicamos em OK.

9 – Após finalizar a configuração, será verificado se a trigger possui algum parâmetro para ser executada. Para este exemplo não temos parâmetro. Percebam que uma mensagem é exibida acima do botão OK, esta mensagem indica que, para a trigger ser ativada é necessário realizar a publicação das alterações feitas.
9.1 – Clicamos em OK.

10 – Agora para ativar a trigger vamos realizar a publicação de todas as configurações feitas.
10.1 – Clicamos no botão Publish all.
10.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.
10.3 – Verificamos o ícone de notificações, para vermos se a publicação foi finalizada com sucesso.
10.4 – Clicamos em Close.

Monitorando a Trigger no ADF

1 – Para verificar a trigger criada 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.

2 – Para verificarmos se a trigger esta sendo executada realizamos o seguinte passo a passo:
2.1 – Clicamos na opção Monitor (desenho de um velocímetro).
2.2 – Na seção Runs, selecionamos Trigger runs. Será exibida a lista de triggers executadas pelo ADF.
2.3 – Podemos verificar qual trigger foi executada, seu tipo, se a execução foi com sucesso ou falha, a hora de execução e etc. Observem que a mesma executou no horário determinado.
Obs.: Como o ADF foi criado em outra região diferente do Brasil o horário exibido é o da UTC (0).

3 – Após a execução da Trigger do ADF, vamos analisar a tabela do banco de dados. Vejam que os dados na tabela foram inseridos automaticamente sem precisar executar o pipeline no ADF pelo modo debug ou trigger now.

4 – Percebam que, após 2 minutos a trigger executou novamente conforme havíamos configurado anteriormente. Esta trigger ficará executando de 2 em 2 minutos realizando a execução do pipeline_teste_generico que carrega as informações de um CSV para uma tabela do Azure SQL Database.

5 – Vamos analisar a tabela do banco de dados, após a nova execução da trigger. Percebam que, novos registros foram inseridos na tabela, ou seja, os selecionados na cor vermelha são da primeira execução e os selecionados na cor azul são os da segunda execução.

Desativando a Trigger no ADF

1 – Para realizar o processo de desativação de uma trigger, vamos seguir os seguintes passos:
1.1 – Clicar em Manage.
1.2 – Na seção Author selecionamos a opção Triggers (desenho de um raio). Será exibida a tela de triggers criadas.
1.3 – Passamos a seta do mouse em cima do nome da trigger. Percebam que, será exibido 3 ícones: “Deactivate” que permite que você possa desativar a trigger, o “Code” que exibe o código da trigger em json e o “Delete” que permite que você possa deletar a trigger em questão. Clicamos 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 após clicar em Deactivate o status da trigger mudou para Stopped.
2.2 – Clicar em Publish all.
2.3 – 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.
2.4 – Verificamos o ícone de notificações, para vermos se a publicação foi finalizada com sucesso.
2.5 – Clicamos em Close.

Com este processo a trigger foi desabilitada e não ficará mais executando a cada 2 minutos.

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: