Agora que as métricas foram modeladas, importante criar a carga das métricas.
A carga deverá ter um formato comum do qual um processo pós carga será iniciado.
Nesse processo pós carga, os dados das mais diversas fontes e formatos serão transformados me linhas de carga, as linhas repetirão informação, mas durante a carga os dados serão normalizados para serem inseridos no banco.
Cada linha deverá ter os seguintes valores:
municipio (deverá bater com o que já temos no banco)
uf (deverá bater com o que já temos no banco)
area (deverá bater com o que já temos no banco)
focoIndicador
grupoIndicador;
indicador;
valorIndicador;
ano;
Esses dados estarão no formato JSON e serão extraídos das mais diversas fontes: INEP, Datasus, etc.
O processo de carga se inicia através de um endpoint REST protegido que recebe o JSON e passa para o controller de carga de indicadores, o controle pega cada linha, busca os dados que já possam existir no banco e cria se não existir - exceto o município, dados onde o município não é encontrado, serão descartados!
Cada linha deverá rodar em uma transação isolada, caso haja problema, podemos agrupar as informações em um objeto que poderá retornar como um relatório para o usuário mostrando quais linhas não foram inseridas e possíveis erros que aconteceram durante a carga.
Agora que as métricas foram modeladas, importante criar a carga das métricas.
A carga deverá ter um formato comum do qual um processo pós carga será iniciado.
Nesse processo pós carga, os dados das mais diversas fontes e formatos serão transformados me linhas de carga, as linhas repetirão informação, mas durante a carga os dados serão normalizados para serem inseridos no banco.
Cada linha deverá ter os seguintes valores:
Esses dados estarão no formato JSON e serão extraídos das mais diversas fontes: INEP, Datasus, etc.
O processo de carga se inicia através de um endpoint REST protegido que recebe o JSON e passa para o controller de carga de indicadores, o controle pega cada linha, busca os dados que já possam existir no banco e cria se não existir - exceto o município, dados onde o município não é encontrado, serão descartados!
Cada linha deverá rodar em uma transação isolada, caso haja problema, podemos agrupar as informações em um objeto que poderá retornar como um relatório para o usuário mostrando quais linhas não foram inseridas e possíveis erros que aconteceram durante a carga.
Dados que já podem ser carregados: