Optimization of supply chain processes with an ETL pipeline & data science applications

Detalhes bibliográficos
Autor(a) principal: Fonseca, Gustavo Silva
Data de Publicação: 2021
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: http://hdl.handle.net/10451/51844
Resumo: Trabalho de Projeto de Mestrado, Ciência de Dados, 2021, Universidade de Lisboa, Faculdade de Ciências
id RCAP_eb7fe1fe15ccde39844b5e9638454d2c
oai_identifier_str oai:repositorio.ul.pt:10451/51844
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 7160
spelling Optimization of supply chain processes with an ETL pipeline & data science applicationsCadeia de AbastecimentoConstruçãoNuvemETLCiência de DadosTeses de mestrado - 2021Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaTrabalho de Projeto de Mestrado, Ciência de Dados, 2021, Universidade de Lisboa, Faculdade de CiênciasIBM defines supply Chain Management (SCM) as the management of raw components until their delivery as a final product to the consumer[11]. When a construction company takes over the SCM, it needs to handle various materials and sizes, including procurement for the best supplier, logistics, and storage in the local warehouse for later distribution into construction sites. Enterprise Resource Planning (ERP) software facilitates data management in the SCM. They provide a GUI where collaborators can interact with a database adapted to OLTP tasks such as information retrieval, requisitions for new materials, and inventory management. With the growth of any industry, the need for analytical applications grows. However, it is challenging to provide enough compute resources for the operational and analytical tasks while not compromising access to the data. To overcome this problem, several services in the cloud can provide new data working environments. For example, cloud providers have data lakes, databases, serverless code execution platforms, virtual machines and machine learning platforms that enable developers to build their own adapted infrastructure and analytical applications. Mota¬Engil has been the subject of this project, a multi¬national construction company with supply chain management happening in and out of 20 countries. Their ERP software is SAP S/4HANA and is hosted on ¬premises. However, at the moment, there is no central analytics¬ dedicated database. To increase its development opportunities, I created an ETL pipeline that collects data from a local file system and uploads it into the cloud. Initially, all the data is extracted to Azure Data Lake Storage, it is transformed using Azure Functions and loaded into a new Azure SQL Database. Finally, I use Azure CLI to move data and execute the Azure cloud services to perform all of these commands. With the database constructed and populated, I developed two applications that leveraged its existence. The first idea was the creation of a monitoring BI report for warehouses with Power BI and providing a complete overview of the processes by choosing metrics with the Balanced Scorecard method[14]. The last application improves information retrieval by applying a Nearest Neighbots model with a novel distance algorithm. This model has been deployed into Azure Machine Learning for on ¬the ¬go material search and to an Azure VM for scheduled data processing, loading the results back into the database. In the end, it is possible to perform a search for construction materials through a flask developed web app by interacting with both model deployments to obtain the results.A gestão da cadeia de abastecimento é a gestão de matéria prima desde a sua fonte até ao destino como produto final[11]. Empresas de construção também estão envolvidas numa cadeia, ao ter de obter os materiais de que necessitam e realizar o abastecimento dos seus locais de construção. Nesta gestão estão incluídos materiais de variadas formas e tamanhos. Dependendo do envolvimento da empresa, elas podem fazer a procura do melhor fornecedor para o produto em necessidade; podem também tratar da logística, que se pode tornar complexa se incluir importações; e finalmente do armazenamento do produto para posterior distribuição. Para melhorar a gestão destes processos, é necessário fazer a recolha de dados. Existem vários tipos de software denominados de Enterprise Resource Planning (ERP) que ajudam na administração de dados de diferentes áreas empresariais, incluindo a de cadeia de abastecimento. Através destes tipos de software, é possível ao colaborador interagir com uma base de dados adaptada a processos de OLTP. Isto permite processos de extração de informação, criação de requisições e gestão de inventário. Com o crescimento da atividade de uma empresa, a quantidade de dados também cresce. Aplicações de analítica tornam-¬se muito úteis, pois permitem não só uma melhor monitorização desses dados, como também uma melhor optimização dos processos existentes. Mas a implementação de novas aplicações é dificultada pelo efeito de botteneck criado na fonte de dados devido à sua grande requisição. Existem serviços de cloud especializados na implementação de novos ambientes de dados. Esses serviços incluem data lakes para armazenamento de todo o tipo de informação, plataformas de execução de código em modo serverless para realizar transformações, máquinas virtuais para virtualizar ambientes computacionais locais, e plataformas de aprendizagem automática para realizar tarefas de machine learning. Estes serviços são atualizados com uma periodicidade muito frequente, incluindo novas utilidades para o cliente. É também possível interligar todos estes serviços de maneira a automatizar processos ¬ e combinando de diferentes formas, programadores conseguem desenvolver uma nova infraestrutura para suportar inovações dentro da empresa. A Mota¬Engil é o sujeito de estudo para este projeto. É um conglomerado português, líder no sétor da construção, com atividade em mais de 20 países, incluindo no continente Africano e Americano. A cadeia de abastecimento inclui logística intercontinental entre continentes e gestão de múltiplos armazéns em mais de 20 países. O software de gestão empresarial é o SAP S/4HANA e é hospedado localmente nos escritórios da empresa. De momento não existe nenhuma base de dados dedicada a aplicações de analítica. De maneira a aumentar as oportunidades de inovação dentro da empresa, criei um canal de ETL que retira dados de um sistema de ficheiros local e exporta tudo para a Azure cloud. Inicialmente, os ficheiros são exportados para o Azure Data Lake Storage (ADLS), encontrando-¬se em múltiplos formatos, com erros na formatação das colunas e inconsistências. Para standardizar os dados, utilizo Azure Functions que transforma os dados e converte para formato CSV. No final, é feito o carregamento dos ficheiros CSV para o Azure SQL Database usando comandos T¬SQL. Para comunicar com todos os serviços de cloud, utilizo comandos do Azure CLI que permitiram automatização em scripts de linguagem Bash. Com a conclusão do ETL e da construção do esquema de dados, obteve¬se uma base de dados completamente disponível e adaptada a processamento analítico. Apoiando a estrutura neste resultado, foi possível construir duas aplicações de data science que melhoram partes do processo da cadeia de abastecimento dentro da empresa. A primeira ideia a ser implementada foi a criação de um report de BI para os armazéns em África. Até 2020, os relatórios eram criados em ficheiros Excel, e os dados eram agregados para formar métricas de valor de estoque por mês, valor de estoque consumido e rotação. Para melhorar a monitorização dos armazéns, criei um novo relatório em Microsoft Power BI que fornece novos indicadores dos processos de armazém com base no método do Balanced Scorecard[14]. O relatório em Power BI importa os dados diretamente do Azure SQL Database com recurso a views especializadas ao seu uso no relatório. O relatório contém três páginas, incluíndo duas para monitorizar o estoque em armazém, e outra página dedicada ao consumo de materiais. Também existem utilidades que ajudam colaboradores a explorar dados e outras que facilitam a compreensão do relatório. A segunda e última aplicação tenta melhorar a extração de informação sobre materiais. A tarefa a ser optimizada encontra¬se no início da cadeia de abastecimento. Utilizadores ao criarem uma nova requisição, precisam especificar os materiais em necessidade. O SAP permite procurar com recurso a wildcard (*), mas nao permite uma procura aproximada, ou seja, não retorna materiais quando é feita uma procura contendo pequenas divergências do material existente na base de dados (como erros de ortografia). Para melhorar este processo de extração, decidi utilizar um modelo de NearestNeighbors (NN) em conjunto com um novo algoritmo de distância customizado ao problema em análise. O algoritmo de distância inclui o calculo da distância de Levenshtein[18], e generalizada a descrições de materiais. Num estudo de optimização de processamento com várias implementações do modelo de NN, concluiu¬-se que é mais eficiente realizar o cálculo de distâncias em paralelo e adaptado, antes de fornecer como argumento ao modelo de NN. O modelo foi introduzido no Azure Machine Learning e criado um endpoint com o qual é possível realizar pedidos para obter os materiais mais próximos. O modelo também foi incluído no aprovisionamento de uma máquina virtual para processamento periódico de código. Para fazer este aprovisionamento, foi utilizado Ansible, uma ferramenta de automatização para inicializar aplicações e configurado o processamento periódico através de um novo cronjob na máquina virtual. No final do processamento, é criada uma nova tabela na base de dados com clusters de materiais. Para concluir este projeto, criei uma aplicação em flask que obtém os resultados dos dois serviços. Com o endpoint do Azure Machine Learning, a aplicação obtém os resultados mais próximos de uma consulta feita na barra de procura. Ao realizar esta procura, é calculado a distância entre a consulta e as descrições existentes na base de dados, retornando os dez resultados mais próximos. Com os resultados do processamento periódico na base de dados, utilizo ferramentas crio uma consulta especializada que retorna os resultados mais próximos do material pretendido. A última consulta acaba por ser mais rápida para obter resultados porque os dados já estão processados na base de dados, ao contrário do modelo em Azure Machine Learning que tem de processar os resultados sempre que uma consulta é feita. Ao desenvolver os algoritmos e infraestrutura para estas aplicações, também disponibilizei ferramentas que facilitam futuras implementações. Por exemplo, a máquina virtual de processamento periódico pode realizar mais tarefas, incluindo o próprio processo de ETL. E o modelo de procura também poderá ser utilizado para outras tarefas de information retrieval, como a procura de peças por número de peça.Falcão, André Osório e Cruz de AzerêdoRepositório da Universidade de LisboaFonseca, Gustavo Silva2022-03-18T18:41:21Z202120212021-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10451/51844TID:202994295enginfo:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2023-11-08T16:56:48Zoai:repositorio.ul.pt:10451/51844Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T22:03:04.408126Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
dc.title.none.fl_str_mv Optimization of supply chain processes with an ETL pipeline & data science applications
title Optimization of supply chain processes with an ETL pipeline & data science applications
spellingShingle Optimization of supply chain processes with an ETL pipeline & data science applications
Fonseca, Gustavo Silva
Cadeia de Abastecimento
Construção
Nuvem
ETL
Ciência de Dados
Teses de mestrado - 2021
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
title_short Optimization of supply chain processes with an ETL pipeline & data science applications
title_full Optimization of supply chain processes with an ETL pipeline & data science applications
title_fullStr Optimization of supply chain processes with an ETL pipeline & data science applications
title_full_unstemmed Optimization of supply chain processes with an ETL pipeline & data science applications
title_sort Optimization of supply chain processes with an ETL pipeline & data science applications
author Fonseca, Gustavo Silva
author_facet Fonseca, Gustavo Silva
author_role author
dc.contributor.none.fl_str_mv Falcão, André Osório e Cruz de Azerêdo
Repositório da Universidade de Lisboa
dc.contributor.author.fl_str_mv Fonseca, Gustavo Silva
dc.subject.por.fl_str_mv Cadeia de Abastecimento
Construção
Nuvem
ETL
Ciência de Dados
Teses de mestrado - 2021
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
topic Cadeia de Abastecimento
Construção
Nuvem
ETL
Ciência de Dados
Teses de mestrado - 2021
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
description Trabalho de Projeto de Mestrado, Ciência de Dados, 2021, Universidade de Lisboa, Faculdade de Ciências
publishDate 2021
dc.date.none.fl_str_mv 2021
2021
2021-01-01T00:00:00Z
2022-03-18T18:41:21Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10451/51844
TID:202994295
url http://hdl.handle.net/10451/51844
identifier_str_mv TID:202994295
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799134581100642304