O blog da AWS
Desenvolva painéis do Amazon QuickSight para monitorar as métricas de job de ETL do AWS Glue e defina alarmes
- Onde estou gastando mais com o AWS Glue?
- Onde posso economizar mais aproveitando os novos recursos do AWS Glue?
- Como é meu uso geral usando o AWS Glue?
A AWS oferece serviços como o Amazon QuickSight, um serviço de inteligência de negócios (BI) sem servidor que permite centralizar essa visualização e até mesmo fazer perguntas de linguagem natural sobre seus dados, usando o Amazon QuickSight Q. O QuickSight pode oferecer aos líderes de negócios e seus parceiros de tecnologia um cenário comum para relatar detalhes importantes de seu uso, fornecendo narrativas automatizadas para preencher as lacunas de comunicação.
Nesta publicação, exploramos como combinar informações e métricas de uso do AWS Glue com relatórios e visualizações centralizados usando o QuickSight. Isso pode fornecer uma visão mais abrangente do seu uso e das ferramentas para ajudá-lo a se aprofundar no ambiente de execução de jobs do AWS Glue. Você tem métricas disponíveis por job executado no console do AWS Glue, mas elas não abrangem todas as métricas de job disponíveis do AWS Glue, e os visuais não são tão interativos em comparação com o painel do QuickSight.
Embora não abordemos a otimização de seus jobs por custos nesta publicação, você pode consultar Monitorar e otimizar custos no AWS Glue para Apache Spark para saber como ajustar suas tarefas do AWS Glue para obter desempenho, eficiência e otimização de custos.
Vamos mergulhar!
Visão geral da solução
O diagrama a seguir ilustra a arquitetura da solução dada. Em um alto nível, um evento programado aciona um fluxo de orquestração que consiste em vários recursos de dados, computação e Analytics, cujo resultado culmina como um conjunto de elementos visuais em um painel de BI.
Agora vamos nos aprofundar nos detalhes técnicos envolvidos nessa solução.
Um fluxo de job do AWS Step Functions está programado para ser executado uma vez por hora por meio do Amazon EventBridge, que aciona uma função do AWS Lambda que chama as APIs GetJob
e GetJobRun
do AWS Glue. Analisamos esses dados para verificar jobs que foram bem-sucedidos, interrompidos ou falharam na última hora, bem como quaisquer jobs de streaming. Os metadados são extraídos de cada execução de job, incluindo informações como tempo de execução, hora de início, hora de término, escalabilidade automática, número de trabalhadores e tipo de trabalhador, e são gravados em uma tabela do Amazon DynamoDB com TTL (time to live) habilitado para garantir que a tabela não cresça muito.
Passamos para um estado paralelo para verificar duas tabelas nas quais o Amazon Athena grava a saída das consultas federadas. O Athena primeiro verifica se as tabelas existem no Amazon Simple Storage Service (Amazon S3), onde os dados serão armazenados. Se as tabelas não existirem, Athena as cria. Uma consulta federada reúne dados métricos do AWS Glue das métricas do Amazon CloudWatch; a outra reúne dados da tabela do DynamoDB, na qual o Lambda grava os metadados do job do AWS Glue que está coletando. Ambas as consultas federadas utilizam a filtragem apropriada para verificar somente os dados necessários de cada fonte.
Há um estado de escolha para cada filial. Se não houver novos dados a serem adicionados a uma tabela no Amazon S3, o estado termina e espera que o outro seja concluído. Por exemplo, pode haver um job do AWS Glue em execução durante a avaliação da etapa. Nesse caso, as métricas do job seriam inseridas na tabela no Amazon S3, mas os metadados do DynamoDB não chegariam até a hora seguinte após o job ter sido bem-sucedido, interrompido ou falhado.
Quando novas métricas ou metadados são encontrados, o Athena insere esses dados nas tabelas de métricas ou metadados no Amazon S3, ambas particionadas por hora. Depois que os dados são inseridos, as etapas finais chamam a API QuickSight CreateIngestion, que aciona a ingestão de dados no QuickSight SPICE para potencializar a Analytics interativa. Nesse ponto, o fluxo de job terminou de ser executado e será executado novamente na hora seguinte.
Nas seções a seguir, mostraremos como configurar a solução, explorar os painéis e configurar alarmes.
O código dessa solução pode ser encontrado no repositório GitHub de amostras da AWS.
Pré-requisitos
Você deve ter os seguintes pré-requisitos:
- Uma conta da AWS com privilégios do AWS Identity and Access Management (IAM) suficientes para criar os recursos da solução
- QuickSight Standard ou Enterprise Edition com um usuário do QuickSight criado.
- Um ambiente de desenvolvimento integrado (IDE) do AWS Cloud9 ou sua máquina local usando seu IDE preferido com os seguintes pacotes instalados:
- O AWS Cloud Development Kit (AWS CDK) foi inicializado em sua conta e região da AWS de destino
Implante recursos de solução com o AWS CDK
Para provisionar os recursos que criam o painel e o mantêm atualizado, fornecemos etapas para baixar e implantar a solução por meio do AWS CDK. A solução foi desenvolvida com a otimização de custos como prioridade, mas alguns recursos na pilha incorrerão em custos uma vez implantados.
Essa solução gera os seguintes recursos:
- Função do IAM
- Regra do EventBridge
- Máquina de estado do Step Functions
- Função lambda
- Bucket S3
- Duas tabelas do AWS Glue e um banco de dados do AWS Glue
- Tabela do DynamoDB
- Consultas do Athena invocadas pelo Step Functions
- Fonte de dados, conjunto de dados, analysis e painel do QuickSight
To deploy the solution, complete the following steps:
- Clone o código-fonte do repositório GitHub de amostras da AWS para o cliente:
- Inicialize seu aplicativo AWS CDK:
- Implante a solução com os parâmetros necessários:
-
- O primeiro parâmetro é a criação de um novo bucket do S3, que contém as métricas e os metadados do AWS Glue.
- O segundo parâmetro é necessário para que o QuickSight atribua permissões ao usuário que gerenciará os ativos. Consulte Gerenciamento do acesso de usuários dentro do Amazon QuickSight para encontrar seus usuários atuais do QuickSight.
-
Se sua implantação falhar, certifique-se de ter instalado a biblioteca do AWS CDK e execute o cdk
deploy novamente após a instalação:
A implantação pode levar até 10 minutos.
Depois que a solução for implantada, a máquina de estado do Step Functions avaliará uma vez por hora se deve ingerir dados no QuickSight. Você pode executar alguns jobs do AWS Glue após a implantação da pilha e verificar o painel do QuickSight nas próximas duas horas, onde os metadados e as métricas do job serão preenchidos para sua Analytics.
Explore o painel
O painel contém duas planilhas: Glue Jobs e Glue Metrics.
A planilha Glue Jobs inclui todos os metadados sobre suas execuções de jobs do AWS Glue, incluindo AWS Glue para Apache Spark, AWS Glue for Ray e ETL de streaming do AWS Glue. A maioria dos recursos visuais também tem uma hierarquia que você pode detalhar com o QuickSight, indo tão baixa quanto a ID específica de execução de cada tarefa. Você pode usar controles para filtrar por data, nome do job e ID de execução do job.
Na demonstração a seguir, você verá a tabela dinâmica, que é uma visualização simples de todos os nossos metadados de job, incluindo o custo estimado por job e execução do job. Abrimos o nome de um job e vemos os diferentes jobs sendo executados. Há uma execução de job individual na qual gostaríamos de inspecionar as métricas, então escolhemos o nome do job e escolhemos Exibir métricas para o id de execução do job: <my job run id>. Isso nos levará à planilha Glue Metrics e filtrará automaticamente o ID de execução do job que queremos visualizar.
A planilha Glue Metrics foi criada para refletir a documentação que fornecemos no monitoramento de recursos do AWS Glue. Essa documentação ajuda a explicar cada visual no painel. Você pode usar a planilha Glue Metrics para visualizar métricas agregadas em todos os jobs, em um único job ou até o ID de execução do job.
Para preencher a planilha Glue Metrics, seus jobs do AWS Glue devem estar habilitados para capturar métricas no CloudWatch.
Configurar alertas
Configurar alertas sobre medidas também é fácil de fazer no QuickSight. Para fazer isso, escolha (clique com o botão direito do mouse) uma das medidas rastreadas em qualquer planilha e escolha Criar alarme. Isso levará você à página de configuração para configurar a métrica sobre a qual você gostaria de ser alertado.
O painel foi projetado para dar a você a liberdade de alterá-lo e criar suas próprias visualizações com os metadados e métricas que são fornecidos a você. Se você quiser ainda mais informações sobre o custo, considere também implantar o painel do CUDOS!
Limpeza
Se você não precisar mais do painel, exclua o aplicativo CDK:
Conclusão
Neste post, falamos sobre a importância de ter a observabilidade de seus jobs no AWS Glue e fornecemos um aplicativo AWS CDK que implanta um painel do QuickSight para você. Esperamos que isso ajude você a otimizar seu ambiente do AWS Glue usando os insights que o painel fornece. Para saber mais sobre alertas baseados em eventos para suas tarefas do AWS Glue para Apache Spark e Ray, consulte Automatize alertas e relatórios sobre o uso de recursos de job do AWS Glue.
Este artigo foi traduzido do Blog da AWS em Inglês.
Sobre o autor
Michael Hamilton é arquiteto sênior de soluções analíticas com foco em ajudar clientes corporativos no sudeste a modernizar e simplificar suas cargas de job de Analytics na AWS. Ele gosta de andar de mountain bike e de passar tempo com sua esposa e três filhos quando não está trabalhando.
Cody Penta é arquiteto de soluções na Amazon Web Services e está sediado em Charlotte, NC. Ele se concentra em segurança e CDK e gosta de resolver os problemas realmente difíceis do mundo da tecnologia. Fora do horário, ele adora relaxar nas montanhas, programar projetos pessoais e jogar.
Angus Ferguson é arquiteto de soluções na AWS e é apaixonado por conhecer clientes em todo o mundo, ajudando-os a resolver seus desafios técnicos. A Angus é especializada em dados e Analyticss com foco em clientes do setor de serviços financeiros.
Tradutor
Luiz Santos é um Arquiteto de Soluções. Atua ajudando clientes do setor Enterprise durante sua jornada na nuvem da AWS. Tem grande interesse na área de Analytics, Observabilidade e Serverless.