Prévia do material em texto
W BA 07 36 _V 2. 0 INTERAÇÕES ENTRE BIG DATA E CLOUD COMPUTING 2 Rafael Albuquerque Pinto Londrina Editora e Distribuidora Educacional S.A. 2024 INTERAÇÕES ENTRE BIG DATA E CLOUD COMPUTING 1ª edição 3 2024 Editora e Distribuidora Educacional S.A. Avenida Paris, 675 – Parque Residencial João Piza CEP: 86041-100 — Londrina — PR Homepage: https://www.cogna.com.br/ Diretora Sr. de Pós-graduação & OPM Silvia Rodrigues Cima Bizatto Conselho Acadêmico Alessandra Cristina Fahl Ana Carolina Gulelmo Staut Camila Braga de Oliveira Higa Camila Turchetti Bacan Gabiatti Giani Vendramel de Oliveira Gislaine Denisale Ferreira Henrique Salustiano Silva Juliana Schiavetto Dauricio Juliane Raniro Hehl Mariana Gerardi Mello Nirse Ruscheinsky Breternitz Coordenador Juliana Schiavetto Dauricio Revisor Nicolas Vogiantzis Editorial Beatriz Meloni Montefusco Márcia Regina Silva Paola Andressa Machado Leal Rosana Silverio Siqueira Dados Internacionais de Catalogação na Publicação (CIP)_____________________________________________________________________________ Pinto, Rafael Albuquerque Interações entre big data e cloud computing / Rafael Albuquerque Pinto. – Londrina: Editora e Distribuidora Educacional S.A., 2024. 32 p. ISBN 978-65-5903-795-7 1. Segurança de dados. 2. Hadoop. 3. Data lakes. I. Título. CDD 004.6782 _______________________________________________________________________________________________ Evelyn Moraes – CRB 8/010289 P659i © 2024 por Editora e Distribuidora Educacional S.A. Todos os direitos reservados. Nenhuma parte desta publicação poderá ser reproduzida ou transmitida de qualquer modo ou por qualquer outro meio, eletrônico ou mecânico, incluindo fotocópia, gravação ou qualquer outro tipo de sistema de armazenamento e transmissão de informação, sem prévia autorização, por escrito, da Editora e Distribuidora Educacional S.A. https://www.cogna.com.br/ 4 SUMÁRIO Apresentação da disciplina __________________________________ 05 Fundamentos de Big Data e Cloud Computing _______________ 07 Gerenciamento de Big Data: técnicas, ferramentas e machine learning ______________________________________________________ 27 Aplicações empresariais da ciência de dados ________________ 45 Estruturas de programação em nuvem ______________________ 59 INTERAÇÕES ENTRE BIG DATA E CLOUD COMPUTING 5 Apresentação da disciplina Seja bem-vindo(a) à disciplina de Interações entre Big Data e Cloud Computing! Neste curso, você embarcará em uma jornada essencial para compreender como a análise de grandes volumes de dados e a computação em nuvem se integram, oferecendo soluções inovadoras para os desafios tecnológicos modernos. À medida que o mundo se torna cada vez mais digital e dependente de dados, dominar esses conceitos se torna uma habilidade crucial para qualquer profissional da área de tecnologia. Aqui, você aprenderá a coletar, armazenar e processar dados em grande escala, utilizando as plataformas e ferramentas mais avançadas de Big Data Analytics. Exploraremos desde os conceitos fundamentais de infraestrutura de dados até as arquiteturas de Cloud Computing mais eficazes, como Infraestrutura como Serviço, ou IaaS, em que recursos, como armazenamento e servidores, são fornecidos sob demanda pela nuvem; a Plataforma como Serviço, o PaaS, que oferece um ambiente completo na nuvem para desenvolver, gerenciar e hospedar aplicações; o Software como Serviço, o SaaS, que é o software acessível pela internet, sem necessidade de instalação local, como plataformas de e-mail e ferramentas colaborativas. Além disso, você será introduzido ao uso de algoritmos de aprendizado de máquina para mineração de dados, ou seja, para explorar grandes volumes de dados e identificar padrões, gerando insights valiosos para a tomada de decisões. Com foco em aplicações práticas, este curso proporcionará uma visão estratégica de como as empresas estão adotando soluções de Big 6 Data para impulsionar o desempenho, transformar operações e criar vantagens competitivas. Ao final, você estará apto a desenvolver e integrar soluções robustas, otimizando a análise de dados e melhorando a gestão de recursos na nuvem. Seja qual for a sua área de atuação, os conhecimentos adquiridos aqui o capacitarão a enfrentar os desafios de um mundo orientado por dados e preparado para a inovação. Estamos prestes a começar uma nova etapa rumo ao futuro da tecnologia. Vamos juntos! Prepare-se para transformar dados em inteligência e inovação! 7 Fundamentos de Big Data e Cloud Computing Autoria: Rafael Albuquerque Pinto Leitura crítica: Nicolas Vogiantzis Objetivos • Compreender os conceitos e as características de Big Data. • Explorar a infraestrutura e as tecnologias subjacentes ao Big Data. • Introduzir os conceitos de Cloud Computing e seus modelos de serviço. 8 1. Introdução Atualmente, na era digital, a quantidade de dados gerados cresce exponencialmente devido à proliferação de dispositivos conectados, redes sociais, transações on-line e sensores IoT. Esse aumento massivo trouxe desafios para armazenar, processar e analisar informações, levando ao surgimento do conceito de Big Data. Big Data lida com volumes de dados que as ferramentas tradicionais não conseguem processar eficientemente, exigindo abordagens inovadoras para extrair valor e apoiar decisões estratégicas. Simultaneamente, o desenvolvimento de tecnologias de computação em nuvem (Cloud Computing) revolucionou a entrega de serviços de TI. Cloud Computing permite a entrega de serviços, como servidores, armazenamento e software pela internet, proporcionando flexibilidade, escalabilidade e economia de custos. As empresas podem ajustar rapidamente sua infraestrutura de TI para atender às demandas crescentes ou variáveis, sem grandes investimentos em hardware e software. 2. Conceitos e características de Big Data Vivemos em uma era em que a quantidade de dados gerados a cada instante é imensa e crescente. Esse fenômeno é conhecido como Big Data, um termo que descreve conjuntos de dados tão grandes e complexos que as ferramentas tradicionais de gerenciamento e processamento não conseguem lidar com eles (Mauro; Greco; Grimaldi, 2016). Nos últimos anos, a quantidade de dados gerados em áreas como tecnologia da informação (TI), indústrias, saúde, Internet das Coisas (IoT) e praticamente todos os setores da sociedade aumentou de forma colossal. Big Data abrange uma vasta gama de informações, incluindo 9 dados gerados em redes sociais (como textos, imagens, áudio e vídeo), dados de navegação capturados por aplicativos da web, dados de sensores em sistemas industriais e de energia, registros eletrônicos de saúde, logs de aplicativos web, informações de transações em mercados financeiros, dados bancários e financeiros, entre muitos outros (Bahga; Madisetti, 2019). O conceito de Big Data é sustentado por cinco características principais, conhecidas como os “Vs”: volume, velocidade, variedade, veracidade e valor. Cada uma dessas características desempenha um papel crucial na definição e no manejo eficaz de Big Data (Mauro; Greco; Grimaldi, 2016): • Volume: refere-se à enorme quantidade de dados gerados a cada segundo por diversas fontes, como redes sociais, transações comerciais e sensores IoT. Empresas, como Facebook e Google, processam imensos volumes de dados diariamente, exigindo soluções escaláveis, como Hadoop e Spark, para armazenamento e processamento eficientes. • Velocidade: a rapidez com que os dados são gerados e processados, muitas vezes em tempo real, requer análises imediatas. Exemplos incluem a detecção de fraudes em transações financeiras e o monitoramento de tendências nas redes sociais. Ferramentas, como Apache Kafka e Apache Flink, são utilizadas para processar esses fluxos de dados rapidamente, fornecendo análises quase instantâneas. • Variedade: a diversidade de formatos de dados, que podempelo autor. • Coleta de dados: a primeira fase é a coleta de dados relevantes. É essencial que os dados sejam representativos do problema a ser resolvido. Por exemplo, para um modelo de previsão de vendas, é necessário coletar dados históricos de vendas, dados de marketing, indicadores econômicos, entre outros. A coleta pode envolver a integração de múltiplas fontes, como bases de dados internas, APIs externas, ou mesmo arquivos CSV (Carvalho; Menezes; Bonidia, 2024). • Limpeza de dados: os dados coletados raramente estão prontos para uso imediato. A fase de limpeza envolve a correção de erros, o tratamento de valores ausentes e a normalização dos dados (Grus, 2019). Esta etapa é fundamental, pois a qualidade dos dados impacta diretamente a qualidade do modelo. Técnicas comuns incluem o preenchimento de valores ausentes com a média ou mediana, a remoção de outliers e a normalização das variáveis. • Modelagem: durante a modelagem, escolhemos e treinamos o modelo apropriado para o problema identificado. Por exemplo, se a tarefa é prever a demanda futura, podemos optar por um 54 modelo de regressão linear ou um modelo de séries temporais. A modelagem envolve a seleção de variáveis independentes, a divisão dos dados em conjuntos de treino e teste e o ajuste dos hiperparâmetros do modelo para melhorar a precisão (Carvalho; Menezes; Bonidia, 2024). • Validação: a fase de validação garante que o modelo generalize bem para novos dados. Isso é feito aplicando o modelo a um conjunto de dados de teste que não foi usado durante o treinamento. Técnicas, como cross-validation, são usadas frequentemente para avaliar a performance do modelo e garantir que ele não esteja superajustado aos dados de treino (Grus, 2019). 4. Tomada de decisões estratégicas com base em dados A ciência de dados tem como objetivo final transformar dados brutos em insights valiosos que possam orientar a tomada de decisões estratégicas dentro das empresas. Com o volume crescente de dados disponíveis, as organizações têm a oportunidade de utilizar essas informações para otimizar suas operações, melhorar a experiência do cliente e obter vantagens competitivas (Davenport, 2017). A transformação de dados em insights é um processo que envolve a análise e interpretação de grandes volumes de informações para gerar conhecimento acionável (Grus, 2019). Os modelos de ciência de dados desempenham um papel crucial nesse processo, fornecendo previsões e análises que podem ser usadas para otimizar estratégias de negócios. O primeiro passo é identificar padrões nos dados, como tendências e comportamentos que possam prever resultados futuros (Sharda; Delen; Turban, 2019). Por exemplo, uma empresa pode prever a demanda 55 por produtos durante certas épocas analisando o comportamento de compra de seus clientes. Técnicas, como análise de séries temporais, clustering e regressão, são comuns para identificar esses padrões. Identificar padrões permite que a empresa se antecipe às mudanças no mercado, ajuste suas ofertas e personalize campanhas de marketing, mantendo-se competitiva em um ambiente dinâmico. Depois de identificar padrões, o próximo passo é aplicar esses insights. Isso pode incluir ajustar processos internos, como alocação de recursos e gestão de estoques, para aumentar a eficiência e reduzir custos (Sharda; Delen; Turban, 2019). Por exemplo, uma rede de supermercados pode usar previsões de demanda para otimizar o reabastecimento, garantindo a disponibilidade de produtos quando necessário. Gerar insights é essencial, mas comunicar esses resultados de maneira eficaz é igualmente importante para que os tomadores de decisão possam agir. Formas de comunicar os resultados (Grus, 2019): • Visualização de dados: ferramentas, como Tableau e Power BI, são essenciais para criar gráficos e dashboards que tornam os dados mais acessíveis e compreensíveis. Essas visualizações ajudam os tomadores de decisão a identificar rapidamente tendências e oportunidades. • Relatórios e apresentações: relatórios bem estruturados explicam claramente os insights gerados pelos modelos de ciência de dados, contextualizando-os e sugerindo ações específicas. Usar exemplos práticos pode ajudar a ilustrar como as recomendações podem ser aplicadas na prática. É importante que esses relatórios sejam acessíveis a todos os stakeholders, evitando jargões técnicos desnecessários. 56 Conectando à Realidade: Exemplos Práticos As empresas modernas têm à disposição volumes massivos de dados, mas o verdadeiro desafio é transformar esses dados em insights acionáveis que possam orientar a tomada de decisões estratégicas. Utilizando modelos de ciência de dados, as empresas podem identificar padrões ocultos, prever tendências e tomar decisões mais informadas, melhorando sua eficiência e competitividade. Imagine que você trabalha em uma empresa de e-commerce que deseja otimizar suas estratégias de vendas e marketing. A empresa coleta dados de várias fontes, como histórico de compras, interações em redes sociais e comportamento de navegação no site. Para tomar decisões estratégicas mais eficazes, ela decide adotar técnicas de ciência de dados. A empresa utiliza ferramentas de visualização de dados, como Tableau e Power BI, para analisar grandes volumes de dados coletados. Por meio de dashboards interativos, identifica que, durante o último trimestre, as vendas de um certo segmento de produtos aumentaram significativamente em determinadas regiões. Com base nesse padrão, os analistas utilizam um modelo de regressão logística para prever quais produtos terão maior demanda no próximo trimestre, considerando fatores, como sazonalidade e campanhas de marketing anteriores. Além disso, a empresa aplica algoritmos de clustering para segmentar sua base de clientes de acordo com seu comportamento de compra. Isso permite criar campanhas de marketing personalizadas para cada segmento, direcionando promoções específicas para os grupos com maior probabilidade de compra. Aplicabilidade: 57 • Otimização de campanhas de marketing: com base nos insights gerados, a empresa pode ajustar suas campanhas de marketing para focar nos produtos e nas regiões com maior potencial de vendas, aumentando a eficácia das campanhas. • Melhoria da experiência do cliente: a personalização das ofertas com base nos segmentos de clientes identificados melhora a relevância das promoções e a experiência de compra, resultando em maior satisfação e fidelização dos clientes. • Decisões estratégicas de estoque: a empresa pode ajustar seus níveis de estoque com base nas previsões de demanda, evitando tanto a falta quanto o excesso de produtos, o que otimiza os custos operacionais. • Ajuste de preços: a análise dos padrões de compra e das condições do mercado pode orientar a empresa na definição de preços mais competitivos, maximizando a margem de lucro. Esse exemplo mostra como a ciência de dados pode transformar dados brutos em insights estratégicos, permitindo que as empresas tomem decisões mais informadas e alcancem melhores resultados no mercado. A ciência de dados oferece às empresas uma poderosa ferramenta para aprimorar a tomada de decisões e melhorar processos operacionais. A implementação eficaz depende não apenas de tecnologia, mas também de uma mudança cultural nas empresas e da capacidade de alinhar insights de dados com os objetivos estratégicos da organização. Ao superar os desafios técnicos e organizacionais, as empresas podem usar a ciência de dados para obter vantagens competitivas sustentáveis no mercado. 58 Referências CARVALHO, A. C. P. L. F. de; MENEZES, A. G.; BONIDIA, R. P. Ciência de dados: fundamentos e aplicações. Rio de Janeiro: LTC, 2024. DAVENPORT, T. H. Big data no trabalho: derrubando mitos e descobrindo oportunidades. Trad. Cristina Yamagami. Rio de Janeiro: Alta Books, 2017. GRUS, J. Data Science do Zero. Rio de Janeiro: Alta Books, 2019. SHARDA, R.; DELEN, D.; TURBAN,E. Business intelligence e análise de dados para gestão do negócio. Trad. Ronald Saraiva de Menezes. 4. ed. Porto Alegre: Bookman, 2019. 59 Estruturas de programação em nuvem Autoria: Rafael Albuquerque Pinto Leitura crítica: Nicolas Vogiantzis Objetivos • Explicar os conceitos e a importância das arquiteturas de nuvem. • Diferenciar os modelos de serviço (IaaS, PaaS, SaaS). • Introduzir práticas de DevOps e Infraestrutura como Código (IaC). 60 1. Conceitos e importância das arquiteturas de nuvem As estruturas de programação em nuvem desempenham um papel importante na transformação digital das empresas, proporcionando flexibilidade e escalabilidade para lidar com as demandas dinâmicas do mercado. Ao utilizar a nuvem, as organizações podem acessar recursos sob demanda, reduzir custos operacionais e acelerar a inovação, adaptando suas infraestruturas conforme necessário (Erl; Monroy, 2023). Isso permite que os serviços sejam mantidos disponíveis e escaláveis, otimizando a utilização dos recursos de TI de forma eficiente. Com o crescimento exponencial de dados e a necessidade de maior agilidade, essas soluções em nuvem se tornam cada vez mais atrativas. Diante desse cenário, modelos de serviço, como IaaS, PaaS e SaaS, têm sido amplamente adotados, oferecendo diferentes níveis de controle e responsabilidade. As empresas podem escolher a solução que melhor atende às suas necessidades, desde infraestrutura básica até plataformas completas para desenvolvimento e software pronto para uso. Além disso, práticas, como DevOps e Infraestrutura como Código (IaC), vêm se consolidando como estratégias eficazes para a automação e padronização da gestão de infraestrutura. A integração dessas práticas não só reduz o tempo de configuração, mas também minimiza o risco de erros manuais, resultando em processos mais ágeis e seguros. O objetivo deste capítulo é explorar como as arquiteturas em nuvem podem ser utilizadas estrategicamente para otimizar a infraestrutura de TI das empresas. Discutiremos os diferentes modelos de serviço (IaaS, PaaS, SaaS), as práticas de DevOps e o conceito de Infraestrutura como Código (IaC), além de exemplos práticos e estudos de caso que demonstram o impacto positivo dessas tecnologias na transformação digital das organizações. 61 2. Arquitetura em nuvem A arquitetura em nuvem pode parecer um termo técnico à primeira vista, mas simplificaremos: imagine que, em vez de manter todos os seus servidores e equipamentos dentro da empresa, você pode “alugar” esses recursos pela internet. Esses recursos, como servidores, armazenamento e redes, ficam disponíveis na nuvem, que nada mais é do que um conjunto de computadores e sistemas acessíveis de qualquer lugar (Erl; Monroy, 2023). O que torna isso tão vantajoso para as empresas é que esses recursos são flexíveis. Se, em um determinado dia, sua empresa precisa de mais capacidade, como em uma promoção ou evento especial, você pode aumentar os recursos de forma rápida. Quando o movimento diminui, você reduz o uso – sem desperdício e sem precisar comprar ou manter equipamentos caros. Esse conceito se baseia em três pilares essenciais: escalabilidade, elasticidade e disponibilidade (Rountree; Castrillo, 2014). A escalabilidade permite que os recursos aumentem ou diminuam conforme a demanda, garantindo que os sistemas possam crescer sem comprometer o desempenho (Rountree; Castrillo , 2014). Já a elasticidade refere-se à capacidade de ajustar os recursos automaticamente, proporcionando maior eficiência ao utilizar a infraestrutura somente quando necessário (Erl; Monroy, 2023). Por fim, a disponibilidade assegura que os serviços estejam acessíveis de forma contínua, minimizando o tempo de inatividade e garantindo uma operação confiável (Asthana; Mittal, 2023). Antes da computação em nuvem, as empresas precisavam investir pesadamente em infraestrutura de TI, comprando servidores, sistemas de armazenamento e softwares, além de lidar com custos de manutenção. Com o surgimento da nuvem, esses recursos agora podem ser acessados de maneira flexível, pagando-se apenas pelo uso, o que 62 reduziu significativamente os custos operacionais e tornou a TI mais acessível a empresas de todos os portes. A mudança para um modelo baseado em serviços transformou a forma como a TI opera, permitindo que as empresas concentrem seus esforços no desenvolvimento de produtos e serviços, enquanto a infraestrutura é gerenciada por provedores especializados. 2.1 Tipos de arquitetura em nuvem Quando falamos em tipos de nuvem, estamos descrevendo como esses recursos são organizados e acessados pelas empresas. As três principais arquiteturas são: nuvem pública, nuvem privada e nuvem híbrida (Erl; Monroy, 2023). Cada uma oferece características que atendem a diferentes necessidades. Nuvem pública A nuvem pública é, sem dúvida, o modelo mais comum. Imagine que você está “alugando” uma parte de uma vasta infraestrutura gerenciada por grandes provedores de serviços, como AWS, Google Cloud ou Microsoft Azure. Nesse tipo de nuvem, diversos usuários compartilham os mesmos servidores e recursos, que estão disponíveis por meio da internet. A principal vantagem da nuvem pública é sua escalabilidade (Erl; Monroy, 2023). Empresas que precisam crescer rapidamente, como um e-commerce durante a Black Friday, podem expandir sua capacidade sem precisar comprar novos equipamentos ou lidar com a manutenção de servidores. Além disso, é um modelo bastante acessível, pois você só paga pelo que utiliza, e toda a gestão da infraestrutura fica por conta do provedor de serviços, aliviando a carga de gerenciamento interno da empresa. Nuvem privada 63 Já a nuvem privada funciona como se você tivesse seu próprio “espaço exclusivo”. Nesse modelo, toda a infraestrutura é dedicada exclusivamente a uma única organização (Rountree; Castrillo, 2014). Isso oferece mais controle e segurança, pois a empresa tem a liberdade de gerenciar diretamente seus dados e recursos. A nuvem privada pode ser gerida internamente pela própria organização ou por um provedor externo, mas o acesso é restrito apenas a essa organização. Esse tipo de nuvem é amplamente utilizado em setores que lidam com dados sensíveis, como bancos ou instituições financeiras, que precisam de níveis elevados de proteção e precisam cumprir normas regulatórias rigorosas. A privacidade é, portanto, um fator crucial nesse tipo de arquitetura, garantindo que os dados confidenciais estejam totalmente protegidos contra acessos não autorizados. Nuvem híbrida Por fim, temos a nuvem híbrida, que oferece uma combinação das vantagens da nuvem pública e privada (Rountree; Castrillo, 2014). Esse modelo permite que as empresas utilizem ambas as soluções conforme suas necessidades. Por exemplo, imagine uma empresa de saúde que precisa armazenar informações de pacientes em um ambiente extremamente seguro, como uma nuvem privada, para cumprir as leis de privacidade e regulamentações de proteção de dados. Ao mesmo tempo, essa empresa pode aproveitar a nuvem pública para realizar análises complexas e processar grandes volumes de dados mais rapidamente. A nuvem híbrida proporciona essa flexibilidade, permitindo que dados sensíveis sejam mantidos em um ambiente mais controlado, enquanto outros processos podem se beneficiar da escala e agilidade oferecidas pela nuvem pública. Esse modelo é particularmente vantajoso para empresas que lidam com diferentes tipos de dados e cargas de trabalho. Ele permite encontrar um equilíbrio entre segurança, custo-benefício e eficiência operacional, já que as 64 organizações podem tirar proveito dos benefícios de ambos os tipos de nuvem de acordo com suas necessidades específicas. 2.2 Práticas de design para arquitetura de nuvem • Quando falamos em desenhar uma arquitetura em nuvem, estamos falando de como planejar esses recursos de forma inteligente para garantir que eles funcionem bem, sejam segurose estejam sempre disponíveis. Para isso, algumas práticas são fundamentais (Asthana; Mittal, 2023): • Alta disponibilidade: imagine que sua empresa não pode parar de funcionar nem por um minuto. Como garantir isso? Na nuvem, a solução é ter vários sistemas espalhados por diferentes locais. Se um deles falhar, o outro assume automaticamente, e seus clientes nem percebem. • Tolerância a falhas: o que acontece se um servidor cair? Sem problemas, a tolerância a falhas garante que outros servidores assumam o trabalho. Isso é feito através de sistemas redundantes, ou seja, várias cópias da mesma informação ou serviço, para que um backup esteja sempre pronto para entrar em ação. • Segurança: com todos esses dados importantes sendo armazenados na nuvem, a segurança é um ponto-chave. Usar criptografia, controlar quem tem acesso e monitorar continuamente o ambiente são práticas essenciais para proteger os dados da empresa e dos clientes. 3. Entendendo a diferença dos modelos de Serviço em Nuvem (IaaS, PaaS, SaaS) 65 Os modelos de serviço em nuvem são as diferentes maneiras pelas quais os recursos e serviços em nuvem são oferecidos aos usuários. Eles são classificados em três categorias principais: IaaS (Infraestrutura como serviço, em inglês Infrastructure as a Service), PaaS (Plataforma como serviço, em inglês Plataform as a Service) e SaaS (Software como serviço, em inglês Software as a Service) (Asthana; Mittal, 2023). Cada um desses modelos oferece níveis variados de controle e responsabilidade sobre a infraestrutura de TI, conforme as necessidades da empresa. 3.1 Definição e características • IaaS (Infrastructure as a Service): o modelo IaaS oferece recursos básicos de TI, como servidores, armazenamento e redes. Esses recursos são virtualizados e fornecidos via internet, permitindo que as empresas configurem e gerenciem suas próprias infraestruturas de acordo com suas necessidades (Erl; Monroy, 2023). O usuário tem controle sobre os sistemas operacionais e as aplicações, mas não precisa se preocupar com o hardware subjacente. Exemplo: no Amazon EC2, a empresa pode configurar e gerenciar suas próprias máquinas virtuais, escolhendo o sistema operacional, o middleware e as aplicações que deseja utilizar. • PaaS (Platform as a Service): o PaaS fornece uma plataforma completa para desenvolvimento de aplicações, sem que o usuário precise gerenciar a infraestrutura subjacente (servidores, armazenamento e redes) (Erl; Monroy, 2023). Ele oferece as ferramentas necessárias para que os desenvolvedores possam criar, testar e implantar aplicações de maneira rápida e eficiente. Exemplo: no Google App Engine, os desenvolvedores podem construir e implantar aplicações diretamente, sem se preocupar com a gestão da infraestrutura por trás disso. 66 • SaaS (Software as a Service): o SaaS oferece software como um serviço acessível via navegador da web, sem a necessidade de instalação ou manutenção por parte do usuário. Toda a infraestrutura, o middleware e o software são geridos pelo provedor (Asthana; Mittal, 2023). O usuário simplesmente consome o serviço final. Exemplo: o Google Workspace oferece aplicativos, como Gmail, Google Docs e Google Drive, via internet, e os usuários podem acessar e utilizar esses serviços sem precisarem instalar nada em seus dispositivos. No Quadro 1, veja de forma clara as diferenças entre os três modelos de serviço em nuvem, facilitando a comparação entre eles. Quadro 1 – Comparação de modelos Características IaaS PaaS SaaS Controle Alto: o usuário controla o sistema operacional, o middleware e as aplicações. Médio: o usuário controla apenas as aplicações e os dados. Baixo: o provedor ge- rencia toda a infraes- trutura e o software. Responsabilidade do usuário Sistema opera- cional, armaze- namento, redes, middleware e apli- cações. Aplicações e dados. Apenas o uso do software e os dados inseridos no sistema. Exemplos Amazon EC2, Microsoft Azure VMs, Google Compute Engine. Google App Engine, Microsoft Azure App Service. Google Workspace, Microsoft 365, Sales- force. Indicado para Empresas que precisam de fle- xibilidade para gerenciar toda a infraestrutura de TI e personalizar o ambiente confor- me suas necessi- dades. Desenvolvedores que querem criar, testar e implantar aplicações sem se preocupar com a gestão da infraes- trutura. Empresas que que- rem utilizar software sem precisar geren- ciar servidores ou fa- zer instalação local. Escalabilidade Alta, pois o usuá- rio pode ajustar manualmente os recursos de TI conforme neces- sário. Alta, com escalabi- lidade automática na plataforma de desenvolvimento. Alta, o software pode ser acessado por vários usuários ao mesmo tempo, sem necessidade de ges- tão de infraestrutura. 67 Custo Dependente do uso e da quanti- dade de infraes- trutura gerida pelo usuário. Mais acessível, pois elimina a necessi- dade de gerenciar a infraestrutura. Custo previsível, geralmente basea- do em assinaturas, sem necessidade de gerenciamento de infraestrutura. Fonte: elaborado pelo autor. 4. Gerenciamento automatizado por meio de IaC Infraestrutura como Código (IaC) é uma prática que permite gerenciar e provisionar a infraestrutura de TI usando arquivos de configuração ou código, em vez de processos manuais (Reis; Housley, 2023). A ideia principal do IaC é que a infraestrutura pode ser tratada da mesma forma que o código de software, o que significa que ela pode ser versionada, auditada e atualizada automaticamente, garantindo consistência em diferentes ambientes. Isso facilita a automação de processos, como a criação de servidores, a configuração de redes e o ajuste de recursos, por meio de scripts que descrevem exatamente como a infraestrutura deve ser provisionada. Essa abordagem elimina a necessidade de configurar recursos manualmente, permitindo que os mesmos arquivos de configuração sejam usados para provisionar novos ambientes com rapidez e precisão, seja em uma nuvem pública ou em data centers privados. Implementar Infraestrutura como Código oferece vários benefícios para empresas que utilizam infraestrutura em nuvem (Reis; Housley, 2023): 1. Aumento da eficiência no provisionamento de recursos: IaC permite que a infraestrutura seja provisionada rapidamente, sem a necessidade de intervenção manual. Uma vez que o código de configuração está pronto, ele pode ser executado repetidamente 68 para criar ou modificar ambientes, tornando o provisionamento ágil e escalável. 2. Redução de erros manuais: como a infraestrutura é definida em código, os processos manuais de configuração e provisionamento são minimizados. Isso reduz significativamente os erros humanos e garante que os ambientes sejam consistentes e reprodutíveis. 3. Melhoria na reprodutibilidade e consistência: uma vez definido o código, ele pode ser reutilizado e adaptado para diferentes ambientes (desenvolvimento, homologação e produção), garantindo que todos sigam o mesmo padrão. Isso elimina variações entre ambientes, o que facilita a manutenção e a solução de problemas. As práticas de DevOps complementam o IaC ao integrar desenvolvimento (Dev) e operações (Ops), promovendo automação e colaboração contínua. O objetivo do DevOps é acelerar a entrega de software com maior qualidade e segurança, aplicando métodos, como: • Integração Contínua (CI): automatiza a verificação e teste do código em cada integração. • Entrega Contínua (CD): automatiza a preparação do código para produção, garantindo que atualizações estejam sempre prontas para lançamento. • Automação de testes e deploy: as implantações são rápidas e confiáveis, minimizando tempo de indisponibilidade e aumentando a eficiência. A Estrutura de Programação em Nuvem é fundamental para modernizar operações de TI, oferecendo flexibilidade, escalabilidade e eficiência. Com as diferentes arquiteturas de nuvem (pública, privada e híbrida) e os modelosde serviço (IaaS, PaaS, SaaS), as empresas podem equilibrar controle, custo e simplicidade. As práticas de DevOps e 69 Infraestrutura como Código (IaC) automatizam processos e garantem uma gestão ágil e consistente da infraestrutura. Conectando à Realidade Situação: seleção de materiais para componentes eletrônicos. Imaginaremos uma empresa de comércio eletrônico que lida com grandes volumes de tráfego durante eventos sazonais, como a Black Friday. Para garantir que seu site não sofra quedas ou problemas de desempenho, a empresa decide implementar o IaC e as práticas de DevOps. Ela utiliza o Terraform, para provisionar rapidamente servidores adicionais na AWS, e o Jenkins, para automatizar a integração e entrega contínua do código. Com o IaC, a equipe pode rapidamente provisionar servidores adicionais e configurar a infraestrutura de rede com apenas alguns comandos de código, usando scripts predefinidos. Isso elimina a necessidade de configurar manualmente cada servidor, o que seria ineficiente e suscetível a erros. Por meio do Jenkins (ferramenta DevOps), a equipe de desenvolvimento automatiza o processo de testes e a entrega de novas funcionalidades, garantindo que as mudanças sejam implementadas sem interrupções ou falhas. Terraform permite que a infraestrutura seja escalada automaticamente, ajustando os servidores conforme o aumento do tráfego. Jenkins realiza testes automatizados em cada integração de código, garantindo que o site esteja sempre atualizado e funcione sem erros. Impacto e resultados 70 A aplicação dessas tecnologias tem um impacto direto nos resultados da empresa. Durante a Black Friday, o site se mantém estável e responsivo, mesmo com o aumento repentino no número de acessos. O processo de entrega contínua permite que novas funcionalidades, como promoções em tempo real, sejam lançadas rapidamente, aumentando a competitividade e as vendas. A redução de erros manuais e a consistência no provisionamento garantem um desempenho otimizado da infraestrutura e das aplicações. Referências ASTHANA, K.; MITTAL, A. Cloud Architecture Demystified: understand how to design sustainable architectures in the world of Agile, DevOps, and Cloud. [S. l.]: BPB Publications, 2023. ERL, T.; MONROY, E. B. Cloud Computing: concepts, technology, security, and architecture. 2. ed. New York: Pearson, 2023. REIS, J.; HOUSLEY, M. Fundamentos de Engenharia de Dados: projete e construa sistemas de dados robustos. São Paulo: Novatec, 2023. ROUNTREE, D.; CASTRILLO, I. The basics of cloud computing: understanding the fundamentals of cloud computing in theory and practice. Waltham: Syngress, 2014. 71 Sumário Apresentação da disciplina Objetivos Objetivos _Hlk182782158 Objetivos Objetivosser estruturados, semiestruturados ou não estruturados, como textos, imagens e vídeos. Processar e analisar diferentes tipos de dados permite uma compreensão mais completa dos fenômenos estudados, mas aumenta a complexidade do gerenciamento de dados. Soluções, como bancos de dados NoSQL, são necessárias para lidar com essa diversidade de maneira eficaz. 10 • Veracidade: refere-se à qualidade e confiabilidade dos dados, fundamentais para evitar insights enganosos. Garantir a veracidade envolve processos de limpeza e validação dos dados, assegurando que sejam precisos e relevantes. Isso é crucial em setores como saúde e finanças, nos quais decisões críticas dependem da precisão dos dados analisados. • Valor: a capacidade de transformar grandes volumes de dados em informações valiosas que levam a melhores decisões de negócios, inovação de produtos e eficiência operacional. A análise de Big Data pode revelar padrões e tendências invisíveis em conjuntos menores de dados. Ferramentas de análise avançada, como machine learning e inteligência artificial, são frequentemente usadas para extrair valor dos dados, transformando-os em insights acionáveis e estratégicos. Essas cinco características são a base para entender e gerenciar Big Data. Elas destacam os desafios e as oportunidades associados ao manejo de grandes volumes de dados, exigindo abordagens inovadoras e tecnologias avançadas para extrair valor e insights significativos. Além delas, há, ainda, outros Vs envolvidos em Big Data, que expandem ainda mais a compreensão do seu impacto e complexidade (Taleb; Serhani; Dssouli, 2019): • Variabilidade: mudança constante dos dados provenientes de diferentes fontes e contextos, alterando padrões de uso ao longo do tempo. Ferramentas flexíveis são necessárias para adaptar-se a esses novos padrões. • Viscosidade: dificuldade de processar e integrar grandes variedades de dados. Ferramentas avançadas de ETL são essenciais para transformar e integrar esses dados de maneira eficaz. 11 • Volatilidade: possibilidade de perda ou obsolescência rápida dos dados. Mecanismos robustos de backup e recuperação são necessários para garantir a disponibilidade contínua dos dados. • Validade: verificação da veracidade dos dados para garantir que as análises sejam precisas e confiáveis, essencial para tomadas de decisão baseadas em dados. • Visualização: tornar os dados acessíveis e compreensíveis por meio de representações visuais claras e intuitivas. Ferramentas, como Tableau e Power BI, são fundamentais para transformar grandes volumes de dados em gráficos e dashboards. • Viralidade: capacidade dos dados se espalharem rapidamente pela rede, especialmente relevante em redes sociais e campanhas de marketing digital. • Vulnerabilidade: segurança dos dados contra acessos não autorizados e ataques cibernéticos. Medidas robustas de segurança cibernética e conformidade com regulamentos de proteção de dados são essenciais. Essas características adicionais fornecem uma visão mais abrangente dos desafios e das considerações envolvidas no gerenciamento de Big Data, ressaltando a complexidade e a necessidade de abordagens multifacetadas para lidar com os enormes volumes de dados gerados atualmente. Exploraremos como os Vs do Big Data se manifestam na prática, analisando um cenário específico de monitoramento de saúde em tempo real usando dispositivos vestíveis (wearables) e sensores IoT. Saberemos como os Vs de Big Data se aplicam nesse cenário: 12 Quadro 1 – Exemplos dos Vs de Big Data para o monitoramento de saúde em tempo real Característica Descrição Volume Dispositivos vestíveis geram grandes volumes de dados continuamente, exigindo soluções escaláveis, como Hadoop, para armazenamento e pro- cessamento eficientes. Velocidade Dados de saúde precisam ser analisados rapidamente para detectar ano- malias, utilizando ferramentas, como Apache Kafka e Apache Flink, para processamento em tempo real. Variedade Dados vêm em vários formatos, incluindo sinais vitais e padrões de sono, necessitando de bancos de dados NoSQL para gerenciar essa diversi- dade. Veracidade A precisão dos dados é crucial, exigindo limpeza e validação para garan- tir análises confiáveis. Valor A análise dos dados fornece insights valiosos, com machine learning e IA ajudando a prever problemas de saúde e recomendar ações preventivas. Variabilidade Dados de saúde variam constantemente com base nas atividades dos usuários, exigindo ferramentas flexíveis para adaptação. Viscosidade Integrar dados de diferentes fontes pode ser desafiador, necessitando de ferramentas de ETL para tornar os dados utilizáveis e coerentes. Volatilidade Dados de saúde podem ser voláteis, exigindo backup e recuperação ro- bustos para garantir disponibilidade contínua. Validade Verificar a validade dos dados é essencial para garantir análises precisas e confiáveis. Visualização Visualizar dados de saúde de forma clara ajuda a entender os insights, utilizando gráficos e dashboards. Viralidade Entender a disseminação rápida de informações de saúde em redes so- ciais é crucial para monitoramento e gestão. Vulnerabilidade Proteger dados de saúde contra acessos não autorizados é vital, reque- rendo medidas de segurança cibernética e conformidade com regula- mentos de proteção de dados. Fonte: elaborado pelo autor. Agora que conhecemos as principais características e os desafios associados ao Big Data, é essencial explorarmos a infraestrutura e as 13 tecnologias subjacentes que tornam possível o processamento desses enormes volumes de dados. A infraestrutura de Big Data envolve várias tecnologias e ferramentas projetadas para lidar com grandes volumes de dados. 3. Infraestrutura e tecnologias subjacentes A infraestrutura de Big Data é composta por um conjunto robusto de tecnologias e ferramentas que trabalham em conjunto para processar, armazenar e analisar grandes volumes de dados de maneira eficiente e escalável. Essas tecnologias são essenciais para gerenciar a complexidade e a diversidade dos dados envolvidos em Big Data (Zaki, 2014). A seguir, detalhamos algumas das principais tecnologias subjacentes à infraestrutura de Big Data: Hadoop Hadoop é um framework de código aberto que se destaca por sua capacidade de processar grandes conjuntos de dados de forma distribuída. Desenvolvido inicialmente pela Apache Software Foundation, Hadoop utiliza o modelo de programação MapReduce, que divide as tarefas em partes menores, processa-as simultaneamente em diferentes nós de um cluster e, em seguida, combina os resultados (White, 2012). Esse framework é composto por quatro módulos principais: • Hadoop Common: as utilidades comuns que suportam os outros módulos. • Hadoop Distributed File System (HDFS): um sistema de arquivos distribuído que fornece acesso de alta taxa de transferência aos dados da aplicação. 14 • Hadoop YARN: um framework para gerenciamento de recursos e agendamento de tarefas. • Hadoop MapReduce: um modelo de programação para processamento paralelo de grandes conjuntos de dados. Hadoop é essencial para escalar o processamento de dados de forma eficiente e econômica, permitindo que grandes volumes de dados sejam processados em paralelo em clusters de servidores. A sua arquitetura distribuída possibilita a manipulação de petabytes de dados com alta tolerância a falhas, sendo amplamente utilizado em diversas indústrias para tarefas de análise de dados complexas. NoSQL Databases Os bancos de dados NoSQL são fundamentais na infraestrutura de Big Data por sua capacidade de armazenar e recuperar dados de maneira eficiente, especialmente quando se trata de dados não estruturados ou semiestruturados (Zaki, 2014). Existem vários tipos de bancos de dados NoSQL, cada um com suas particularidades e seus casos de uso específicos: • Bancos de Dados Orientados a Documentos: armazenam dados em documentos, geralmente no formato JSON ou BSON. Exemplos incluem MongoDBe CouchDB. • Bancos de Dados de Colunas: armazenam dados em tabelas com um número variável de colunas por linha, permitindo leitura e escrita rápidas em grandes volumes de dados. Exemplos incluem Apache Cassandra e HBase. • Bancos de Dados de Grafos: armazenam dados como nós e arestas, representando relações complexas. Exemplos incluem Neo4j e JanusGraph. 15 • Bancos de Dados de Chave-Valor: armazenam dados como pares chave-valor, sendo extremamente eficientes para leitura e escrita rápidas. Exemplos incluem Redis e DynamoDB. Esses bancos de dados são projetados para escalar horizontalmente, distribuindo dados e carga de trabalho por vários servidores. Isso é crucial para a infraestrutura de Big Data, pois permite o gerenciamento eficiente de grandes volumes de dados heterogêneos, suportando aplicações que necessitam de alta disponibilidade e desempenho. Data Warehousing Data Warehousing refere-se aos sistemas de armazenamento de dados que consolidam informações de diferentes fontes em um repositório central (Bahga; Madisetti, 2019). Esses sistemas são projetados para suportar consultas rápidas e análises complexas, facilitando a tomada de decisões empresariais. Data warehouses organizam os dados de forma que possam ser facilmente acessados e analisados, utilizando tecnologias, como: • ETL (Extração, Transformação e Carga): processos que extraem dados de diferentes fontes, transformam esses dados em um formato adequado e carregam-nos no data warehouse. • OLAP (Processamento Analítico Online): ferramentas que permitem a análise multidimensional de grandes volumes de dados. Exemplos populares de data warehouses incluem Amazon Redshift, Google BigQuery e Snowflake. Eles são utilizados para realizar análises históricas, relatórios de negócios e descoberta de insights a partir de grandes volumes de dados. A capacidade de consolidar dados de múltiplas fontes permite uma visão integrada e holística, essencial para a estratégia de negócios baseada em dados. 16 Stream Processing Stream Processing é uma abordagem para o processamento de dados em tempo real, em que os dados são continuamente ingeridos e analisados à medida que são gerados (Bahga; Madisetti, 2019). Essa tecnologia é essencial para aplicações que requerem respostas imediatas, como detecção de fraudes, monitoramento de redes sociais e análises de IoT. Ferramentas comuns de stream processing incluem: • Apache Kafka: uma plataforma de streaming distribuída que publica, subscreve, armazena e processa fluxos de registros em tempo real. • Apache Flink: uma engine de stream processing e batch processing que permite o processamento de dados com baixa latência e alta taxa de transferência. • Apache Storm: um sistema distribuído de stream processing que processa grandes volumes de dados em tempo real de forma escalável e resiliente. Essas ferramentas são projetadas para lidar com a ingestão e o processamento contínuo de dados, fornecendo análises e insights quase instantâneos. A capacidade de processar dados em tempo real é crucial para muitas aplicações modernas, nas quais atrasos podem resultar em perdas significativas de oportunidades ou riscos. Ferramentas de Análise e Machine Learning Além das tecnologias de armazenamento e processamento, a infraestrutura de Big Data também inclui ferramentas de análise e machine learning que são fundamentais para extrair valor dos dados (Bahga; Madisetti, 2019; Mauro; Greco; Grimaldi, 2016). Algumas das principais ferramentas e bibliotecas incluem: 17 • Apache Spark: uma engine de processamento unificado que oferece suporte a batch processing, stream processing, machine learning e análise gráfica. • TensorFlow: uma biblioteca de código aberto para machine learning desenvolvida pelo Google, amplamente utilizada para construir e treinar modelos de aprendizado profundo. • Scikit-learn: uma biblioteca de machine learning para a linguagem de programação Python, que inclui várias ferramentas para modelagem preditiva e análise de dados. • Tableau e Power BI: ferramentas de visualização de dados que permitem criar gráficos interativos e dashboards, facilitando a comunicação dos insights obtidos a partir de análises de Big Data. Essas ferramentas são essenciais para transformar grandes volumes de dados em insights acionáveis, permitindo que as organizações tomem decisões informadas e impulsionem a inovação. O uso de machine learning e inteligência artificial permite a descoberta de padrões ocultos nos dados, previsões precisas e automação de processos analíticos. A combinação dessas tecnologias e ferramentas forma a base da infraestrutura de Big Data. Com a infraestrutura de Big Data estabelecida, é fundamental explorar como a computação em nuvem (Cloud Computing) complementa essas tecnologias, oferecendo modelos de serviço flexíveis e escaláveis que facilitam ainda mais o gerenciamento de dados. 4. Introdução a Cloud Computing e seus modelos de serviço Cloud Computing refere-se à entrega de serviços de computação (servidores, armazenamento, banco de dados, rede, software etc.) pela 18 internet. Essa tecnologia tem revolucionado a forma como os serviços de TI são entregues, proporcionando flexibilidade, escalabilidade e economia de custos. A computação em nuvem permite que empresas ajustem rapidamente sua infraestrutura de TI para atender às demandas crescentes ou variáveis, sem a necessidade de grandes investimentos em hardware e software. Os principais modelos de serviço de Cloud Computing são (Marinescu, 2017): Infrastructure as a Service (IaaS) Infrastructure as a Service (IaaS) fornece infraestrutura de TI virtualizada sob demanda. Com IaaS, as empresas podem alugar servidores, armazenamento e redes conforme necessário, permitindo escalabilidade e flexibilidade. Esse modelo é ideal para empresas que precisam de uma infraestrutura robusta e escalável sem o custo de possuir e manter hardware físico. Principais características do IaaS: • Escalabilidade: recursos podem ser aumentados ou diminuídos rapidamente conforme as necessidades da empresa. • Custo sob demanda: paga-se apenas pelo que se usa, tornando-o uma opção econômica para startups e grandes empresas. • Controle: proporciona um alto nível de controle sobre a infraestrutura de TI, permitindo personalizações detalhadas. Exemplos de IaaS: • Amazon Web Services (AWS): oferece uma vasta gama de serviços de infraestrutura, incluindo EC2 para computação e S3 para armazenamento. 19 • Microsoft Azure: proporciona serviços de máquinas virtuais, redes virtuais e armazenamento escalável. • Google Cloud Platform (GCP): fornece soluções de computação, armazenamento e rede. Platform as a Service (PaaS) Platform as a Service (PaaS) oferece uma plataforma que permite aos desenvolvedores criar, testar e implementar aplicações sem se preocupar com a gestão da infraestrutura subjacente. PaaS inclui infraestrutura, ferramentas de desenvolvimento, middleware e serviços de banco de dados. Isso facilita o desenvolvimento de aplicativos, permitindo que os desenvolvedores se concentrem no código e na funcionalidade. Principais características do PaaS: • Ambiente de desenvolvimento: fornece ferramentas e serviços integrados para facilitar o desenvolvimento e a implementação de aplicativos. • Gerenciamento simplificado: a plataforma gerencia a infraestrutura subjacente, incluindo servidores, armazenamento e rede. • Colaboração: facilita a colaboração entre equipes de desenvolvimento distribuídas. Exemplos de PaaS: • Google App Engine: oferece um ambiente gerenciado para construir e escalar aplicações. 20 • Heroku: plataforma baseada em contêineres que suporta várias linguagens de programação. • Microsoft Azure App Services: permite a criação e implantação rápida de aplicativos em várias linguagens e frameworks. Software as a Service (SaaS) Software as a Service (SaaS) distribui software e aplicativos via internet, eliminandoa necessidade de instalações locais. Os usuários podem acessar os aplicativos diretamente de um navegador web, pagando uma assinatura pelo uso. SaaS é ideal para empresas que desejam utilizar software atualizado e mantido por terceiros, sem a complexidade de gerenciamento e manutenção. Principais características do SaaS: • Acessibilidade: aplicações acessíveis de qualquer lugar com uma conexão à internet. • Atualizações automáticas: os provedores de SaaS gerenciam as atualizações e a manutenção, garantindo que os usuários sempre tenham acesso à versão mais recente. • Modelo de assinatura: pagamento baseado no uso, geralmente através de uma assinatura mensal ou anual. Exemplos de SaaS: • Google Workspace: oferece aplicativos de produtividade, como Gmail, Google Docs e Google Drive. • Salesforce: plataforma de gerenciamento de relacionamento com o cliente (CRM) baseada na nuvem. 21 • Microsoft Office 365: conjunto de aplicações de produtividade acessíveis via internet. 5. Aplicações práticas de Big Data e Cloud Computing Big Data e Cloud Computing são tecnologias que, juntas, transformam diversos setores da economia, melhorando a eficiência operacional, proporcionando insights valiosos e criando oportunidades de negócios (Mauro; Greco; Grimaldi, 2016). Exploraremos algumas das aplicações práticas dessas tecnologias em diferentes indústrias. Setor de saúde No setor de saúde, Big Data e Cloud Computing são utilizados para melhorar os cuidados com os pacientes e a gestão dos serviços de saúde. Exemplos de aplicações: • Análise de dados de pacientes: utilizando Big Data, hospitais podem analisar grandes volumes de dados de pacientes para identificar padrões e tendências, melhorando o diagnóstico e o tratamento. • Monitoramento remoto: dispositivos vestíveis e sensores IoT coletam dados de saúde em tempo real, que são armazenados e analisados na nuvem para monitoramento contínuo e intervenções rápidas. • Pesquisa médica: Cloud Computing facilita o armazenamento e a análise de grandes conjuntos de dados de pesquisa, acelerando a descoberta de novos tratamentos e medicamentos. 22 Setor financeiro O setor financeiro utiliza Big Data e Cloud Computing para melhorar a eficiência, detectar fraudes e oferecer serviços personalizados aos clientes. Exemplos de aplicações: • Detecção de fraudes: algoritmos de machine learning analisam transações financeiras em tempo real para identificar atividades suspeitas e prevenir fraudes. • Análise de risco: bancos e instituições financeiras utilizam Big Data para avaliar o risco de crédito de clientes, analisando históricos de transações e comportamento financeiro. • Serviços personalizados: plataformas de Cloud Computing permitem que bancos ofereçam serviços personalizados aos clientes, com base em suas preferências e histórico de transações. Comércio eletrônico No comércio eletrônico, Big Data e Cloud Computing são essenciais para melhorar a experiência do cliente e otimizar operações. Exemplos de aplicações: • Recomendações de produtos: analisando o comportamento de compra dos clientes, os sistemas podem sugerir produtos relevantes, aumentando as vendas e a satisfação do cliente. • Gestão de estoque: Big Data ajuda a prever a demanda de produtos, otimizando os níveis de estoque e reduzindo custos. 23 • Análise de sentimento: ferramentas de análise de Big Data monitoram as redes sociais e avaliações de produtos, fornecendo insights sobre a percepção dos clientes e orientando estratégias de marketing. Setor de transporte e logística Big Data e Cloud Computing transformam o setor de transporte e logística, melhorando a eficiência das operações e a experiência do cliente. Exemplos de aplicações: • Otimização de rotas: análise de dados em tempo real permite otimizar rotas de entrega, reduzindo custos e melhorando os prazos de entrega. • Gestão de frota: sensores IoT em veículos coletam dados que são analisados na nuvem para monitorar o desempenho, prever manutenção e aumentar a eficiência da frota. • Previsão de demanda: Big Data ajuda a prever a demanda por serviços de transporte, permitindo um planejamento mais preciso e eficiente. Educação Na educação, Big Data e Cloud Computing facilitam a personalização do aprendizado e a gestão de instituições educacionais. Exemplos de aplicações: • Aprendizado personalizado: plataformas educacionais baseadas na nuvem utilizam dados de desempenho dos alunos para personalizar o conteúdo e os métodos de ensino. 24 • Análise de desempenho: instituições educacionais analisam dados acadêmicos para identificar áreas de melhoria e desenvolver estratégias de intervenção. • Gestão de recursos: Cloud Computing permite uma gestão eficiente de recursos educacionais, facilitando o acesso a materiais de ensino e colaborando com a infraestrutura tecnológica. Conectando à Realidade: Exemplos Práticos Você sabia que, atualmente, produzimos uma quantidade de dados tão grande que os métodos tradicionais de gerenciamento não conseguem lidar com eles de maneira eficiente? Para lidar com essa explosão de dados, usamos tecnologias avançadas de Big Data e Cloud Computing. Essas tecnologias são essenciais para gerenciar a complexidade e a diversidade dos dados, permitindo extrair valor significativo deles. Big Data refere-se ao conjunto de tecnologias e metodologias capazes de processar grandes volumes de dados de forma eficiente. Cloud Computing, por sua vez, oferece uma infraestrutura flexível e escalável para armazenar e processar esses dados. Imagine que você está trabalhando para uma empresa de e-commerce, responsável por analisar o comportamento dos consumidores para melhorar a experiência do usuário e aumentar as vendas. A empresa decidiu utilizar tecnologias de Big Data e Cloud Computing para alcançar esses objetivos. A empresa coleta dados de diversas fontes, como cliques no site, compras anteriores, comentários em redes sociais e feedback de clientes. Utilizando Big Data, esses dados são processados e analisados para identificar padrões de comportamento e preferências dos consumidores. 25 A Cloud Computing permite que a empresa armazene grandes volumes de dados de forma econômica e escalável, além de fornecer poder computacional sob demanda para processar esses dados rapidamente. Com a análise dos dados, a empresa pode personalizar a experiência do usuário, recomendando produtos baseados em preferências individuais e comportamentos anteriores. Por exemplo, se um cliente frequentemente compra produtos de tecnologia, o sistema pode sugerir as últimas novidades desse setor. Esse uso de Big Data e Cloud Computing resultou em um aumento significativo nas vendas e na satisfação dos clientes, demonstrando a eficácia dessas tecnologias na prática. Aplicabilidade: Realizar análises de comportamento: a empresa pode analisar os dados de navegação e compra dos clientes para entender melhor suas preferências e seus comportamentos de compra. Personalização de ofertas: com base nos dados analisados, a empresa pode personalizar ofertas e recomendações de produtos para cada cliente, aumentando a probabilidade de compra. Previsão de demanda: utilizando técnicas de machine learning, a empresa pode prever a demanda futura de produtos, ajudando a otimizar o estoque e a logística. Melhoria da experiência do cliente: ao entender melhor os clientes, a empresa pode melhorar a interface do site e o atendimento, proporcionando uma experiência mais satisfatória. Tomada de decisões estratégicas: a análise de dados permite que a empresa tome decisões estratégicas baseadas em insights reais, aumentando a competitividade no mercado. 26 A integração de Big Data e Cloud Computing transformou a forma como as organizações gerenciam e utilizam dados, enfrentando os desafios de volume, velocidade e variedade. Essas tecnologias permitem transformar dados em insights acionáveis, possibilitando decisões informadas e maior eficiênciaoperacional. Com Big Data e Cloud Computing, empresas de diversos setores podem personalizar serviços e aprimorar a experiência do cliente. Este material destaca a importância dessas tecnologias e suas aplicações práticas, essencial para o crescimento e desenvolvimento na era digital. Referências BAHGA, A.; MADISETTI, V. Big Data Analytics: a hands-on approach. Victoria: VPT, 2019. MARINESCU, D. C. Cloud Computing: theory and practice. Burlington: Morgan Kaufmann, 2017. MAURO, A. D.; GRECO, M.; GRIMALDI, M. A formal definition of Big Data based on its essential features. Library Review, v. 65, n. 3, p. 122-135, 2016. Disponível em: https://www.emerald.com/insight/content/doi/10.1108/LR-06-2015-0061/full/html. Acesso em: 8 out. 2010. TALEB, I.; SERHANI, M. A.; DSSOULI, R. Big data quality: a data quality profiling model. In: WORLD CONGRESS, HELD AS PART OF THE SERVICES CONFERENCE FEDERATION, 15., 2019, San Diego. Anais […]. San Diego, CA: SCF, 2019. Disponível em: https://www.researchgate.net/profile/Ikbal-Taleb/publication/281284460_Big_ Data_Pre-Processing_A_Quality_Framework/links/56e77bce08ae85e780d01292/Big- Data-Pre-Processing-A-Quality-Framework.pdf. Acesso em: 8 out. 2010. WHITE, T. Hadoop: the definitive guide. 4. ed. Sebastopol, CA: O’Reilly Media, 2015. ZAKI, A. Nosql databases: new millennium database for big data, big users, cloud computing and its security challenges. International Journal of Research in Engineering and Technology, v. 3, n. 1, p. 403-409, 2014. Disponível em: https://scholar.google.co.in/citations?view_op=view_ citation&hl=en&user=fWx9kAIAAAAJ&citation_for_view=fWx9kAIAAAAJ:u5HHmVD_ uO8C. Acesso em: 8 out. 2024. https://www.emerald.com/insight/content/doi/10.1108/LR-06-2015-0061/full/html https://www.researchgate.net/profile/Ikbal-Taleb/publication/281284460_Big_Data_Pre-Processing_A_Quality_Framework/links/56e77bce08ae85e780d01292/Big-Data-Pre-Processing-A-Quality-Framework.pdf https://www.researchgate.net/profile/Ikbal-Taleb/publication/281284460_Big_Data_Pre-Processing_A_Quality_Framework/links/56e77bce08ae85e780d01292/Big-Data-Pre-Processing-A-Quality-Framework.pdf https://www.researchgate.net/profile/Ikbal-Taleb/publication/281284460_Big_Data_Pre-Processing_A_Quality_Framework/links/56e77bce08ae85e780d01292/Big-Data-Pre-Processing-A-Quality-Framework.pdf https://scholar.google.co.in/citations?view_op=view_citation&hl=en&user=fWx9kAIAAAAJ&citation_for_view=fWx9kAIAAAAJ:u5HHmVD_uO8C https://scholar.google.co.in/citations?view_op=view_citation&hl=en&user=fWx9kAIAAAAJ&citation_for_view=fWx9kAIAAAAJ:u5HHmVD_uO8C https://scholar.google.co.in/citations?view_op=view_citation&hl=en&user=fWx9kAIAAAAJ&citation_for_view=fWx9kAIAAAAJ:u5HHmVD_uO8C 27 Gerenciamento de Big Data: técnicas, ferramentas e machine learning Autoria: Rafael Albuquerque Pinto Leitura crítica: Nicolas Vogiantzis Objetivos • Compreender as técnicas para coleta e processamento de grandes volumes de dados. • Explorar as ferramentas principais para armazenamento e análise de Big Data. • Introduzir os principais algoritmos de aprendizado de máquina utilizados na análise de Big Data. 28 1. Introdução Hoje em dia, estamos lidando com uma quantidade de dados que cresce a cada segundo, vindos de diversas fontes, como redes sociais, sensores e transações on-line. Gerenciar esse grande volume de dados de forma eficiente se tornou essencial para tomar decisões mais informadas e inovar constantemente. Isso envolve não apenas a coleta desses dados, mas também o processamento, o armazenamento e a análise para transformar essa massa de informações em algo útil e estratégico. Para enfrentar esses desafios, são exploradas técnicas avançadas para coletar e processar dados, além de ferramentas poderosas, como Hadoop, Apache Spark e bancos de dados NoSQL, para armazenar e analisar essas informações. Além disso, são abordados algoritmos de machine learning, os quais ajudam a fazer previsões e categorizar dados, permitindo extrair valor real dessas informações. Compreender essas práticas é fundamental para transformar dados em um recurso valioso para o crescimento e sucesso. 2. Técnicas de coleta de dados em larga escala No contexto do Big Data, a coleta eficiente de grandes volumes de dados é uma etapa fundamental para que as organizações possam realizar análises precisas e tomar decisões informadas. A coleta de dados em larga escala envolve a captura de informações de várias fontes e a integração dessas informações de forma que sejam acessíveis e utilizáveis para análise. De acordo com Bahga e Madisetti (2019), existem diversas técnicas e metodologias que são amplamente utilizadas para atingir esse objetivo. 29 2.1 Coleta de dados em tempo real (streaming) A coleta de dados em tempo real é uma técnica fundamental em situações nas quais a latência mínima é crítica. Ela permite que as organizações capturem e processem dados conforme são gerados, possibilitando análises quase instantâneas e respostas rápidas a eventos. Esse tipo de coleta é amplamente utilizado em aplicações como monitoramento de redes, detecção de fraudes, análise de comportamento de usuários em sites e aplicativos e sistemas de Internet das Coisas (IoT). Uma das ferramentas mais populares para suportar a coleta de dados em tempo real é o Apache Kafka. Kafka é um sistema de mensagens distribuídas que permite a transmissão de dados entre produtores (fontes de dados) e consumidores (processadores de dados) com alta taxa de transferência e baixa latência. Ele foi projetado para lidar com grandes fluxos de dados e é altamente escalável, permitindo que novos nós sejam adicionados ao cluster sem interrupções no processamento. Bahga e Madisetti (2019) destacam que o Kafka é particularmente eficaz em ambientes de Big Data devido à sua arquitetura distribuída, que garante a resiliência e a continuidade do serviço mesmo em caso de falhas de hardware. Além disso, o Kafka oferece persistência dos dados através de log de commit, o que permite a reprocessamento dos dados em caso de falhas ou necessidade de análises retroativas (Bahga; Madisetti, 2019). Um exemplo prático de uso do Apache Kafka pode ser encontrado em plataformas de e-commerce, nas quais os dados de comportamento dos usuários, como cliques, pesquisas e compras, são capturados em tempo real. Esses dados são transmitidos para sistemas de recomendação que processam as informações instantaneamente, oferecendo produtos personalizados aos usuários com base em seu comportamento atual e histórico. 30 2.2 Coleta de dados em lotes (batch) Enquanto a coleta de dados em tempo real é essencial para aplicações que exigem respostas imediatas, a coleta de dados em batch continua sendo uma técnica vital para o processamento de grandes volumes de dados históricos ou onde a latência não é uma preocupação crítica. Nesta abordagem, os dados são coletados em grandes blocos ou lotes e processados periodicamente. Esse método é frequentemente utilizado em processos de análise retrospectiva, relatórios de desempenho e integração de dados de várias fontes. O processo de ETL (Extract, Transform, Load) é central para a coleta de dados em batch. ETL envolve três etapas principais (White, 2015): • Extração: os dados são extraídos de várias fontes, que podem incluir bancos de dados, arquivos de log, APIs de serviços web, entre outros. • Transformação: durante esta etapa, os dados são limpos, normalizados e agregados conforme necessário para a análise. Isso pode incluir a remoção de duplicatas, a conversão de formatos de dados e a aplicação de regras de negócios. • Carga: finalmente, os dados transformados são carregados em um data warehouse ou outro sistema de armazenamento, no qual serão acessíveis para análise. Um exemplo típico de coleta de dados em batch é o processamento noturno de transações financeiras em um banco. Durante o dia, as transações são registradas e, à noite, são agrupadas e processadas em batch paragerar relatórios de fechamento diário, que são analisados para detectar anomalias ou tendências de comportamento. Após a coleta, a integração e a preparação dos dados são etapas cruciais para garantir que os dados estejam prontos para análise. Esse processo 31 é essencial para consolidar dados de diferentes fontes e garantir que estejam em um formato consistente e acessível. A integração de dados pode ser desafiadora, especialmente quando se trata de dados provenientes de fontes heterogêneas, como bancos de dados relacionais, sistemas de arquivos e APIs. O Apache Nifi é uma ferramenta poderosa para automação de processos de integração de dados. Ele permite a construção de pipelines de dados que automatizam o fluxo de informações desde a coleta até o armazenamento final, aplicando transformações e validações conforme necessário. Damji et al. (2020) destacam que o Apache Nifi é especialmente útil em ambientes onde os dados precisam ser processados em diferentes formatos e volumes, proporcionando uma solução flexível e escalável para o gerenciamento de pipelines de Big Data (Damji et al., 2020). A preparação dos dados também pode envolver a seleção de características relevantes, o tratamento de dados ausentes e a normalização dos dados, para garantir que estejam em um formato adequado para os algoritmos de análise e machine learning que serão aplicados posteriormente. A coleta de grandes volumes de dados enfrenta desafios significativos, como a diversidade de fontes e formatos, a necessidade de escalabilidade e a garantia da qualidade dos dados. Com a proliferação de fontes, como dispositivos IoT, redes sociais e sensores, os dados vêm em formatos variados (estruturados, semiestruturados e não estruturados), dificultando sua integração e análise. Além disso, as ferramentas de coleta devem ser escaláveis para lidar com volumes crescentes sem perda de desempenho, e a qualidade dos dados precisa ser assegurada por meio da remoção de duplicatas, da correção de erros e da validação da consistência. 32 3. Ferramentas para armazenamento e análise de Big Data No universo do Big Data, o armazenamento e a análise de grandes volumes de dados exigem ferramentas robustas e escaláveis. Tecnologias, como Hadoop, Spark e bancos de dados NoSQL, são fundamentais para o sucesso dessas operações, permitindo que as organizações lidem com dados em diferentes formatos, escalas e velocidades. A seguir, exploraremos cada uma dessas ferramentas, destacando suas características e vantagens. 3.1 Hadoop: armazenamento e processamento em larga escala O Hadoop é uma das tecnologias mais amplamente adotadas para o gerenciamento de grandes volumes de dados. Seu componente central, o Hadoop Distributed File System (HDFS), é projetado para fornecer um sistema de armazenamento distribuído, o qual permite que grandes conjuntos de dados sejam divididos em blocos e distribuídos por um cluster de servidores (Figura 1). Essa arquitetura garante alta disponibilidade e tolerância a falhas, já que os dados são replicados em diferentes nós do cluster. 33 Figura 1 – Arquitetura HDFS Fonte: Apache Hadoop (2024, [s. p.]). O HDFS é capaz de armazenar dados de forma confiável mesmo em ambientes onde falhas de hardware são comuns, pois cada bloco de dados é replicado em vários nós, garantindo que, mesmo se um nó falhar, os dados ainda estarão acessíveis a partir de outros nós (White, 2015). Isso torna o HDFS ideal para aplicações que exigem a gestão de grandes volumes de dados, como em plataformas de mídia, análise de logs e processamento de dados científicos. Além do HDFS, o Hadoop MapReduce é uma ferramenta essencial para o processamento em larga escala. O MapReduce divide tarefas de processamento em pequenos blocos, os quais são executados paralelamente em diferentes nós do cluster, o que permite o processamento eficiente de grandes volumes de dados. O Hadoop MapReduce é altamente eficaz para tarefas que podem ser paralelizadas, como a indexação de grandes conjuntos de documentos 34 ou a análise de logs de servidores em um ambiente distribuído (White, 2015). 3.2 Spark: processamento em memória O Apache Spark é uma ferramenta poderosa para processar grandes volumes de dados, e seu grande diferencial está na forma como lida com esses dados. Ao contrário de outras ferramentas, como o Hadoop MapReduce, que grava os dados intermediários em disco após cada etapa de processamento, o Spark mantém esses dados na memória. Isso significa que ele pode ser muito mais rápido, especialmente em tarefas que precisam repetir várias operações nos mesmos dados (Damji et al., 2020). A arquitetura do Apache Spark é composta por vários componentes que trabalham em conjunto para realizar o processamento de grandes volumes de dados (Figura 2). Esses componentes incluem o Spark Application, o Spark Driver, a SparkSession, o Cluster Manager e os Spark Executors (Damji et al., 2020). Figura 2 – Arquitetura Spark Fonte: Damji et al. (2020, [n. p.]). 35 • Spark Application: o Spark Application é a aplicação principal do Spark que engloba o Spark Driver e a SparkSession. Ele é responsável por definir as operações que serão executadas no cluster. • Spark Driver: o Spark Driver é o cérebro da aplicação Spark. Ele é responsável por transformar as operações que você deseja realizar em tarefas distribuídas. Para isso, ele cria um plano de execução chamado DAG (Grafo Acíclico Dirigido) e coordena a execução dessas tarefas pelos diferentes executores no cluster. O Driver se comunica diretamente com o Cluster Manager para solicitar os recursos necessários, como CPU e memória, para que as tarefas possam ser executadas. • SparkSession: a SparkSession é um ponto de entrada unificado para todas as operações do Spark. Introduzida na versão 2.0 do Spark, ela simplifica o uso da plataforma ao oferecer uma interface única para executar todas as operações, desde a leitura de dados até a execução de consultas SQL e o processamento de DataFrames e Datasets. Antes da SparkSession, era necessário usar diferentes interfaces para diferentes tipos de operações, o que tornava o desenvolvimento mais complexo. Agora, com a SparkSession, você pode acessar todas as funcionalidades do Spark de maneira mais simples e eficiente. • Cluster Manager: o Cluster Manager é responsável por gerenciar os recursos do cluster, como alocação de CPU e memória. Ele distribui as tarefas do Spark Driver para os Spark Executors em diferentes máquinas (ou nós) no cluster. O Spark suporta diferentes tipos de gerenciadores de cluster, como YARN (usado no Hadoop), Mesos, Kubernetes, além de um gerenciador de cluster autônomo que vem integrado ao Spark. • Spark Executors: os Spark Executors são os trabalhadores no cluster que executam as tarefas atribuídas a eles pelo Spark 36 Driver. Cada executor roda em uma máquina do cluster e utiliza os recursos alocados pelo Cluster Manager para processar as tarefas em paralelo. Além disso, os executores armazenam dados em memória usando uma funcionalidade chamada Cache, o que permite reutilizar dados entre as diferentes operações sem precisar acessar o disco repetidamente, aumentando, assim, a eficiência do processamento. Quando uma aplicação Spark é iniciada, o Spark Driver solicita recursos ao Cluster Manager, que aloca os recursos necessários e distribui as tarefas entre os diferentes Spark Executors espalhados pelo cluster. Os executores, então, realizam as tarefas de processamento em paralelo, utilizando os núcleos de CPU disponíveis em cada máquina. Durante esse processo, a SparkSession simplifica o gerenciamento e a execução das operações, permitindo que o desenvolvedor interaja com o sistema de maneira unificada e eficiente. Essa arquitetura distribuída e a capacidade de manter dados em memória fazem do Spark uma ferramenta extremamente rápida e escalável, adequada para uma ampla gama de aplicações em Big Data, como aprendizadode máquina, análise de dados em tempo real e processamento de grandes volumes de dados históricos. 3.3 NoSQL: armazenamento de dados não estruturados e semiestruturados Os bancos de dados NoSQL foram desenvolvidos para atender à necessidade de armazenar e acessar grandes volumes de dados que não se encaixam bem em esquemas relacionais tradicionais. Bancos de dados, como MongoDB, Cassandra e HBase, são projetados para lidar com dados não estruturados e semiestruturados, oferecendo uma flexibilidade que os bancos de dados relacionais não conseguem igualar. 37 MongoDB é um banco de dados orientado a documentos que armazena dados no formato JSON, permitindo que os documentos tenham estruturas variáveis. Isso é particularmente útil em aplicações, como redes sociais e IoT, em que os dados podem ser altamente diversos e evoluir ao longo do tempo. Cassandra, por outro lado, é um banco de dados orientado a colunas que foi projetado para oferecer alta disponibilidade e escalabilidade horizontal, sendo capaz de gerenciar grandes volumes de dados distribuídos em diferentes locais geográficos. Cassandra é ideal para aplicações que exigem alta disponibilidade e a capacidade de escalar facilmente, como em sistemas de e-commerce global ou em redes de telecomunicações (Sadalage; Fowler, 2012). HBase é um banco de dados NoSQL que roda em cima do HDFS e é especialmente útil para armazenar grandes volumes de dados esparsos. Ele é frequentemente usado em conjunto com Hadoop para fornecer acesso em tempo real a dados armazenados em HDFS. Comparando esses bancos de dados NoSQL com bancos de dados relacionais tradicionais, a principal diferença reside na flexibilidade e na escalabilidade. Enquanto os bancos de dados relacionais exigem um esquema fixo e são mais adequados para dados estruturados, os bancos de dados NoSQL permitem que os dados sejam armazenados em formatos mais flexíveis, sem a necessidade de um esquema rígido. Isso os torna ideais para aplicações que lidam com grandes volumes de dados variados e que precisam escalar horizontalmente. 4. Algoritmos de aprendizado de máquina para análise de dados 38 Os algoritmos de aprendizado de máquina são ferramentas poderosas que permitem às máquinas aprender a partir de dados e fazer previsões ou tomar decisões com base nesses dados. Eles são amplamente utilizados para analisar grandes volumes de dados, extrair padrões e insights e melhorar a tomada de decisões em diversos setores. Conheceremos três categorias principais de algoritmos: regressão, classificação e clustering. 4.1 Regressão Os algoritmos de Regressão são usados para prever valores contínuos com base em um conjunto de dados. Dois dos algoritmos de regressão mais comuns são a regressão linear e a regressão logística. Regressão linear: a regressão linear é um método simples, mas poderoso, para prever o valor de uma variável dependente com base em uma ou mais variáveis independentes. Por exemplo, a regressão linear pode ser usada para prever o preço de imóveis com base em características, como tamanho, localização e número de quartos. A equação da regressão linear é uma linha reta que melhor se ajusta aos pontos de dados, minimizando a soma dos quadrados das diferenças entre os valores reais e os valores previstos. A regressão linear é um dos métodos mais amplamente utilizados para prever valores contínuos devido à sua simplicidade e eficiência (Géron, 2019). Regressão logística: a regressão logística, por outro lado, é usada para prever a probabilidade de um evento ocorrer. Em vez de prever um valor contínuo, ela prevê uma probabilidade que é mapeada para um valor binário (por exemplo, 0 ou 1). Isso a torna ideal para problemas de classificação binária, como prever se um cliente fará uma compra ou não. A equação de regressão logística é uma função sigmoide que transforma as previsões contínuas em probabilidades. A regressão 39 logística é amplamente usada em tarefas de classificação binária devido à sua capacidade de modelar a probabilidade de eventos (Géron, 2019). Esses algoritmos são amplamente utilizados em diversas áreas, incluindo finanças, para prever preços de ativos; marketing, para prever o comportamento do consumidor; saúde, para prever o risco de doenças. 4.2 Classificação Os algoritmos de classificação são usados para categorizar dados em diferentes classes ou categorias. Esses algoritmos são fundamentais para resolver problemas cujo objetivo é prever a classe ou o rótulo de um dado de entrada. Alguns dos algoritmos de classificação mais comuns incluem Árvores de Decisão, SVM (Support Vector Machines) e redes neurais. Árvores de decisão: as árvores de decisão funcionam dividindo os dados em subconjuntos com base em uma série de perguntas de “sim ou não”. Cada ramo da árvore representa uma decisão baseada em uma característica do dado, e as folhas finais representam a categoria prevista. Elas são amplamente usadas devido à sua simplicidade e interpretabilidade. Um exemplo de aplicação é a detecção de fraudes em transações financeiras, em que as decisões são tomadas com base em características, como valor da transação, localização e histórico do usuário. As árvores de decisão são populares por sua facilidade de interpretação e eficiência em tarefas de classificação (Géron, 2019). SVM (Support Vector Machines): o SVM é um algoritmo que encontra a linha (ou hiperplano) que melhor separa os dados em diferentes classes, maximizando a margem entre as classes. O SVM é 40 especialmente eficaz em problemas de classificação com duas classes e é amplamente utilizado em aplicações, como reconhecimento de imagens e análise de textos. O SVM é particularmente eficaz em tarefas de classificação binária, nas quais a separação clara das classes é crítica (Géron, 2019). Redes neurais: as redes neurais são modelos inspirados no funcionamento do cérebro humano e são compostas por camadas de neurônios artificiais. Elas são extremamente poderosas e podem aprender a partir de grandes volumes de dados, tornando-as ideais para tarefas complexas, como reconhecimento de voz, análise de sentimentos e classificação de imagens. Redes neurais profundas (deep learning) têm sido usadas em diversas aplicações, como diagnósticos médicos e carros autônomos. As redes neurais revolucionaram a análise de dados complexos, permitindo avanços significativos em várias áreas de inteligência artificial (Géron, 2019). Esses algoritmos de classificação são fundamentais em muitas aplicações modernas de aprendizado de máquina, em que é necessário categorizar grandes volumes de dados de maneira rápida e precisa. 4.3 Clustering Os algoritmos de Clustering são usados para agrupar dados similares em grandes conjuntos de dados. Ao contrário dos algoritmos de classificação, que exigem rótulos de classe para os dados de entrada, os algoritmos de clustering são geralmente não supervisionados, o que significa que eles descobrem padrões e grupos por conta própria. K-means: o K-means é um dos algoritmos de clustering mais populares. Ele funciona dividindo os dados em K grupos, em que K é um número predefinido de clusters. O algoritmo ajusta os clusters 41 iterativamente até que a variação dentro de cada cluster seja minimizada. O K-means é amplamente utilizado em aplicações, como segmentação de clientes, em que os clientes são agrupados com base em comportamento semelhante, como padrões de compra. O K-means é amplamente utilizado devido à sua simplicidade e eficiência em identificar padrões em grandes conjuntos de dados (Géron, 2019). Esses algoritmos de clustering são extremamente úteis para descobrir padrões ocultos e tendências em grandes conjuntos de dados. Eles ajudam as empresas a identificar grupos de clientes com interesses semelhantes, a realizar análises de mercado e a detectar anomalias em dados que podem indicar fraudes ou problemas técnicos. Conectando à Realidade: Exemplos Práticos Você sabiaque as empresas modernas enfrentam o desafio de lidar com volumes massivos de dados, provenientes de diversas fontes, e que os métodos tradicionais de processamento muitas vezes não são suficientes? Para enfrentar esse desafio, são utilizadas tecnologias avançadas de Big Data e algoritmos de aprendizado de máquina. Essas ferramentas permitem que as empresas extraiam insights valiosos dos dados, impulsionando a inovação e a eficiência operacional. Gerenciamento de Big Data envolve o uso de técnicas e ferramentas especializadas para coletar, armazenar e processar grandes quantidades de dados de forma eficiente. Ferramentas, como Hadoop e Spark, são cruciais para esses processos, permitindo que as empresas lidem com dados estruturados e não estruturados, enquanto algoritmos de aprendizado de máquina, como regressão, classificação e clustering, ajudam a transformar esses dados em informações úteis. 42 Imagine que você trabalha em uma empresa de saúde que coleta dados de pacientes a partir de dispositivos vestíveis, prontuários eletrônicos e monitoramento contínuo de sinais vitais. Para oferecer um atendimento mais personalizado e preventivo, a empresa decide utilizar as tecnologias de Big Data e aprendizado de máquina. A empresa utiliza o Hadoop para armazenar os dados de forma distribuída e segura, garantindo que os dados dos pacientes estejam sempre disponíveis. O Spark é utilizado para processar esses dados em tempo real, permitindo a análise contínua dos sinais vitais dos pacientes. Com o uso de algoritmos de aprendizado de máquina, como a regressão logística, a empresa pode prever a probabilidade de um paciente desenvolver uma condição de saúde crítica e intervir de forma preventiva. Por exemplo, se os sinais vitais de um paciente indicarem um risco elevado de ataque cardíaco, o sistema pode alertar os profissionais de saúde para tomarem as medidas necessárias. Além disso, algoritmos de clustering podem ser utilizados para identificar grupos de pacientes com características de saúde semelhantes, permitindo o desenvolvimento de programas de tratamento personalizados. Aplicabilidade: Monitoramento preventivo: a empresa pode monitorar continuamente os sinais vitais dos pacientes e usar algoritmos de aprendizado de máquina para prever eventos críticos, permitindo uma intervenção precoce. Personalização de tratamentos: com base nos dados analisados, a empresa pode personalizar os tratamentos para cada paciente, aumentando a eficácia das intervenções médicas. 43 Otimização de recursos: a análise dos dados ajuda a empresa a otimizar o uso de recursos médicos, como a alocação de leitos hospitalares e o estoque de medicamentos. Melhoria na experiência do paciente: ao compreender melhor as necessidades dos pacientes, a empresa pode melhorar a qualidade do atendimento, proporcionando uma experiência mais satisfatória. Tomada de decisões clínicas: a análise de dados permite que a equipe médica tome decisões clínicas mais informadas, baseadas em evidências reais, aumentando a segurança e a eficácia dos tratamentos. A integração de técnicas de gerenciamento de Big Data, como a coleta e o processamento de dados em larga escala, com ferramentas avançadas, como Hadoop, Spark e bancos de dados NoSQL, tem revolucionado a forma como as organizações lidam com vastos volumes de informações. Além disso, o uso de algoritmos de aprendizado de máquina, como regressão, classificação e clustering, possibilita a extração de insights valiosos e a tomada de decisões mais informadas. Este material destaca a importância dessas tecnologias e metodologias para enfrentar os desafios atuais de dados, demonstrando como sua aplicação prática pode impulsionar a inovação, a eficiência operacional e a competitividade em um mundo cada vez mais orientado por dados. Referências APACHE HADOOP. HDFS Architecture. Apache Hadoop, 2024. https://hadoop. apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html. Acesso em: 18 nov. 2024. BAHGA, A.; MADISETTI, V. Big Data Analytics: a hands-on approach. Victoria: VPT, 2019. DAMJI, J. S. et al. Learning Spark. 2. ed. Sebastopol: O’Reilly Media, 2020. https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html 44 GÉRON, A. Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow: concepts, tools, and techniques to build intelligent systems. 2. ed. Sebastopol: O’Reilly Media, 2019. SADALAGE, P. J.; FOWLER, M. NoSQL Distilled: a brief guide to the emerging world of polyglot persistence. Upper Saddle River: Addison-Wesley Professional, 2012. WHITE, T. Hadoop: the definitive guide. 4. ed. Sebastopol: O’Reilly Media, 2015. 45 Aplicações empresariais da ciência de dados Autoria: Rafael Albuquerque Pinto Leitura crítica: Nicolas Vogiantzis Objetivos • Implementar soluções de ciência de dados em contextos empresariais. • Utilizar dados para apoiar a tomada de decisões estratégicas. • Desenvolver habilidades para aplicar técnicas de ciência de dados em problemas reais nas empresas. 46 1. Introdução A ciência de dados emergiu como uma das áreas mais influentes no ambiente empresarial moderno, oferecendo ferramentas poderosas para transformar grandes volumes de dados em insights estratégicos. No cenário competitivo atual, as empresas que conseguem aproveitar esses dados para orientar suas decisões ganham uma vantagem significativa, seja em eficiência operacional, seja em inovação de produtos e serviços (Sharda; Delen; Turban, 2019). A relevância da ciência de dados no ambiente empresarial está enraizada na sua capacidade de melhorar a qualidade das decisões tomadas. Ao analisar padrões, prever comportamentos futuros e otimizar processos, a ciência de dados se torna um diferencial essencial para organizações que buscam se destacar no mercado (Sharda; Delen; Turban, 2019). Empresas que, anteriormente, dependiam de intuição ou métodos tradicionais de análise podem, agora, basear suas estratégias em dados concretos e análises profundas. Nos últimos anos, a importância da ciência de dados cresceu exponencialmente, impulsionada pelo aumento da digitalização e pela abundância de dados gerados por transações, interações on-line, dispositivos IoT, entre outros (Carvalho; Menezes; Bonidia, 2024). A habilidade de uma empresa de interpretar esses dados e transformá- los em ações tangíveis pode determinar seu sucesso ou fracasso em um mercado dinâmico e em constante evolução. O objetivo deste capítulo é explorar como a ciência de dados pode ser implementada de forma estratégica nas empresas para apoiar e aprimorar a tomada de decisões. Discutiremos as etapas de implementação, os desafios enfrentados e as práticas recomendadas para integrar a ciência de dados no processo decisório de uma organização. Além disso, apresentaremos exemplos práticos e estudos 47 de caso que ilustram o impacto positivo da ciência de dados nas operações empresariais. 2. Fundamentos da ciência de dados em empresas A ciência de dados é um campo interdisciplinar que combina estatística, matemática, ciência da computação e conhecimento de negócios para extrair insights e informações valiosas a partir de grandes volumes de dados (Carvalho; Menezes; Bonidia, 2024). Ela envolve a coleta, limpeza, análise, modelagem e interpretação de dados, com o objetivo de apoiar a tomada de decisões informadas. Em seu núcleo, a ciência de dados utiliza técnicas, como aprendizado de máquina, análise estatística e visualização de dados, para identificar padrões ocultos, prever tendências e otimizar processos (Sharda; Delen; Turban, 2019). Com o crescimento exponencial da quantidade de dados disponíveis, as empresas estão cada vez mais adotando a ciência de dados como uma ferramenta essencial para transformar dados brutos em conhecimento acionável. 2.1 A relação entre ciência de dados e o processodecisório nas empresas A ciência de dados desempenha um papel fundamental no processo decisório das empresas, fornecendo uma base objetiva para decisões estratégicas e operacionais (Sharda; Delen; Turban, 2019). Em vez de confiar em intuições ou suposições, as empresas podem utilizar análises baseadas em dados para (Grus, 2019): 48 • Identificar oportunidades e riscos: através da análise de grandes conjuntos de dados, as empresas podem detectar oportunidades de mercado, identificar possíveis riscos e ajustar suas estratégias de acordo. • Prever resultados: modelos preditivos permitem às empresas preverem comportamentos futuros, como demanda por produtos, tendências de vendas ou comportamento do cliente, facilitando o planejamento e a alocação de recursos. • Otimizar processos: ao analisar dados operacionais, as empresas podem identificar ineficiências e implementar melhorias para otimizar processos, reduzir custos e aumentar a produtividade. A ciência de dados, portanto, não só apoia a tomada de decisões, mas também transforma a forma como as empresas operam, tornando-as mais ágeis e competitivas. 2.2 Exemplos de áreas empresariais beneficiadas pela ciência de dados A aplicação da ciência de dados nas empresas é vasta, abrangendo diversas áreas funcionais que se beneficiam de insights baseados em dados. Alguns exemplos incluem: • Marketing: a ciência de dados permite a personalização de campanhas de marketing, segmentação de clientes, análise de comportamento de consumidores e previsão de tendências de mercado. Por exemplo, a análise de dados de compra pode ajudar as empresas a entender melhor as preferências dos clientes e a criar ofertas personalizadas, aumentando a eficácia das campanhas. 49 • Finanças: no setor financeiro, a ciência de dados é usada para análise de risco, detecção de fraudes, previsão de fluxo de caixa e otimização de investimentos. Bancos e instituições financeiras utilizam modelos preditivos para avaliar a probabilidade de inadimplência de empréstimos e para gerir portfólios de investimentos com maior precisão. • Operações: a otimização da cadeia de suprimentos, a gestão de inventário e a manutenção preditiva são exemplos de áreas operacionais que se beneficiam da ciência de dados. Empresas de logística, por exemplo, utilizam análise de dados para otimizar rotas de entrega, reduzir custos de transporte e melhorar a eficiência operacional. Esses exemplos ilustram como a ciência de dados pode ser aplicada em diferentes áreas empresariais para melhorar a eficiência, reduzir custos e aumentar a competitividade. Ao integrar a ciência de dados em sua estratégia de negócios, as empresas não apenas tomam decisões mais informadas, mas também se posicionam melhor para enfrentar os desafios do mercado. 3. Implementação de soluções de ciência de dados Para implementar soluções eficazes de ciência de dados em uma empresa, o primeiro passo é identificar claramente os problemas ou as oportunidades que podem ser abordados utilizando dados. Essa etapa é crucial, pois garante que os esforços de ciência de dados estejam alinhados com os objetivos estratégicos da empresa e sejam direcionados para áreas que realmente necessitam de melhorias. 50 A identificação de problemas empresariais começa com uma análise aprofundada das operações e dos processos existentes (Davenport, 2017). Os líderes e analistas devem se perguntar: quais são os principais desafios enfrentados pela empresa? Existem áreas com ineficiências significativas ou áreas onde as decisões são tomadas com base em intuição em vez de dados concretos? Exemplos comuns incluem: • Redução de custos operacionais: identificar processos ineficientes que podem ser otimizados. • Aumento da retenção de clientes: analisar padrões de comportamento que indicam o risco de churn (probabilidade de que um cliente deixe de fazer negócios com uma empresa). • Melhoria da precisão das previsões de demanda: usar dados históricos para prever a demanda futura com maior precisão. Essas perguntas ajudam a delimitar as áreas que podem se beneficiar da ciência de dados. Em seguida, é necessário avaliar a disponibilidade e a qualidade dos dados que podem ser usados para responder a essas perguntas. Por exemplo, se o objetivo é reduzir o churn (taxa de cancelamento de clientes), a empresa precisará de dados históricos sobre o comportamento do cliente, incluindo interações com o suporte, padrões de compra e feedback. 3.1 Ferramentas e técnicas para a análise de dados preliminar Antes de desenvolver modelos complexos, é essencial realizar uma análise preliminar dos dados disponíveis. Essa análise, conhecida como Análise Exploratória de Dados (EDA, do inglês Exploratory Data Analysis), tem o objetivo de resumir as características principais dos dados e detectar padrões, outliers e possíveis anomalias (Carvalho; Menezes; 51 Bonidia, 2024). A EDA pode ser realizada com várias ferramentas, dependendo da complexidade dos dados e do nível de análise requerido: • Python: com bibliotecas como Pandas, Matplotlib e Seaborn, Python permite realizar EDA de maneira eficiente e visualmente rica. Pandas é utilizado para manipulação e análise de dados, enquanto Matplotlib e Seaborn são excelentes para criar visualizações que ajudam a entender a distribuição dos dados, relações entre variáveis e padrões temporais. • R: outra ferramenta poderosa para EDA, especialmente popular em ambientes acadêmicos. R oferece pacotes, como ggplot2, para visualização de dados; dplyr, para manipulação de dados; caret, para modelagem e validação. • Ferramentas de BI: plataformas, como Tableau e Power BI, são amplamente usadas para criar dashboards interativos que permitem uma exploração visual dos dados. Essas ferramentas são ideais para envolver stakeholders não técnicos, facilitando a comunicação dos insights iniciais. Através da EDA, é possível identificar variáveis críticas, entender a distribuição dos dados e decidir sobre a viabilidade da modelagem, estabelecendo uma base sólida para a fase de desenvolvimento de modelos. 3.2 Desenvolvimento e implementação de modelos Uma vez que as oportunidades foram identificadas e os dados analisados preliminarmente, a próxima etapa é o desenvolvimento e a implementação dos modelos de ciência de dados. Esses modelos são os motores que transformam dados em insights acionáveis. Os modelos de 52 ciência de dados variam amplamente em função do tipo de problema que se deseja resolver. Aqui, exploramos três dos modelos mais comuns (Sharda; Delen; Turban, 2019): • Regressão: utilizada para prever valores contínuos, como receita, preços, ou volumes de vendas. Por exemplo, uma empresa pode usar regressão linear para prever as vendas mensais com base em variáveis, como gastos com marketing, tendências econômicas e sazonalidade. • Classificação: aplicada para categorizar dados em classes discretas. Um exemplo típico é a classificação de clientes em categorias como “alto risco” e “baixo risco” de churn. Modelos de classificação comuns incluem regressão logística, árvores de decisão e redes neurais. • Clustering (Agrupamento): técnica usada para agrupar dados semelhantes sem rótulos predefinidos. Este modelo é útil para segmentação de mercado, em que os clientes podem ser agrupados com base em comportamento de compra, permitindo a criação de campanhas de marketing personalizadas. Algoritmos, como k-means e DBSCAN, são populares para clustering. 3.3 Fases do desenvolvimento de um modelo O processo de desenvolvimento de um modelo de ciência de dados é um ciclo iterativo e rigoroso, composto por várias fases críticas que, em conjunto, garantem a criação de uma solução robusta e confiável. Cada uma dessas fases desempenha um papel vital no sucesso do projeto, desde a coleta inicial de dados até a validação final do modelo. Veja, na Figura 1, as fases do desenvolvimento. 53 Figura 1 – Fases do desenvolvimento Fonte: elaborada