Capítulo 29 — Governança de dados: medição
Mapa da aula
Aula 29 publicada. Mapa, exemplo, EX085.
flowchart TD
N0["29.1 O nível de serviço"]
N1["Laboratório — Chegadas do fluxo em relação ao nível"]
N2["29.2 Resultados"]
N3["29.3 Encontrando a causa"]
N4["29.4 Relatando o serviço"]
N0 --> N1 --> N2 --> N3 --> N4
N4 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX085"]
Desenho lógico
flowchart LR
N0["29.1 O nível de serviço"]
N1["Laboratório — Chegadas do fluxo em relação ao nível"]
N2["29.2 Resultados"]
N3["29.3 Encontrando a causa"]
N4["29.4 Relatando o serviço"]
N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX085"]
[29.1 O nível de serviço]
|
v
[Laboratório — Chegadas do fluxo em relação ao nível]
|
v
[29.2 Resultados]
|
v
[29.3 Encontrando a causa]
|
v
[29.4 Relatando o serviço]
|
v
[Exemplo resolvido] --> [Exercício EX085]
Objetivos de aprendizagem
Você vai (1) medir a pontualidade em relação a um nível de serviço; (2) encontrar padrões nas violações; (3) relatar o desempenho do serviço.
29.1 O nível de serviço
O fluxo diário de volume fornecido precisa chegar ao data warehouse até as 06:00, para que a visão matinal de perdas esteja pronta para os engenheiros de rede. Kofi mede os horários de chegada ao longo de noventa dias sintéticos. Ele registra o horário em que cada fluxo chega e o compara com o prazo. Ele explica que um nível de serviço só é útil se for medido continuamente e relatado tanto ao fornecedor quanto ao consumidor, para que cada lado saiba se o acordo está sendo cumprido. Aqui, o fornecedor é a operação da rede, que roda a rotina de exportação todas as manhãs.
Laboratório — Chegadas do fluxo em relação ao nível de serviço das 06:00 em 90 dias sintéticos
"""Measure daily feed timeliness against a 06:00 service level over 90 synthetic days (stdlib only)."""
import random
random.seed(19)
arr = [random.gauss(5.2, 0.6) + (1.5 if 40 <= d < 47 else 0) for d in range(90)] # hours after midnight
late = [d for d, a in enumerate(arr) if a > 6.0]
print(f"days {len(arr)}; feed after 06:00 on {len(late)} days ({100*len(late)/len(arr):.1f}%)")
print(f"late days in the week 40-46: {sum(1 for d in late if 40 <= d < 47)} of 7")
Execute com python3 lab_sla.py. Saída verificada:
days 90; feed after 06:00 on 11 days (12.2%)
late days in the week 40-46: 7 of 7
29.2 Resultados
O laboratório mostra que o fluxo chegou depois das 06:00 em 11 de 90 dias, ou 12,2 por cento. A meta do nível de serviço é de 95 por cento no horário, o que admite cerca de quatro ou cinco dias de atraso; a Tidewater alcançou 87,8 por cento. Os sete dias da semana entre o dia 40 e o dia 46 tiveram atraso. Os outros quatro dias de atraso ficaram espalhados. Kofi observa que um único número-resumo esconde esse padrão, que aponta para um evento específico, e não para uma lentidão geral. Kofi plota os horários diários de chegada para que o agrupamento fique visível de relance para qualquer leitor.
29.3 Encontrando a causa
Kofi investiga a semana de atrasos com a operação da rede. Naquela semana, uma atualização do sistema de controle acrescentou uma rotina de backup que rodava antes da exportação, atrasando o fluxo em cerca de uma hora e meia todos os dias. Ninguém ligou a atualização ao atraso do fluxo, porque a equipe do data warehouse não foi avisada da mudança. Ele recomenda que mudanças que afetem o horário da exportação sejam comunicadas ao dono dos dados e que a rotina de backup da atualização seja movida. A rotina de backup é reagendada para depois da exportação.
29.4 Relatando o serviço
Kofi projeta um relatório mensal de serviço com o percentual no horário, um gráfico das chegadas diárias com o prazo marcado, os agrupamentos de violações e as causas encontradas. O relatório vai para o dono na operação da rede e para os consumidores dos dados. A Profa. Varga observa que mostrar o gráfico diário, e não apenas o percentual, permite que os leitores vejam os padrões por conta própria, e que os relatórios de serviço devem explicar as violações, e não apenas contá-las, já que a contagem sozinha não dá base para melhorar. O primeiro relatório é discutido na reunião mensal de operações.
Exemplo resolvido
Kofi mede 11 dias de atraso em 90 (12,2 por cento), com todos os sete dias da semana 40 a 46 atrasados, rastreia a causa até a rotina de backup de uma atualização e projeta um relatório mensal de serviço com gráfico diário.
Caso sintético. As chegadas são sintéticas; as saídas vêm de lab_sla.py.
Erros e limites
Médias escondem agrupamentos; plote os valores diários.
Exercícios
- EX085 — Proporção de atrasos. Em que proporção dos dias o fluxo atrasou? Rubrica: 3 = 12,2% (11 de 90);; 2 = parcialmente correto;; 1 = parcial;; 0 = nenhuma.
- EX086 — Causa do agrupamento. O que causou a semana de atrasos? Rubrica: 3 = a rotina de backup de uma atualização rodando antes da exportação;; 2 = parcialmente correto;; 1 = vago;; 0 = nenhuma.
- EX087 — Dias espalhados. Quantos dias de atraso ficaram fora daquela semana? Rubrica: 3 = quatro;; 2 = parcialmente correto;; 1 = errado;; 0 = nenhuma.
Continue estudando — aula 29 (capítulo 29 de 50)
← Capítulo 28 · Índice das aulas · Capítulo 30 →
Continue para a próxima aula já escrita.