Atualmente estou envolvido em um projeto de diversas pontas diferentes dentro do ambiente de saúde, desde dados de Atenção Primaria (Seriam as Unidades de Saúde), como também diversas outras áreas como Atenção Odontológica, Atenção Especializada, Caravanas de Atendimentos, CNES, Dados Epidemiológicos, Dados de Nascimento e Óbitos, além de mapeamento de indicadores diferentes, entre outros projetos.
Neste projeto atuamos com dados de todo estado da Paraíba, no último senso indica que são aproximadamente 4 milhões de habitantes, imagina mapear e monitorar os atendimentos de todos esses habitantes no ambiente SUS, para entender indicadores de saúde, qualidade de atendimento, quantidade de atendimento, onde estamos sendo sobrecarregados e a partir de tudo isso buscar soluções que melhore a qualidade do SUS em toda Paraíba.
Pensar em uma solução de dados para área de saúde é um desafio, os dados de saúde devem ser armazenados por até 20 anos, é os dados históricos pode ser utilizado para varias situações e insights, atualmente temos em fase de planejamento até a construção de uma IA própria do Estado da Paraíba, mas para isso temos um chão a percorrer.
Assim planejei está arquitetura de forma que seja escalável e que possamos ter um serviço de dados de qualidade a longo prazo.
Falado todo contexto, vamos a apresentação dessa Estrutura.
Atualmente temos diversos sistemas rodando em diversos ambientes diferentes, alguns são sistemas em PostgreSQL, outros em MySQL, alguns no MongoDB, outros em FireBase, e tem que ter também coisa em Excel/Google Sheets para integrar tudo isso.
Então decidi para ingestão dos dados utilizar o Airbyte, para facilitar todo processo de ingestão, assim ganhando tempo em algumas etapas. Então vamos falar do Airbyte.
O airbyte é uma ferramenta de integração de dados voltado para o EL, existem muitas vantagens de se utilizar o Airbyte, primeiramente é uma ferramenta OPEN SOURCE, possui uma Variedade de Conectores gigantesca, são mais de 200 fontes diferentes que ele possuí conexão. Caso não exista um conector especifico eu posso construir o meu próprio conector, é possível realizar configuração incremental de forma simplificada. Possui integração com DBT e Airflow. Além de ser possível monitorar de forma simples todo o processo de EL.
A ideia é colocar todos esses dados em Buckets dentro do MINIO em formato .parquet, usando assim uma ferramenta de Data Lake.
O primeiro ponto de uso é uma ferramenta OPEN SOURCE, compatível com Amazon S3, assim todas as bibliotescas e ferramentas que funcionam no S3 funciona no MinIO. Ele possui um Alto Desempenho e Escalabilidade, Muito fácil de implementar. Já o uso de parquet é para ganhar beneficios de desempenho para consultas analiticas, devido a ele ser colunar, como também ganhar muito em compactação, assim podendo utilizar melhor a capacidade de armazenamento dos servidores.
Nesta etapa ainda não existe uma definição, ainda será discutido em equipe e realizado teste de ações, o DuckDB já me impressionou bastante sobre desempenho, como também sobre facilidade. Como também uma das opções é usar o Python junto com suas diversas bibliotecas para transformar esses dados lendo em formato parquet e tratando eles conforme as necessidades do negócio.
Tudo isso sendo orquestrado pelo Apache Airflow, que dispensa comentários, até hoje é a ferramenta mais utilizada para Orquestração de Projetos de Dados.
O trino é utilizado como um motor de consultas SQL, assim é possível realizar consultas diretamente nos arquivos .parquet que estão no MinIO com comando SQL, assim fazendo toda integração com as ferramentas de BI. Ele é otimizado para alta performace, lidar bem com grande volumes de dados e pode utilizar processamento paralelo.
Como ferramenta de DataViz será possível utilizar 3 (três) ferramentas distintas, ambas de alta qualidade:
Streamlit: Framework Python que simplifica a criação de aplicações web para projetos de dados, poderoso para fazer projetos de Visualização de Dados e Modelos de IA.
Power BI: Ferramenta de SelfService BI, que facilidade a criação de Dashboards.
Apache Superset: Ferramenta Open Source de BI com diversas funcionalidade.
A ideia a longo prazo e realizar a migração dos Dashboards para Apache Superset, devido ao menor custo e capacidade de Dashboards e Controle que ele possui.
Como ferramenta web para Portal de Dados abertos a ideia é utilizar o Django, como uma ferramenta completa para construção de uma página web que faça todo controle de acesso aos dados, como também uma pré-visualização de cada conjunto de dados disponível, além de fazer todo controle de acesso e criação de API (Públicas e Privadas).
Porém começando a disponibilização dos dados com o FastAPI, devido a maior necessidade de tempo para construção de uma plataforma web de dados abertos com Django.
A utilização do Open Metadata é para toda parte de Governança e Catálogo de Dados, assim trazendo mais conformidade e confiabilidade em todo processo de Dados realizado. Utilizando a cada etapa do ELT a biblioteca Loguru para criação de logs detalhados, para acompanhamento e monitoramento. Utilizando o Pandera nas etapas de Transformação para manter a qualidade e validação dos dados.
Fazendo toda documentação com o Framework MKDocs que é excelente ferramenta de Documentação, trazendo documentação de forma organizada e simples integrando com Python. Versionando o código através do GitHub. Tudo sendo Containezado com Docker, para uma melhor sustentação e facilidade de Deploy.
Basicamente foi essa proposta que montei e estou nesse momento fazendo toda implementação, o que você achou dela? Tem algo a complementar?? Deixa sua opinião na postagem de origem de como poderia melhorar ou o que você achou desta arquitetura.
Siga-me e acompanhe todas as minhas postagens.
Nela você garante desconto em treinamentos da área de dados de extrema qualidade.
Você encontrará treinamentos dos seguintes pontos:
Streamlit
Databricks e Spark
Desbravando Docker
Desbravando Git e GitHub
Jornada de Dados
(14 Workshops de Dados - RoadMap completo de Engenharia de Dados)
We use cookies to improve your experience and to help us understand how you use our site. Please refer to our cookie notice and privacy statement for more information regarding cookies and other third-party tracking that may be enabled.
© 2024 - Luciano Borba