Pipeline de Dados
4.2 Processamento, Cat´ alogo de Dados e Acesso ao Data Lakeao Data Lake
Os dados armazenados no Data Lake ainda est˜ao em seu formato bruto. A de-manda de tempo de desenvolvimento de software seria bastante alta caso seja
ne-cess´ario lidar com v´arios formatos diferentes. Por isso a etapa de processamento
´e essencial para tornar o desenvolvimento de software e an´alise de dados mais es-cal´avel.
Nessa etapa os dados armazenados s˜ao convertidos para um formato comum cha-mado Parquet. O parquet ´e um formato colunar e bin´ario que foi desenvolvido em uma coopera¸c˜ao entre o Twitter e Cloudera para criar uma representa¸c˜ao colunar eficiente [18].
A vantagem da transforma¸c˜ao dos dados para o formato parquet n˜ao ´e apenas a unifica¸c˜ao do tipo do dado. O formato colunar fornece mais performance para agrupamento e leitura de dados por coluna, aplica¸c˜ao muito ´util para a etapa de data warehouse, por exemplo. Al´em disso os dados s˜ao compactados, economizando espa¸co de armazenamento.
O processamento dos dados brutos em qualquer formato para o parquet ´e realizado atrav´es do Apache Spark, que ´e uma ferramenta Big Data que tem o objetivo de processar grandes conjuntos de dados de forma paralela e distribu´ıda [19]. O Spark facilita o processamento de grandes volumes de dado e suporta trˆes linguagens de programa¸c˜ao: Python, Java e Scala.
Os dados s˜ao catalogados a partir do uso do servi¸co AWS Glue, segundo a pr´opria Amazon o AWS Glue ´e um servi¸co de extra¸c˜ao, transforma¸c˜ao e carga (ETL) ge-renciado que facilita a prepara¸c˜ao e a carga de dados para an´alises pelos clientes.
Vocˆe pode criar e executar uma tarefa de ETL com apenas alguns cliques no Con-sole de Gerenciamento da AWS. Basta indicar ao AWS Glue os dados armazenados na AWS que ele os descobre e armazena os metadados associados (ex.: defini¸c˜ao e esquema de tabela) no AWS Glue Data Catalog. Uma vez catalogados, os dados s˜ao disponibilizados imediatamente para pesquisas, consultas e ETL.
Dessa forma, os dados processados em formado parquet tem seu catalogo de me-tadados associados, tornando mais simples a compreens˜ao e futuro trabalho com os dados.
Outro servi¸co utilizado ´e o AWS Athena, um servi¸co de consultas interativas que facilita a an´alise de dados no Amazon S3 usando SQL padr˜ao. O Athena ´e fornecido j´a integrado ao AWS Glue Data Catalog, o que permite criar um reposit´orio de metadados unificado em v´arios servi¸cos, fazer crawling de fontes de dados para descobrir esquemas e preencher o Catalog com defini¸c˜oes novas e modificadas de tabelas e parti¸c˜oes, al´em de manter o versionamento do esquema [20].
Dessa forma, podem-se realizar consultas aos dados em parquet via Athena, pelo pr´oprio console fornecido pela Amazon. Al´em disso, tamb´em ´e poss´ıvel conectar com o Athena via c´odigo, possibilitando a integra¸c˜ao com notebooks como o Jupyter, para que sejam realizadas an´alises explorat´oria dos dados, por exemplo.
4.2.1 Data Warehouse, API’s e Visualiza¸ c˜ ao de Dados
Um Data Warehouse ´e um deposito de dados orientado por assunto, integrado, n˜ao vol´atil, vari´avel com o tempo, para apoiar as decis˜oes gerenciais [21]. O DW tem sua modelagem orientada a assunto, dentro da l´ogica de neg´ocios de uma empresa.
Depois da etapa de processamento de dados, as APIs gerenciam o tratamento deles para que possam ser armazenados nos Data Warehouses j´a em forma mais simples e sofisticada para que eles possam ser analisados e gerar valor ao neg´ocio.
A Amazon [4] cita as seguintes vantagens da utiliza¸c˜ao do DW: Melhor tomadas de decis˜ao, consolida¸c˜ao de dados de diversas fontes, qualidade consistˆencia e precis˜ao dos dados, inteligˆencia hist´orica e separa¸c˜ao entre o processamento de an´alises dos bancos de dados transacionais, aumentando a performance nos dois sistemas.
Tanto o Data Warehouse quanto o Data Lake s˜ao maneiras de armazenar dados, a figura 4.1 ilustra as diferen¸cas entre ambos. Em resumo, enquanto o Data Lake ´e um reposit´orio centralizado para todos os dados, o Data Warehouse ´e um reposit´orio para os dados estruturados e otimizado para consumo em inteligˆencia de neg´ocio.
Com os dados estruturados no Data Warehouse os servi¸cos s˜ao capazes de consumi-los para processamento e gera¸c˜ao de an´alises mais sofisticadas. Por fim, ´e poss´ıvel
Figura 4.1: Compara¸c˜ao entre Data Warehouse e Data Lake. Fonte: AWS [4]
visualizar as informa¸c˜oes geradas pelo pipeline a partir de alguma ferramente de inteligˆencia de neg´ocios, sendo no pipeline apresentado o Power BI.
4.2.2 Agendamento e Orquestra¸ c˜ ao
Ao percorrer o pipeline de dados de ponta a ponta, diversas fontes de dados podem ser utilizadas, tendo diferentes frequˆencias de atualiza¸c˜ao. Bem como di-ferentes servi¸cos est˜ao envolvidos no gerenciamento de tais dados. Na ponto final, as informa¸c˜oes e relat´orios gerados devem estar sempre atualizados. Emerge a ne-cessidade de orquestrar todos esses elementos criados durante o ciclo de vida do projeto.
O Apache Airflow ´e uma plataforma aberta de gerenciamento de workflow criada em 2014. Com o Airflow ´e poss´ıvel gerenciar fluxos de trabalho complexos a partir da utiliza¸c˜ao de scripts na linguagem Python.
A estrutura dos fluxos ´e baseada em DAG’s (Directed Acyclic Graph) onde uma tarefa do fluxo aponta para outra, mas ciclos n˜ao podem ser formados, como mos-trado na figura 4.2. Dessa maneira ´e poss´ıvel definir relacionamentos e dependˆencias entre as tarefas que devem ser realizadas na execu¸c˜ao do pipeline.
Como o airflow ´e gerenciado via c´odigo em python ´e poss´ıvel gerar pipelines de dados dinˆamicos, al´em de ser poss´ıvel colocar testes nos pipelines, tornando o
de-Figura 4.2: Exemplo de DAG no Airflow. Fonte: Airflow [5]
senvolvimento mais robusto. Al´em disso, ele possui uma interface de visualiza¸c˜ao para acompanhamento dos pipelines, como mostrado na figura 4.3
Figura 4.3: Interface Gr´afica Airflow. Fonte: Airflow [5]
A grande vantagdem da utiliza¸c˜ao do Airflow no pipeline de dados aqui apresen-tado ´e a possibilidade que realizar chamadas a API’s em suas tarefas, realizando de forma completa a integra¸c˜ao do pipeline de dados.
4.2.3 O pipeline de dados aplicado a constru¸ c˜ ao do portf´ olio
O pipeline de dados foi apresentado para que se entenda sua aplica¸c˜ao na cons-tru¸c˜ao do portf´olio baseado em investimento por fatores apresentado no cap´ıtulo
3.
Os dados da CVM s˜ao ingeridos trimestralmente, enquanto os dados de pre¸co de a¸c˜oes e ´ındices s˜ao guardados diariamente no Data Lake. Os dados s˜ao pr´ e-processados, assim que ingeridos, para o formato parquet. A partir dessa etapa v´arios micro servi¸cos s˜ao acionados para realizar o processamento dos dados parquet para o esquema desejado no Data Warehouse. Para os dados da CVM isso inclui a tradu¸c˜ao das contas apresentadas nos demonstrativos financeiros parar os m´ultiplos mostrados no 2.
Na data de montagem de portf´olio os dados s˜ao ent˜ao consumidos e processados, de forma que as regras de neg´ocio definidas no cap´ıtulo 3 s˜ao aplicadas e o portf´olio
´e gerado.
As informa¸c˜oes do portf´olio s˜ao guardadas tamb´em um Data Warehouse de onde podem ser consumidas pelo Power BI para que a an´alise da estrat´egia implementada seja realizada. Al´em disso, as informa¸c˜oes acerca de m´ultiplos tamb´em podem ser analisadas e visualizadas na ferramenta.