Fala galera, tudo na tranquilidade ? Espero que sim!
Hoje vou falar com vocês sobre recurso disponível na Azure para automação de processos dentro do SQL Database.
O Azure SQL Database é um serviço PaaS de banco de dados transacional disponível na Azure sendo sua Engine o SQL Server, entretanto, este serviço não possui todos os recursos disponíveis sendo alguns deles: CLR, queries com join entre databases, Database Mail, Partições distribuidas, DTC, Linked Server, SQL Jobs, entre várias outras. Por mais que o serviço SQL Database tenha uma series de limitações, o mesmo tem outras vantagens tais como redução no custo operacional para gerenciamento, monitoramento integrado com Azure Monitor de forma nativa, Features de Auto-tuning, Azure Data Sync (feature muito legal essa, farei um outro post sobre), Query performance Insights, Auditing, classificação de dados e muito mais.
Neste post vamos focar em uma solução para suprir a ausência de SQL Agent no SQL Database até porque a maioria dos DBAs pensa em implementar rotinas de atualização de estatísticas, rebuild/reorganize de índice entre varias outras automações necessárias dependendo do comportamento e criticidade de cada ambiente. Na Azure temos algumas opções para automatizar estas execuções, Function App, Data Factory, Automation Account e Elastic Job Agent. Hoje focaremos na opção Elastic Job Agent.

O Elastic Job Agent tem como seu maior objetivo automatizar execuções T-SQL em seu ambiente SQL Database a qual a implementação não é muito complexa e ainda possui uma função que pra mim tem grande valor que seria execução de scripts em vários SQL Databases na mesma configuração, mesmo estando em diferentes Servidores lógicos.
Para entendimento do Elastic Job Agent, é necessário que você entenda sua estrutura de componentes:
- Elastic Job Agent – Serviço responsável pelas execuções de jobs de acordo com cada configuração de agendamento e scripts.
- Job SQL Database – Banco de dados para armazenar dados de gerenciamento do Elastic Job Agent
- Target Group – Grupo a qual os jobs serão executados, podendo ter membros de diferentes configurações
- Target Group Member: Membros de um grupo a qual o jobs serão executados, podendo ser todos os bancos de um Servidor, Banco Específico em um Servidor, Bancos de um Elastic pool e também podendo ser todos os bancos exceto bancos específicos.
- Job – Configuração do job e qual o critério de agendamento
- Job Steps – Configurações do comando a ser executado, podendo ter vários steps para o mesmo job.
- Database Credential – Credencial para gerenciamento e execução dos jobs.
Antes de começar a usar o Elastic Agent Job, tem alguns itens importantes que gostaria de compartilhar com vocês para que decidam se este serviço será a melhor opção pra ti.
- O Elastic Job Agent é um serviço que se encontra ainda em Preview na data deste post, ou seja, não é recomendado ainda para ambientes produtivos, então avalie bem antes de usar na sua produção
- O Elastic Job Agent ainda não possui interface gráfica para gerenciamento dos jobs
- Necessita de um SQL Database para armazenar dados do Elastic Job Agent
- Configuração do Elastic Job Agent pode ser feita via Powershell usando biblioteca CLI do Azure.
Este é o overview sobre o Elastic Job Agent, compartilho vídeo abaixo do canal Wally Data a qual contem demo do Elastic Job Agent. Espero que tenha gostado do conteúdo.