Baixe o app para aproveitar ainda mais
Prévia do material em texto
12/11/2022 12:50 Unidade 4 - Engenharia de Dados https://student.ulife.com.br/ContentPlayer/Index?lc=NeYFgjIsmC21uEMYlNo%2bTA%3d%3d&l=%2b5sAQGbP8Ew3Ffe85SC%2bsg%3d%3d&c… 1/27 ENGENHARIA DEENGENHARIA DE DADOS DADOS UNIDADE 4.UNIDADE 4. ENTENDIMENTO EENTENDIMENTO E APLICAÇÃO DAAPLICAÇÃO DA APRENDIZAGEM DEAPRENDIZAGEM DE MÁQUINA MÁQUINA Autor: Juracy Araujo de Almeida Junior Autor: Juracy Araujo de Almeida Junior Revisor: Johannes Von Lochter Revisor: Johannes Von Lochter INICIAR Introdução Vivemos em um tempo em que os dados passaram a ter uma grande relevância no apoio a decisões e no suporte estratégico de gestores e organizações. A utilização inteligente desses dados passou a ter um grau de importância nas empresas, a ponto de estarem, muitas vezes, em destaque no seu plano estratégico. Esse emprego dos dados não é uma tarefa trivial e simples de ser implementada, pois exige um bom entendimento do que se deseja alcançar, bem como o desenvolvimento de soluções que permitam alcançar esse objetivo. Para ajudar nessa demanda, a engenharia e a ciência de dados apresentam diversas opções em tecnologias e paradigmas, voltadas à extração de valor a partir dos dados. 12/11/2022 12:50 Unidade 4 - Engenharia de Dados https://student.ulife.com.br/ContentPlayer/Index?lc=NeYFgjIsmC21uEMYlNo%2bTA%3d%3d&l=%2b5sAQGbP8Ew3Ffe85SC%2bsg%3d%3d&c… 2/27 Assim, nesta unidade, discorreremos sobre as necessidades e funcionalidades, que podem ser atendidas com a utilização dos dados com um olhar voltado às demandas de negócios, veremos como é possível extrair e organizar os dados necessários, assim como realizar esse processo com a utilização de soluções específicas para essa atividade de captura e movimentação dos dados. 4.1 Conhecendo as funcionalidades do projeto prático de engenharia de dados Nos últimos anos, passamos a vivenciar uma verdadeira inundação de dados, motivado, principalmente, pela popularização da Internet, a chegada de dispositivos móveis conectados e o desenvolvimento de tecnologias, apenas alguns dos motivos que fortaleceram a circulação e produção em escala de dados. Tudo isso fez com que a academia e empresas de TI passassem a se preocupar em como processar esse grande volume, já que, até então, a grandeza de dados existente era aderente às soluções computacionais do momento. Não distante desse fato, o mercado, seja na área pública ou privada, também percebeu que poderia extrair muito mais valor de seus dados, demandando, de modo relevante, o desenvolvimento de soluções e funcionalidades que o ajudassem, de modo mais inteligente, nas tomadas de decisões das mais distintas áreas, como saúde, educação, ciências contábeis, comércio, entre outras. Nesse contexto, a engenharia de dados busca atender as necessidades de negócio, capturando os diversos tipos e fontes de dados para dar suporte na extração de valor. Aderente a esse suporte, ter o conhecimento da área de negócio adiciona um olhar estratégico, voltado para assuntos de interesse da organização e alinhado com os objetivos buscados. As características e peculiaridades precisam ser considerados na análise dos dados, pois impactam no comportamento desses. Aqui estamos falando, por exemplo, em conhecer o cliente, quais seus hábitos, suas preferências, quais indicadores ou métricas interessam à empresa, como os concorrentes estão agindo em determinadas situações e outros mais. Para que o resultado dessa engenharia sobre os dados apresente um bom resultado, além de mapear as necessidades do negócio , se faz necessário, também, realizar o 12/11/2022 12:50 Unidade 4 - Engenharia de Dados https://student.ulife.com.br/ContentPlayer/Index?lc=NeYFgjIsmC21uEMYlNo%2bTA%3d%3d&l=%2b5sAQGbP8Ew3Ffe85SC%2bsg%3d%3d&c… 3/27 entendimento das diversas formas que os dados podem assumir, visto que estes serão os insumos para o trabalho de análise dos dados. 4.1.1 Mapeando os Dados com as Necessidades de Negócios O processo de levantamento de necessidades é um passo importantíssimo no desenvolvimento de qualquer atividade onde o executor não possui a expertise suficiente do processo e da área de negócio envolvido. É. a partir desse mapeamento, que adquirimos o embasamento necessário para um planejamento e ação, de forma mais eficiente, otimizando o esforço e minimizando os custos. Quando pensamos em soluções de TI, temos a engenharia de requisitos, ramo da engenharia de software que provê técnicas e conceitos, que darão suporte a esse levantamento do que se deseja e é necessário ser construído. Uma boa descrição de como esse levantamento de requisitos pode ser feito é visto nesse trecho: Trazendo para o mundo da engenharia de dados, temos que utilizar de meios para identificar, junto aos gestores e envolvidos, quais são as perguntas que podem ser respondidas através de dados, dentre elas podemos exemplificar: Tipos de perguntas » Clique nas setas ou arraste para visualizar o conteúdo A primeira etapa do processo é “pergunte” e busca identificar qual o problema, o que outros fizeram no sentido de resolvê-lo e quais as restrições que se aplicam. Em seguida, “imagine” quais são algumas soluções, pense em alternativas, escolha a melhor solução. Então, “planeje” desenhando um diagrama e preparando uma lista do que precisa; “crie” seguindo seu plano e teste os resultados. Por fim, “melhore” discutindo o que funciona, o que não funciona e o que poderia ser melhor, modifique o seu projeto para melhorá-lo e teste novamente (VAZQUEZ; SIMÕES, 2016, p. 19). das estratégias da organização? 12/11/2022 12:50 Unidade 4 - Engenharia de Dados https://student.ulife.com.br/ContentPlayer/Index?lc=NeYFgjIsmC21uEMYlNo%2bTA%3d%3d&l=%2b5sAQGbP8Ew3Ffe85SC%2bsg%3d%3d&c… 4/27 Enfim, são essas e outras questões que o mapeamento dos dados em aderência ao negócio tendem a responder. Entretanto, extrair essas perguntas junto aos envolvidos nem sempre é uma tarefa simples, visto que muitas vezes os participantes são de níveis hierárquicos e possuem vivências distintas, com cada um trazendo suas necessidades, e nem sempre considerando o todo, tratando apenas da sua parte. Aproveitando do texto de Vazquez e Simões (2016), podemos utilizar do processo sugerido, realizando algumas adaptações à área de dados. Primeiro devemos Perguntar aos envolvidos que apresentem questões estratégicas da organização e muito solicitadas pelos gestores. Por isso, é importante motivar os envolvidos a expor temas às perguntas que envolvam áreas de assuntos dos negócios, e que são essenciais para organização. Por exemplo, quantas filiais obtiveram crescimento em faturamento nos meses de março e abril, em comparação ao ano passado? Ou qual o perfil de cliente que mais realiza compra em lojas de determinado bairro em dias de semana? Qual a média de estornos e impacto no faturamento por loja e período? A segunda etapa é imaginar ou visualizar como essas questões e dados podem ser apresentados e se realmente colaboram para decisões, visto que um grande esforço pode ser desperdiçado se essa análise não for realizada. Seguindo para etapa de Planejamento, deve-se organizar como e quais dessas necessidades serão atendidas, qual a prioridade, quem será o responsável por validar, e qual equipe irá desenvolver e coletar esses dados, ou seja, estruturar como será atendido. Como a exploração desses elementos de informação podem dar maior suporte à tomada de decisão? De que maneiras pode-se encontrar novas oportunidades e minimizar ameaças? Como está o comportamento da minha organização ao longo dos períodos? 12/11/2022 12:50 Unidade 4 - Engenharia de Dados https://student.ulife.com.br/ContentPlayer/Index?lc=NeYFgjIsmC21uEMYlNo%2bTA%3d%3d&l=%2b5sAQGbP8Ew3Ffe85SC%2bsg%3d%3d&c… 5/27 Após isso, a equipe de dados realiza o mapeamento das informações de onde estão as fontes dos dados, e iniciam a extração desses para criação do repositório, que responderá às perguntas de negócio. Podem, por exemplo, criar e preparar uma base de dados como um Data Warehouse(DW) . Com o DW, as perguntas, principalmente as que necessitam de olhar sobre o histórico e cruzamento de dados, poderão ser respondidas. Outra opção poderia ser a criação do conjunto de dados, para servir de fonte para aplicação da aprendizagem de máquina para descoberta de conhecimento, como identificação de grupos ou perfis, e até realização de predições. Esse fluxo tem sua primeira interação finalizada com a etapa de Melhoria , que visa realizar uma autoavaliação com foco na evolução sobre o que está construído e, dessa maneira, fazer com que a percepção de valor sobre os dados aumente cada vez mais. Esse processo será constante e permanecerá sempre sendo reiniciado, pretendendo atender cada vez mais às necessidades que os dados podem responder. O Infográfico 1 representa esse fluxo. Infográfico 1 - Processo de mapeamento das necessidades com os dados Data Warehouse representa uma grande base de dados capaz de integrar, de forma concisa e confiável, as informações de interesse para a empresa, que se encontram espalhadas pelos sistemas operacionais e em fontes externas, para posterior utilização nos sistemas de apoio à decisão. (MACHADO, 2004, p. 22) 12/11/2022 12:50 Unidade 4 - Engenharia de Dados https://student.ulife.com.br/ContentPlayer/Index?lc=NeYFgjIsmC21uEMYlNo%2bTA%3d%3d&l=%2b5sAQGbP8Ew3Ffe85SC%2bsg%3d%3d&c… 6/27 Fonte: VAZQUEZ; SIMÕES, 2016, p. 19. (Adaptado). Kimball e Ross (2013) apresentam uma metodologia de mapeamento dos dados com as necessidades de negócio voltado, primordialmente, para a construção de Data Warehouse, mas que pode se encaixar ao nosso estudo. Essa metodologia é voltada para a construção de uma matriz denominada de “bus matrix”. Segundo os autores, a matriz serve como uma ferramenta útil para divulgar os benefícios potenciais de dados. A proposta da “bus matrix” é que através da representação do negócio e descritores, possamos representar as atividades primárias da organização, possíveis envolvimentos e cruzamentos dos dados. No Quadro 1, temos um exemplo da “bus matrix” de uma empresa de varejo, e no mapeamento dos dados alinhado com as necessidades, percebe-se que, no assunto Pedidos de Clientes, são envolvidas as áreas e dados de PRODUTO, LOJA e CLIENTE. Já para o assunto Estoque, temos o envolvimento de LOJA e do FORNECEDOR. Esses dois exemplos podem ter sido originados por questões dos gestores que desejam, por exemplo, responder à pergunta de como acompanhar quais produtos e lojas realizam mais pedidos de clientes, e qual não loja está com o estoque adequado para essa demanda. Observamos que são algumas questões, que esses dados e seu cruzamento podem ser alcançados pelos gestores a partir do processo de coleta e estruturação correta. Quadro 1 - Exemplo de “bus matrix” de uma empresa de varejo PROCESSO DE NEGÓCIO PRODUTO LOJA CLIENTE FORNECEDOR Pedidos de Clientes X X X Estoque X X 12/11/2022 12:50 Unidade 4 - Engenharia de Dados https://student.ulife.com.br/ContentPlayer/Index?lc=NeYFgjIsmC21uEMYlNo%2bTA%3d%3d&l=%2b5sAQGbP8Ew3Ffe85SC%2bsg%3d%3d&c… 7/27 Fonte: Elaborado pelo Autor, 2020. 4.1.2 Conhecendo as fontes e os tipos de dados Após o mapeamento das necessidades e identificação dos dados, que serão necessários para coleta e devida exploração, precisamos conhecer como, e de que forma, estão disponibilizados. Além do grande volume, atualmente contamos com uma “infinidade” de fontes e variedade de dados. Pensando em fontes, temos dados sendo gerados a partir de diversos meios, como aplicações comerciais, aplicativos, mensagens, áudios, vídeos, sensores, comentários em redes sociais e muitos outros. Já quando falamos da variedade de dados, Mineli, Chambers e Dhiraj (2013) destacam que podemos ter dados tipificados como: Dados estruturados; Dados semiestruturados; Dados não estruturados. Tradicionalmente, em aplicações operacionais, os dados são armazenados de forma organizada como dados estruturados , seguindo um layout fixo ou em tabelas com tipos definidos (texto, número, data etc.). Os dados estruturados, até pouco tempo, eram os mais utilizados e comuns em sistemas. Temos, como exemplos, os arquivos nos formatos de tabela de banco de dados, planilhas em Excel, arquivos delimitados e muitos outros. Em uma tabela de banco de dados, cada linha representa um conjunto de valores, e cada atributo, uma característica do assunto. Em uma planilha Excel, os dados são Vendas X X X X Comércio Eletrônico X X X 12/11/2022 12:50 Unidade 4 - Engenharia de Dados https://student.ulife.com.br/ContentPlayer/Index?lc=NeYFgjIsmC21uEMYlNo%2bTA%3d%3d&l=%2b5sAQGbP8Ew3Ffe85SC%2bsg%3d%3d&c… 8/27 acomodados similarmente a uma tabela de banco, sendo uma estrutura mais frágil, visto que não possui todas as propriedades e garantias de um banco de dados. Um arquivo delimitado pode ser com valores separados por vírgula, ponto e vírgula ou outro caractere. Também consideramos, como arquivo de dados estruturado, aqueles em que os valores seguem um layout fixo, utilizando um separador. Aqui podemos destacar que essa “estrutura” vai depender do modo como os valores serão armazenados e se seu layout será respeitado. A Figura 1 representa um exemplo de arquivo de dados estruturados, delimitado com o separador vírgula: Figura 1 – Exemplo de Arquivo CSV. Fonte: Elaborado pelo autor, 2020. Como parte de uma estrutura definida, temos os dados semiestruturados . Aqui teremos uma estrutura de dados com flexibilidade maior. Citamos exemplos dados em formato XML (Extensible Markup Language, ou Linguagem de Marcação Estendida) ou JSON (Javascript Object Notation, ou Notação de Objetos Javascript). Segundo Graves (2003), XML “é uma linguagem usada para representar dados como uma string de texto que inclui uma ‘marcação’ intercalada a fim de descrever as propriedades dos dados”. A marcação na XML possibilita explicar o dado, e essa estrutura é flexível de modo que podemos inserir outras marcações, que detalham ainda mais os dados. Como podemos ver a seguir no exemplo de XML representando os dados de um funcionário: <funcionarios> <nome>João</nome> <salario>2300</salario> </funcionario> O JSON é um outro exemplo de formato que tem ganhado grande destaque, principalmente na troca de dados, e está disponível na maioria das linguagens de 12/11/2022 12:50 Unidade 4 - Engenharia de Dados https://student.ulife.com.br/ContentPlayer/Index?lc=NeYFgjIsmC21uEMYlNo%2bTA%3d%3d&l=%2b5sAQGbP8Ew3Ffe85SC%2bsg%3d%3d&c… 9/27 programação. Uma de suas principais características é a facilidade de construção, necessitando de conhecimento apenas do Javascript, linguagem de programação utilizada na web. O JSON é organizado com o conceito chave-valor, em que uma chave é utilizada como atributo, e o dado como o valor. Como no exemplo de notação dos dados no formato JSON a seguir: “Funcionário”: {“nome”: “João”, “salario”: “2300”} Os dados não estruturados se qualificam por não apresentarem uma definição ou layout conhecido e formal. Estes abarcam estruturas desenvolvidas para atender a alta demanda de dados que estamos vivenciando atualmente, exigindo um alto poder de processamento, grandes volumes de dados armazenados sob variados formatos, como documentos de textos, vídeos, áudios, imagens, apresentações eletrônicas e outros. Na arquitetura Apache Hadoop, voltada para processamento e armazenamento de grandes volumes de dados, são disponibilizadas estruturas em formatos binários, pensando, justamente, em atender esse alto poder de processamento, variedade e transferência de dados. Estamos falando o Apache Avro e Parquet. Segundo Vohra (2016), o Avro “é um formato de serialização de dados binários compacto que fornece estruturas de dados variadas”. Devido seu formato binário, a estrutura do Avro é bem compacta, possibilitando o trabalho em memória de grandes conjuntos de dados. Segue, na Figura 2, um exemplo de um schema Avro: Figura 2 - Exemplo de schema Avro. Fonte: VOHRA, 2016, p. 305. Já o Parquet também se utiliza de formatobinário, orientado por coluna, provendo uma grande performance, tendo, como característica, que colunas do mesmo tipo são armazenadas em conjunto. Vale destacar que o Avro e o Parquet também suportam dados estruturados, sendo que o ganho do uso desses formatos é a alta performance em consultas, considerando o volume e variedade de dados, que podem ser armazenados. 12/11/2022 12:50 Unidade 4 - Engenharia de Dados https://student.ulife.com.br/ContentPlayer/Index?lc=NeYFgjIsmC21uEMYlNo%2bTA%3d%3d&l=%2b5sAQGbP8Ew3Ffe85SC%2bsg%3d%3d&… 10/27 VOCÊ QUER LER? Para visualizar estudos de casos de Big Data com utilização de dados estruturados e não estruturados, sugere-se a leitura do livro Big Data O Futuro dos Dados e Aplicações , de Felipe Nery Rodrigues Machado. 4.2 Aplicação do projeto prático de engenharia de dados Com o levantamento das necessidades e dos dados, que podem atender esses requisitos identificados, faz-se necessário entender, na prática, como ocorre a captura das fontes envolvidas, quais critérios e pontos de atenção a considerar, quais ajustes ou seleções de dados realizar e, por fim, efetivar a gravação dos dados no formato desejado. Assim, uma das principais aplicações práticas da engenharia de dados visa, justamente, utilizar dos conhecimentos necessários para a combinação de diferentes fontes de dados, aplicando sobre soluções capazes de extrair os dados necessários de diferentes fontes e formatos, aplicando transformações necessárias e, ao fim, realizar a inserção em algum repositório ou arquivo para exploração. A realização desse processo é conhecida em Kimball e Ross (2013) como Extração, Transformação e Carga (ETL) , e segue esse fluxo com etapas e objetivos bem definidos. O Fluxograma 3 representa esse fluxo. Atualmente, existem diversas soluções que auxiliam, facilitam e aceleram bastante esse processo de ETL, atendendo a dados estruturados e não estruturados. Fluxograma 3 – Processo ETL 12/11/2022 12:50 Unidade 4 - Engenharia de Dados https://student.ulife.com.br/ContentPlayer/Index?lc=NeYFgjIsmC21uEMYlNo%2bTA%3d%3d&l=%2b5sAQGbP8Ew3Ffe85SC%2bsg%3d%3d&… 11/27 Fonte: SHARDA; DELEN; TURBAN, 2019, p. 174. (Adaptado). Dentre as aplicações do ETL, podemos utilizar, para cargas de Data Warehouses, integração de dados ou extração de dados brutos, para formação do chamado Lago de Dados ou Data Lake. Sharma e LaPlante (2018, p. 2) definem Data Lake como “um local central para armazenar todos os seus dados, independentemente de sua fonte ou formato”. Assim, arquivos, bases de dados, XML e JSON, no formato bruto, são guardados em um espaço controlado e disponível, para a organização realizar construção de análises e exploração sobre estes. 4.2.1 Extração A etapa da extração dos dados visa obter os dados das fontes levantadas para, a partir desse passo, ser possível manipular e dar seguimento à estruturação, conforme o requisito de negócio. Segundo Kimball e Ross (2013), “Extrair significa ler e compreender os dados de origem e copiar os dados necessários para o sistema ETL para posterior manipulação”. Entretanto, apesar desse passo aparentar ser uma simples cópia dos dados, algumas questões devem ser consideradas e podem impactar no serviço. São elas: Avaliação das estruturas dos dados na fonte; Conhecimento das características do sistema de arquivo ou do Sistema de Gerenciamento do Banco de Dados (SGBD), em que se encontra a fonte de dados; Qualidade dos dados; Verificação de permissão de acesso aos dados. 12/11/2022 12:50 Unidade 4 - Engenharia de Dados https://student.ulife.com.br/ContentPlayer/Index?lc=NeYFgjIsmC21uEMYlNo%2bTA%3d%3d&l=%2b5sAQGbP8Ew3Ffe85SC%2bsg%3d%3d&… 12/27 A avaliação da base, ou sistema de arquivos, é necessária para o entendimento do modelo e estruturas que serão capturadas. Já o conhecimento do sistema de arquivo, ou do SGBD, descreve o quanto é importante conhecer o formato em que estão os dados na origem, para assim ser definida a tecnologia ou solução que possa conectar e consumir essa estrutura. Essa diversidade de fontes pode apresentar dados estruturados e não estruturados. A qualidade de dados trata de avaliar como os dados estão na fonte, visto que, se estiverem com valores nulos, sujos, caracteres especiais, outro idioma ou outros, poderão impactar na extração, causando muitos erros e necessitando de tratamento. Por fim, é essencial garantir o acesso com permissões aos dados a serem extraídos. 4.2.2 Transformação Nessa segunda etapa do processo ETL, são realizadas tarefas que buscam manipular o dado com o foco em qualificá-lo, aplicar uma correção ou até construir um novo dado, que atenda uma necessidade levantada a partir dos valores recebidos. A transformação realiza limpeza e preparação dos dados para inserção na estrutura final. Kimball e Ross (2013) destacam que, na transformação, podem ser realizadas: Realizações da transformação » Clique nas setas ou arraste para visualizar o conteúdo caracteres especiais;normalização de valores monetários em uma única moeda. Suponha que, nos dados, existam valores na moeda Dólar e em Real, assim, poderá ser estabelecido um padrão e conversão para todos os valores monetários em Real; Tratar de elementos ausentes. Por exemplo, aplicar um valor que identifique “ausência de valor como ‘ 1’” “não 12/11/2022 12:50 Unidade 4 - Engenharia de Dados https://student.ulife.com.br/ContentPlayer/Index?lc=NeYFgjIsmC21uEMYlNo%2bTA%3d%3d&l=%2b5sAQGbP8Ew3Ffe85SC%2bsg%3d%3d&… 13/27 Na etapa de transformações, existem outras manipulações e construções, que podem ser realizadas para atender as necessidades mapeadas para o negócio. Através da utilização de soluções específicas de ETL, ou até com linguagens como o SQL (linguagem de consulta estruturada para banco de dados), JAVA e outras, podem ser usadas expandindo as possibilidades. 4.2.3 Carga de dados A carga de dados é a etapa responsável por preencher as estruturas de destinos com os devidos elementos selecionados e tratados, já atendendo as necessidades levantadas. Nesse ponto, deve-se atentar para questões ligadas a performance, e se o conjunto de valor que identifique ausência de valor, como -1 , não identificado”, “inexistente” entre outros; Combinar dados de múltiplas fontes. Por exemplo, inserir informações do CEP de dados oriundos dos Correios da tabela de bairros; Separar dados que precisam ser carregados para estruturas ou repositórios diferentes. Por exemplo, do arquivo de contribuintes, separar em dados de pessoa física e dados de pessoa jurídica; Ainda podemos considerar construção de valores agregados ou resultantes de expressões. Por exemplo, a criação de um atributo, que representa o Valor faturado anual, resultante da sumarização dos valores de todos meses do valor faturado mês, ou ainda a criação do atributo lucro a ser obtido a partir do cálculo sobre faturado e custos. 12/11/2022 12:50 Unidade 4 - Engenharia de Dados https://student.ulife.com.br/ContentPlayer/Index?lc=NeYFgjIsmC21uEMYlNo%2bTA%3d%3d&l=%2b5sAQGbP8Ew3Ffe85SC%2bsg%3d%3d&… 14/27 dados recebido no destino está válido. A performance chama atenção para que essa etapa final não impacte tanto no ambiente e que, pelo volume de dados, também seja executado em um tempo aceitável. Sobre a validação dos dados na carga, visa verificar se a quantidade e o conjunto de dados enviados correspondem ao que foi inserido, sendo sugerido realizar um acompanhamento de log e batimento dos dados. 4.2.4 Soluções de ETL Nesse ponto, conheceremos detalhes de algumas das aplicações de mercado, que realizam ETL buscando atender demandas que a engenharia de dados visa resolver. Conheceremos as ferramentas Talend Data Integration Studio e o Microsoft SQL Server Integration Service. » Talend Data Integration Studio O Talend Data Integration Studio é uma solução de código aberto, que pode ser utilizada para projetos e gerenciamento de dados de qualquer tipo ou volume. O Talend é um software que permite a conexão, o acesso e a transformaçãode dados. Segundo informações do site oficial, com o Talend Data Integration, é possível: Realizar a integração de dados ponta a ponta, através de interface simples, com o uso da caixa de ferramentas visuais; Acelerar o desenvolvimento e resolver problemas complexos sem escrever código; Trabalhar de forma colaborativa, através do controle de versões; Testar, depurar e executar com facilidade; Realizar a gestão para distribuição, controle e monitoramento das integrações e cargas de dados. Sendo uma ferramenta para realização de integração e ETL, o Talend Data Integration permite obtenção e carga para as mais diferentes fontes e tipos de dados. Observando a Figura 3, está, em destaque, parte dos conectores, que podem ser utilizados nos processos de carga dentro da ferramenta. Destaca-se que temos conectores para bases 12/11/2022 12:50 Unidade 4 - Engenharia de Dados https://student.ulife.com.br/ContentPlayer/Index?lc=NeYFgjIsmC21uEMYlNo%2bTA%3d%3d&l=%2b5sAQGbP8Ew3Ffe85SC%2bsg%3d%3d&… 15/27 de dados, envolvendo os principais sistemas de gerenciamento de bancos de dados: Oracle, Sql Server, PostgreSQL, DB2, entre outros. Além desses conectores, também existem outros que prestigiam arquivos delimitados, atendendo dados estruturados e semiestruturados. Figura 3 – Conectores no Talend Data Integration. Fonte: Elaborado pelo autor, 2020. São inúmeros os conectores oferecidos na solução, prestigiando, também, fontes de dados na nuvem, soluções de grandes dados, dados não estruturados, como o Parquet e Avro, utilização junto do ecossistema Hadoop, Spark e muitos outros, sempre voltados para a realização de integração e ETL de dados entre ambientes. Para as transformações dos dados, a paleta de objetos oferece diversas ferramentas para, por exemplo, a realização de agregações, retiradas de duplicidades, filtros e outros. Inclusive, é possível a aplicação de códigos em Java, expandindo as possibilidades. Na Figura 4, podemos observar um exemplo de ETL simples no Talend, extraindo os dados de um arquivo delimitado CSV, componente nomeado de CSVPRODUTO, realizando eventuais transformações através do componente tMap e carregando, no destino, uma tabela Oracle, representada pelo componente tDBOtput_1. 12/11/2022 12:50 Unidade 4 - Engenharia de Dados https://student.ulife.com.br/ContentPlayer/Index?lc=NeYFgjIsmC21uEMYlNo%2bTA%3d%3d&l=%2b5sAQGbP8Ew3Ffe85SC%2bsg%3d%3d&… 16/27 Figura 4 – Exemplo de ETL no Talend Open Studio. Fonte: Elaborado pelo autor, 2020. O Talend funciona organizado em Jobs ou mapeamentos, estruturas onde os objetos envolvidos no ETL são posicionados e configurados, podendo ser adicionados conectores de fontes de dados, objetos de transformações, saídas de dados, tratamentos de erros, logs e muito mais. » Microsoft SQL Server Integration Service O Microsoft SQL Server Integration Service (SSIS) é uma solução que faz parte da suíte de Business Intelligence, desenvolvida pela Microsoft, mas assim como o Talend, é utilizado para integrações e ETL. Segundo a documentação do SSIS (2020), trata-se de uma plataforma para criar integração de dados em nível empresarial e soluções de transformação de dados. Dentre os problemas que podem ser resolvidos com o SSIS, segundo documentação, destacam-se: Copiar ou baixar arquivos, carregando para data Warehouse, limpando e minerando dados e gerenciando objetos e dados; Extrair e transformar dados em uma ampla variedade de fontes, como arquivos de dados XML, arquivos simples e fontes de dados relacionais, e transferir dados para um ou mais destinos; Através de um conjunto avançado de tarefas internas e transformações, as ferramentas gráficas possibilitam criar pacotes e o banco de dados em que você 12/11/2022 12:50 Unidade 4 - Engenharia de Dados https://student.ulife.com.br/ContentPlayer/Index?lc=NeYFgjIsmC21uEMYlNo%2bTA%3d%3d&l=%2b5sAQGbP8Ew3Ffe85SC%2bsg%3d%3d&… 17/27 armazena, executa e gerencia; Devido sua interface gráfica, é possível criar soluções sem escrever uma única linha de código. Assim como na maioria das ferramentas de ETL e integração, o SSIS oferece Suporte para os principais sistemas de arquivos e SGBS, dados na nuvem, suporte para o HDFS (sistema de arquivos do Hadoop), Conectores para SAP BW e muitos outros, atendendo, de forma similar, dados estruturados, semiestruturados e não estruturados. Além de diversos conectores e ferramentas, o SSIS permite, nas transformações, a utilização de funções em SQL e internas, expandindo as possibilidades como, por exemplo, execução de funções de banco, ou tratamento de textos e outros mais. No SSIS, a construção do ETL segue uma estrutura desenhada em Pacotes (Package), que possuem Tarefas (Task) que, por sua vez, têm o Fluxo de dados (Data Flow), uma estrutura que contém os objetos com as fontes de dados, transformações e objetos de destinos da carga. Figura 5 – Exemplo do fluxo e de dados no SSIS. Fonte: SSIS, 2020. Na Figura 5, é possível ver a representação de um exemplo de fluxo de dados no SSIS, que tem como objetivo capturar alterações nas fontes de dados e tratar em destinos 12/11/2022 12:50 Unidade 4 - Engenharia de Dados https://student.ulife.com.br/ContentPlayer/Index?lc=NeYFgjIsmC21uEMYlNo%2bTA%3d%3d&l=%2b5sAQGbP8Ew3Ffe85SC%2bsg%3d%3d&… 18/27 específicos. Vamos praticar Como sugestão de aprimoramento das possibilidades ligadas a soluções ETL, é recomendado conhecer a solução da Amazon AWS Data Pipeline, serviço de ETL na nuvem, que possibilita a movimentação e transformação de dados. Acesse pelo link:< https://aws.amazon.com/pt/datapipeline/ >. 4.3 Apresentação da solução do projeto prático de engenharia de dados Neste tópico, veremos uma solução prática de ETL utilizando o Talend Data Integration. No nosso mapeamento dos dados em alinhamento com o negócio, identificamos que uma empresa, do ramo do varejo, possui os dados de produtos cadastrados em um sistema de um terceiro, e os valores dos produtos disponibilizados pelos fornecedores à parte. Dentre as questões levantadas pelos gestores, existe a necessidade de acompanhar os preços de compras dos produtos e seus detalhes para futura análise em ferramenta de apoio à decisão, o DW, comparando os custos em cada trimestre. Das estruturas disponibilizadas e necessárias para esse trabalho, descrevemos, na Figura 6, o arquivo CSV, extraído do sistema de produto, e o arquivo XML, disponibilizado pelos fornecedores com os preços. Figura 6 – Dados de produtos em CSV e dos preços em XML. Fonte: Elaborado pelo autor, 2020. https://aws.amazon.com/pt/datapipeline/ 12/11/2022 12:50 Unidade 4 - Engenharia de Dados https://student.ulife.com.br/ContentPlayer/Index?lc=NeYFgjIsmC21uEMYlNo%2bTA%3d%3d&l=%2b5sAQGbP8Ew3Ffe85SC%2bsg%3d%3d&… 19/27 Esses dados deverão ser extraídos, realizar algumas transformações, relacioná-los e, por fim, inseri-los em uma tabela do banco de dados Oracle. Dessa forma, teremos um ETL utilizando de dados estruturados e semiestruturados. No Oracle, banco de dados relacional, teremos uma tabela com a seguinte estrutura, apresentada na Figura 7. Figura 7 – Tabela de destino do ETL. Fonte: Elaborado pelo autor, 2020. 4.3.1 Importando as fontes de dados para extração A primeira etapa a realizar no Talend é realizar a configuração do metadados, que são as estruturas onde serão definidos os arquivos e fontes de dados a serem utilizados nos mapeamentos de ETL. Como trabalharemos com duas fontes de dados, temos que realizar a importação da estrutura de um arquivo do tipo XML e do tipo CSV. A Figura 8 demonstra o passo a passo para importarmos a estrutura do arquivo XML: 12/11/2022 12:50 Unidade 4 - Engenharia de Dados https://student.ulife.com.br/ContentPlayer/Index?lc=NeYFgjIsmC21uEMYlNo%2bTA%3d%3d&l=%2b5sAQGbP8Ew3Ffe85SC%2bsg%3d%3d&… 20/27 Figura 8 – Importando o metadados do XML para o Talend. Fonte: Elaborado pelo autor, 2020. Na Figura 8, primeiramente, pedimos para criar um metadados do tipo XML, e no passo seguinte, atribuímosum nome da estrutura, no caso PrecosProduto. No passo seguinte, devemos definir se o XML será utilizado como fonte de dados (Input) ou se será Saída/Destino (Output), significando que será o alvo da carga. Na terceira etapa, selecionamos o arquivo XML e a própria solução irá interpretar as marcações. Ao dar Next, no quarto passo, devemos configurar o caminho e os atributos do XML, através das marcações. Feito isso, os atributos são identificados na quinta etapa e atribuímos um nome para o objeto, finalizando a configuração. Para configuração da fonte do tipo CSV, também é necessário configurar o File Delimited no metadados, e utilizar o assistente que apoia na configuração da fonte. 4.3.2 Transformação e carga dos dados no banco de dados Com as fontes de dados configuradas, chega o momento de criarmos uma Job/Mapeamento para realizarmos o ETL, estabelecendo as fontes de dados para extração, transformação e carga. Para criar o Job, é preciso ir à árvore de objetos no canto esquerdo da tela, expandir a opção Job Designs e, então, clicar com o botão direito e selecionar Create Job . Nesse instante, criaremos e daremos um nome para o Job. Na área de trabalho do Job, a primeira a coisa a ser realizada é trazer as fontes de dados. Para isso, basta ir novamente em Metadados, clicar na fonte do XML e arrastar para área de trabalho do Job criado, estabelecendo, como arquivo de entrada, o tFileInputXML. Da mesma maneira, realizar com a fonte do arquivo CSV, mas escolhendo o tFileInputDelimited. Após esse passo, na paleta de objetos selecionar o componente tMap , que permitirá realizar a junção e transformação dos dados. O objeto tMap possibilita relacionarmos conjuntos de dados, criarmos expressões, aplicar transformações e conduzir o resultado para carga no objeto destino. 12/11/2022 12:50 Unidade 4 - Engenharia de Dados https://student.ulife.com.br/ContentPlayer/Index?lc=NeYFgjIsmC21uEMYlNo%2bTA%3d%3d&l=%2b5sAQGbP8Ew3Ffe85SC%2bsg%3d%3d&… 21/27 Antes de configurar o tMap, é necessário conectar as fontes com o tMap, criando fluxos de dados que conectam ambas as fontes com o tMap. Na Figura 9, é possível ver a conexão já realizada entre os Objetos e o tMap destacado em verde: Figura 9 – Fontes de dados configuradas com o TMap para Transformações e Objeto de destino. Fonte: Elaborado pelo autor, 2020. Outra etapa que é necessária realizar antes de proceder com as transformações, é estipular o objeto de destino, no caso, para a tabela TMP_PRODUTOPRECO. Para isso, devemos utilizar do componente de Destino tOracleOutput, onde será configurado o acesso ao banco Oracle, o tipo de carga, INSERÇÃO, ATUALIZAÇÃO e a definição da tabela. Na Figura 9, foi possível ver o componente tDBOutput_1 representando esse objeto no Job, em destaque de vermelho. É importante, também, criar um fluxo de dados do tMap_1 para o objeto de destino de carga. Feito essa etapa, devemos clicar no tMap_1 e configurar o relacionamento entre as fontes, já que nosso objetivo é associar esses dados e realizar algumas transformações. Além disso, vamos fazer o mapeamento do resultado para o objeto de destino da carga, o tDBOutput_1. Na Figura 10, estão representadas as configurações do tMap_1 que foram necessárias: 12/11/2022 12:50 Unidade 4 - Engenharia de Dados https://student.ulife.com.br/ContentPlayer/Index?lc=NeYFgjIsmC21uEMYlNo%2bTA%3d%3d&l=%2b5sAQGbP8Ew3Ffe85SC%2bsg%3d%3d&… 22/27 Figura 10 – Transformações dos Dados e mapeamento para o objeto de destino. Fonte: Elaborado pelo autor, 2020. Analisando o mapeamento da Figura 10, observamos que a associação entre as fontes do tipo CSV e XML é realizada através do atributo cod_produto. Isso é representado ao lado esquerdo da figura. Já no mapeamento para o objeto de destino, nomeado de carga, mas com a estrutura da tabela TMP_PRODUTOPRECO, podemos observar as seguintes transformações: Conversão do tipo de dado do cod_produto de uma das fontes que é do tipo inteiro para o tipo BigDecimal. Esse é código em Java: new BigDecimal(Integer.toString(row2.cod_produto)); Transformação do valor do nome do produto para MAIÚSCULO, através do código StringHandling.UPCASE(row2.nom_produto); Conversão do tipo de dado do preço de uma das fontes, que é do tipo float, para o tipo BigDecimal. Esse é código em Java: new BigDecimal(Float.toString(row2.preco)); Observando mais o mapeamento, ainda na Figura 10, é possível verificar que é realizada a associação dos atributos das fontes de dados para os atributos do objeto de saída, identificando as origens e destinos dos dados. Basta verificar que todos os atributos de saída possuem uma entrada equivalente. Na configuração do objeto de saída, foi configurado para ser uma carga do tipo TRUNCATE/INSERT, ou seja, sempre apaga os dados e carrega com base nos dados enviados. Essa ação pode ser vista na Figura 11 a seguir. Figura 11 – Configuração do objeto de destino para TRUNCATE/INSERT. Fonte: Elaborado pelo autor, 2020 Após todas essas configurações, podemos executar o Job e visualizar os dados extraídos, transformados e carregados, ou seja, o ETL sendo executado. 12/11/2022 12:50 Unidade 4 - Engenharia de Dados https://student.ulife.com.br/ContentPlayer/Index?lc=NeYFgjIsmC21uEMYlNo%2bTA%3d%3d&l=%2b5sAQGbP8Ew3Ffe85SC%2bsg%3d%3d&… 23/27 Síntese Caro(a) aluno(a), nessa unidade, vimos que a engenharia de dados apresenta um conjunto de conceitos e práticas voltadas, principalmente, para a exploração e extração de valor, identificados para o negócio. Esse valor, para ser alcançado, necessita de um entendimento das questões levantadas e soluções que os gestores esperam encontrar com o apoio dos dados. Outro ponto importante para utilização dos dados é ter o entendimento dos tipos e formatos em que estes se encontram, pois isso vai interferir, diretamente, no esforço da sua extração. Os dados estruturados são, normalmente, encontrados no formato de tabelas, sendo uma tarefa mais simples sua consulta e manipulação. Entretanto, nos casos de dados não estruturados, a inexistência de um formato definido exige soluções e tipos de dados específicos a serem aplicados para o devido consumo. Vimos ainda que, para obtenção desses dados, utilizamos o conceito de ETL, processo A Figura 12 demonstra a tabela de destino vazia, a execução do JOB e a tabela de destino TMP_PRODUTOPRECO preenchida com os dados transformados e carregados. Figura 12 – Execução e resultado do ETL. Fonte: Elaborado pelo autor, 2020. Essa foi uma demonstração apresentando apenas um exemplo dessa importante atividade na engenharia de dados para construção de informação e conhecimento. Esse processo poderia ser muito mais complexo, envolvendo grandes dados, inúmeras fontes e estruturas, tanto relacionais, como em arquivos, nuvens, estruturadas ou não. São muitas possibilidades quando trabalhamos com a movimentação e transformação de dados. 12/11/2022 12:50 Unidade 4 - Engenharia de Dados https://student.ulife.com.br/ContentPlayer/Index?lc=NeYFgjIsmC21uEMYlNo%2bTA%3d%3d&l=%2b5sAQGbP8Ew3Ffe85SC%2bsg%3d%3d&… 24/27 que realiza a extração, transformação e carga. A extração captura os dados das fontes, as transformações ajustam e manipulam de acordo as necessidades do negócio, e a carga faz a inserção no repositório de destino. Referências bibliográficas 12/11/2022 12:50 Unidade 4 - Engenharia de Dados https://student.ulife.com.br/ContentPlayer/Index?lc=NeYFgjIsmC21uEMYlNo%2bTA%3d%3d&l=%2b5sAQGbP8Ew3Ffe85SC%2bsg%3d%3d&… 25/27 AMAZON. AWS Data Pipeline . Disponível em: < https://aws.amazon.com/pt/datapipeline/ >. Acesso em: 26 ago. 2020. KIMBALL, Ralph; ROSS, Margy. The Data Warehouse Toolkit . New Jersey: John Wiley & Sons, 2013. LAPLANTE, Alice; SHARMA, Ben. Architecting Data Lakes : Data management architectures for advanced business use cases. 2. ed. Califórnia: O’Reilly Media, 2018. MACHADO, Felipe Nery Rodrigues. Tecnologia e Projeto de Data Warehouse : Uma Visão Multidimensional. São Paulo: Editora Érica, 2004. MINELI,M.; CHAMBERS, M.; DHIRAJ, A. Big data, big analytics : emerging business intelligence and analytic trends for today's businesses. New Jersey: John Wiley & Sons, 2013. SHARDA, Ramesh; DELEN, Dursun; TURBAN, Efraim. Business Intelligence e Análise de Dados para gestão do negócio . 4. ed. São Paulo: Bookman Companhia Editora, 2019. SSIS. Referência oficial do Microsoft SQL Server Integration Service . Disponível em: < https://docs.microsoft.com/pt-br/sql/integration-services/sql-server-integration- services?view=sql-server-ver15 >. Acesso em: 25 ago. 2020. TALEND. Referência oficial do Talend Open Studio . Disponível em: < https://help.talend.com/reader/9bBURCEt_t~lUHE3DeE2LA/qfCJtS8OWfsQUi7k0b_3aQ >. Acesso em: 25 ago. 2020. VAZQUEZ, Carlos; SIMÕES, Guilherme. Engenharia de Requisitos : Software Orientado ao Negócio. São Paulo: Brasport, 2016. VOHRA, Deepak. Practical Hadoop Ecosystem : A Definitive Guide to Hadoop-Related Frameworks and Tools . 1. ed. Nova York: Apress, 2016. https://aws.amazon.com/pt/datapipeline/ https://docs.microsoft.com/pt-br/sql/integration-services/sql-server-integration-services?view=sql-server-ver15 https://help.talend.com/reader/9bBURCEt_t~lUHE3DeE2LA/qfCJtS8OWfsQUi7k0b_3aQ 12/11/2022 12:50 Unidade 4 - Engenharia de Dados https://student.ulife.com.br/ContentPlayer/Index?lc=NeYFgjIsmC21uEMYlNo%2bTA%3d%3d&l=%2b5sAQGbP8Ew3Ffe85SC%2bsg%3d%3d&… 26/27 12/11/2022 12:50 Unidade 4 - Engenharia de Dados https://student.ulife.com.br/ContentPlayer/Index?lc=NeYFgjIsmC21uEMYlNo%2bTA%3d%3d&l=%2b5sAQGbP8Ew3Ffe85SC%2bsg%3d%3d&… 27/27
Compartilhar