Este documento descreve o projeto "D4Maia - Data for Maia" que tem como objetivo criar um data lake para a cidade de Maia contendo dados abertos e sensores. O documento detalha o ciclo de vida dos dados no data lake, incluindo a coleta, processamento, exposição e manutenção dos dados. Além disso, discute as habilidades necessárias como Python, MariaDB, PHP e visualização de dados.
6. Data Source
1
Data Source
2
Data Source
...
OpenDataSoft
Carto
Mangomaps
GisCloud
base2b
pwall5
Data harvesters
python / ...
geojson.io
BaZe
database(s)
REST APIs
Open format
JSON / geoJSON / ...
Power BI
Dundas
Tableau CKan
GitHub
Data Source
...
(em preparação)
BaZe datalake
7. «Ciclo de vida» dos datasets
• «Eu gostaria de ter acesso aos dados xxx »
• Compreensão da ‘necessidade’ do ‘cliente’
• Identificação da ‘fonte’, autorização de acesso / compra (etc) / registo técnico -
> acesso aos dados
• Preparação da pipeline (python)
• Leitura (REST API – JSON / geoJSON; BDados – registo(s); Ficheiro (CSV, XLS, Outro); etc -
KML)
• Recepção de dados (script php / LoRa)
• Análise do processamento / harmonização (Unidades, variáveis de interesse)
• Estabelecimento da frequência de leitura / escrita (2 mins – 1 x / ano)
• Escrita no nosso «data lake» (MariaDB / Mongodb) + logfile
• Inclusão no nosso «crontab»
• Monitorização da execução do pipeline ( upgrade -> Apache Airflow )
• Monitorização do data lake / base de dados
7
ISO37120
Regulamento de execução
8. «Ciclo de vida» dos datasets
• Exposição dos dados em função da necesssidade do cliente
• Identificação dos valores a serem expostos (em formato JSON / geoJSON)
- que variáveis, granularidade, agregação, intervalo de tempo, estrutura,
etc)
• Preparação do endpoint (php)
• Parsing dos parâmetros
• Verificação / harmonização dos parâmetros (cpeconsumo.php)
• Extração dos dados do «data lake» (MariaDB / php)
• Construção do JSON / geoJSON
• Exposição da resposta
• Monitorização da execução do endpoint (tempo de extracção / output -> base de
dados)
8
9. «Ciclo de vida» dos datasets
• Verificação do endpoint / dados expostos
• Verificação visual do output do endpoint
• Verificação da correcção do formato (jsonlint / geojson.io)
• Rendering numa consola (gstat, base2b, sumac, consumoe,
catalogo2, ...)
• Rendering num dashboard específico (pwall2)
• Melhoria / Optimização de todo o pipeline incluindo a visualização
• Adaptação aos sensores instalados (5->6, Qualidade do Ar)
• Export MariaDB -> CSV -> GitHub (Arquivo / «Dados abertos»)
9
10. «Ciclo de vida» dos datasets
• ‘Fim de vida’
• Deixámos de ter acesso aos dados (Bird, Frog)
• Deixámos de ter interesse nesses dados
• Desactivar o crontab
• Arquivar o histórico dos dados recolhidos
• Manter as scripts python / php (para uso futuro – Bolt(?))
• Apagar histórico de ‘dados acessórios’ / ‘complementares’ (Compta/ITGest)
• Apagar «logs» (15 dias ~ 1 mês)
10
11. Revisão – competências em jogo
• Dados (Compreensão da complexidade do processamento e interpretação dos dados)
• Formatos JSON / geoJSON, csv, xls, xlsx, kml, xml, shapefile, ad-hoc.
• Gestão Linux (Utilizadores, cópias de segurança, permissões, update, instalação de
bibliotecas (python, php), monitorização do sistema)
• Python / MariaDB / bash (operação, monitorização e optimização) (Apache Airflow)
• Maria DB (modelação de dados, gestão de BD e Utilizadores) (MongoDB, Postgres,
DB2)
• Importação / exportação de dados (CSV, sql)
• php / MariaDB (operação, monitorização e optimização) (Django)
• HTML + Javascript + JQuery + HighCharts («consolas») + Bibliotecas gráficas
• Tableau, Power BI, OpenDataSoft, Jupyter Notebooks, Python+seaborn, R, Matlab /
Octave, Cognos, Qlink, ...
11