Prévia do material em texto
1 2 Sumário UNIDADE I – O QUE É CIÊNCIA DE DADOS .............................................................. 5 Objetivos: ................................................................................................................ 5 INTRODUÇÃO .......................................................................................................... 6 Conteúdo Programático .......................................................................................... 7 1. CIÊNCIA DE DADOS: O QUE É, CONCEITO E DEFINIÇÃO ............................... 8 1.1 Importância da Ciência de Dados para as empresas ....................................... 8 1.2 Por onde começar com Data Science? ............................................................ 9 2. AS ÁREAS DA ESTATÍSTICA ........................................................................... 11 2.1 Probabilidade: ................................................................................................ 12 2.2 Estatística descritiva: ..................................................................................... 12 2.3 Estatística inferencial: .................................................................................... 12 3. ANÁLISE PREDITIVA ......................................................................................... 14 3.1 Tipos de Análise Preditiva .............................................................................. 15 3.2 Análise Preditiva e Big Data ........................................................................... 17 4. A PROFISSÃO DO CIENTISTA DE DADOS ......................................................... 21 4.1 Cientistas de Dados – Origem ....................................................................... 22 4.2 Perfil e características do Cientista de Dados. ............................................... 24 Referências Bibliográficas ................................................................................... 27 UNIDADE II – EXTRAÇÃO, TRANSFORMAÇÃO E CARREGAMENTO DOS DADOS. ................................................................................................................................... 28 Objetivos: .............................................................................................................. 28 INTRODUÇÃO ........................................................................................................ 29 Conteúdo Programático ........................................................................................ 30 1.CONCEITOS FUNDAMENTAIS ........................................................................... 31 1.1 BIG DATA ...................................................................................................... 31 1.2 DATA WAREHOUSE ..................................................................................... 35 1.3 DATA LAKE ................................................................................................... 36 1.4 APACHE HADOOP ........................................................................................ 38 2. O QUE É ETL – EXTRACT TRANSFORM LOAD? ............................................ 41 2.1 SOFTWARES DE ETL ................................................................................... 43 2.2 ETL PARA BIG DATA .................................................................................... 46 2.3 COMO O ETL É USADO? ............................................................................. 47 3. ANÁLISE DE DADOS ......................................................................................... 50 3.1 EXPLORAÇÃO DOS DADOS ........................................................................ 51 3.2 PREPARAÇÃO DOS DADOS ........................................................................ 51 3.3 PLANEJAMENTO DO MODELO ................................................................... 52 3.4 IMPLEMENTAÇÃO DO MODELO ................................................................. 54 3 3.5 COMUNICAÇÃO DOS RESULTADOS .......................................................... 54 4. FERRAMENTAS E FRAMEWORKS UTILIZADOS NO FLUXO ETL. ................ 56 4.1 FRAMEWORKS e FERRAMENTAS PARA DESENVOLVER FLUXOS ETL .. 57 4.2 FERRAMENTAS DE INTEGRAÇÃO DE DADOS .......................................... 61 Referências Bibliográficas ................................................................................... 66 UNIDADE III – MACHINE LEARNING........................................................................ 67 Objetivos: .............................................................................................................. 67 INTRODUÇÃO ........................................................................................................ 68 Conteúdo Programático ........................................................................................ 69 1. MACHINE LEARNING - O QUE É E QUAL SUA IMPORTÂNCIA? ................... 70 1.1 Exemplos de aplicações de Machine Learning .............................................. 72 2. INTELIGÊNCIA ARTIFICIAL (IA) X MACHINE LEARNING X DEEP LEARNING X REDES NEURAIS ............................................................................................... 76 3. TIPOS DE APRENDIZAGEM .............................................................................. 83 4. COMO FUNCIONA O MACHINE LEARNING? ........................................................... 86 4.1 Fluxo do processo de aprendizagem do Machine Learning ......................................... 88 4.2 Como o Machine Learning está sendo utilizado nos negócios ....................... 88 Indicação de Leitura: ............................................................................................ 92 Referências Bibliográficas ................................................................................... 92 UNIDADE IV – PYTHON FUNDAMENTOS PARA ANÁLISE DE DADOS ................. 93 Objetivos: .............................................................................................................. 93 INTRODUÇÃO ........................................................................................................ 94 Conteúdo Programático ........................................................................................ 95 1. ENTENDENDO PYTHON ................................................................................... 96 1.1 Vantagens de aprender Python...................................................................... 98 2. A ANÁLISE DE DADOS COM PYTHON .......................................................... 101 3. FERRAMENTAS PYTHON PARA MACHINE LEARNING ............................... 106 3.1 Ferramentas de software para a criação de soluções baseadas em ML ...... 106 4. OUTRAS LINGUAGENS PARA CIÊNCIA DE DADOS .................................... 111 4.1 Comparativo da Linguagem R e Python ....................................................... 114 Referências Bibliográficas ................................................................................. 119 UNIDADE V – PROCESSOS E PRÁTICAS PARA APLICAÇÃO DA CIÊNCIA DE DADOS..................................................................................................................... 120 Objetivos: ............................................................................................................ 120 INTRODUÇÃO ...................................................................................................... 121 Conteúdo Programático ...................................................................................... 122 1. Conceito DataOps e DevOps: Suas funcionalidades e como aplicar. ......... 123 1.1 Como Implementar o DataOps? ..................................................................... 126 4 2. Enterprise Data Hub ........................................................................................129 3. Open Data (Dados abertos) ............................................................................ 133 Referências Bibliográficas ................................................................................. 138 5 UNIDADE I – O QUE É CIÊNCIA DE DADOS Objetivos: Conceituar Ciência de Dados; Entender as áreas da Estatística; Definir Análise Preditiva; Conhecer o Perfil do Cientista de Dados. 6 INTRODUÇÃO Nesta unidade será apresentado a Ciência de Dados que é um campo interdisciplinar que utiliza métodos, processos, algoritmos e sistemas científicos para extrair valor dos dados, e entender a importância da Ciência de dados para as empresas. Veremos como a Estatística é usada na Ciência de Dados fornecendo subsídios para coletar, organizar, resumir, analisar, apresentar dados e avaliar as informações contidas em grande conjunto de dados. Será apresentado o conceito de Analise preditiva que utiliza dados históricos, que são usados para construir modelos matemáticos que nos possibilitam “prever o futuro”, antecipar acontecimentos e traçar possíveis tendências. Serão apresentadas soluções de Análise Preditiva. Conhecer o perfil e características de um Cientista de Dados. 7 Conteúdo Programático 1. Ciência de Dados: O que é, conceito e Definição 1.1 Importância da Ciência de Dados para as empresas 1.2 Por onde começar com Ciência de Dados? 2. As áreas da Estatística 2.1 Probabilidade 2.2 Estatística descritiva 2.3 Estatística inferencial 3. Análise Preditiva 3.1 Tipos de Análise Preditiva 3.2 Análise Preditiva e Big Data 3.2.1 Soluções de Análise Preditiva 4. A Profissão do Cientista de Dados 4.1 Cientistas de Dados – Origem 4.2 Perfil e características do Cientista de Dados. 8 1. CIÊNCIA DE DADOS: O QUE É, CONCEITO E DEFINIÇÃO Data Science ou Ciência de Dados, ela que permite a extração de informações extremamente valiosas a partir dos dados contidos em uma corporação ou empresa. Estamos em plena era do Big Data, e a ciência dos dados está cada vez mais se tornando um campo muito promissor para ser explorado e assim processar grandes volumes gerados por meio de diversas fontes e em diferentes velocidades. Data Science ou Ciência de Dados é um estudo muito disciplinado com relação aos dados e demais informações inerentes à empresa e as visões que cercam um determinado assunto. Em resumo é uma ciência que visa estudar as informações, seu processo de captura, transformação, geração e, posteriormente, análise de dados. A ciência de dados envolve diversas disciplinas. São elas: Estatística Computação Conhecimento do negócio Matemática 1.1. Importância da Ciência de Dados para as empresas https://www.cetax.com.br/blog/data-science/ http://cetax.com.br/blog/big-data/ https://www.cetax.com.br/blog/data-science/ 9 A estimativa afirma que cerca de 90% de todos os dados armazenados em todo o mundo foram produzidos somente nos dois últimos anos e seus rastros continuam se multiplicando a cada ano que passa. Quando analisamos essas informações temos a impressão de ser tudo muito assustador e impossível de ser controlado, mas não é bem assim. A ciência de dados está cada vez mais consistente no mercado para que possamos acompanhar esse crescimento sem tropeços no futuro. Portanto, inevitavelmente grande parte das empresas fazem parte desse ecossistema de dados, e sem um acompanhamento e analises cuidadosas em um curto prazo será quase impossível tomar decisões inteligentes a favor de bons resultados. É importante destacar que os dados permitem que as empresas e organizações entendam melhor seus clientes e consumidores e possam aprimorar cada vez mais os seus processos. Diante de todos esses fatos, a Data Science ou Ciência de Dados tem sido muito mais relevante em notícias sobre indústria e negócios, e não é pra menos, pois trata-se de uma disciplina acadêmica e profissão totalmente em alta no mercado. 1.2 Por onde começar com Data Science? Começar com Data Science pode acontecer desde uma profissionalização do uso do Excel, da organização e limpeza de dados de bases SQL e NoSQL até o uso de análise exploratória e estatística para tirar insights com business intelligence. O último passo seria poder predizer comportamentos com machine learning e inteligência artificial. Apesar de que a tecnologia, o algoritmo, os métodos e os processos ficam dentro do grande guarda-chuva Ciência de Dados, no entanto costuma-se quebra-lo nas seguintes áreas: a. Ciência de dados: é a responsável por trazer insights. Por exemplo, dado um conjunto de dados (o data set), como a geolocalização do comércio de um bairro, o que podemos concluir sobre a localização dos restaurantes com mais tempo de funcionamento? Isso pode ser feito com http://cetax.com.br/blog/data-science/ http://cetax.com.br/blog/data-science/ 10 dados em um Excel e macros VBAs, mas normalmente estamos falando de uma grande quantidade de dados, a tal Big Data. b. Análise exploratória de dados: são os métodos usados para visualizar dados (data visualization) e poder começar a fazer perguntas, utilizando testes de hipótese. c. Machine Learning: é quando criamos modelos treinados para prever alguma ação, fazer uma previsão. Depois que conhecemos bem um dataset, esses modelos nascem para poder nos auxiliar em tomadas de decisão. Por exemplo: já sabemos onde estão os restaurantes com mais tempo de funcionamento do nosso bairro, podemos ter um modelo para predizer o tempo de vida de um restaurante em um novo ponto? d. Aprendizado supervisionado e não supervisionado, redes neurais, regressões lineares e algoritmos genéticos são passos que aparecem mais a frente, junto com um entendimento essencial de estatística. 11 2. AS ÁREAS DA ESTATÍSTICA Para não haver confusão, é importante destacar que a Ciência de Dados é diferente das Análises Estatísticas e da Ciência da Computação. A diferença é com relação ao método aplicado e aos dados coletados, que é empregado princípios científicos. A principal razão de fazer esta diferenciação, é o chamado Big Data, que é responsável por demandar o uso de diferentes tecnologias com relação à análise estatística. Em outras palavras, profissionais de estatísticas existentes a anos no mercado não conseguiriam fazer uma análise profunda dos dados em massa quase que em tempo real, que é o que ocorre nos dias de hoje nas grandes empresas. Nesse caso, a Ciência de Dados está buscando descobrir conhecimento demandável a partir de uma quantidade grande e pesada de dados que podem ser usadas para tomar decisões e fazer previsões, e não simplesmente a interpretação de números. O termo “estatística” pode ser dividido em dois grupos diferentes na análise de dados. Pode ser usado apenas como um termo genérico, em que precisamos calcular valores numéricos de interesse a partir de nossos elementos, como, por exemplo, analisar a distribuição de salários no Brasil. Essas análises frequentemente incluem cálculo de média, mediana, moda e assim por diante. Esse tipo de abordagem está mais voltado para uma estatística consolidada, que vemos com muita frequência e que nos fornece a estrutura básica teórica e prática para Data Science. Muitas pessoas podem pensar que não é necessário http://cetax.com.br/blog/big-data/ 12 ter um conhecimento profundo em estatística, pois atualmente os softwares já fazem boa parte do trabalho duro. Realmente, isso é verdade, porém, quando realizamos uma análise, sem o entendimento genérico do processo, não é possível explicar ou convencer alguém da sua utilidade. O outro grupo da estatística, está relacionado ao teste de hipóteses, para estimar incertezas e conclusões. Ele nos ajuda a determinar se um padrão observado é válidoou pode ser descartado. Nesse quesito, podemos citar a Análise preditiva. 2.1 Probabilidade: A teoria de probabilidade permite a descrição de fenômenos aleatórios oriundos das incertezas. 2.2 Estatística descritiva: A primeira etapa da análise visa descrever e organizar os dados com objetivo de facilitar a compreensão e utilização das informações que serão extraídas. Gráficos, tabelas e medidas são as principais ferramentas utilizadas na estatística descritiva. Esse ramo da estatística usa medidas de tendência central, medidas de dispersão, percentis e etc. A estatística descritiva, ao contrário da estatística inferencial, está focada na apresentação dos dados, mas não procura fazer inferências ou tirar sólidas conclusões que podem ser usados para prever futuros dados da amostra. 2.3 Estatística inferencial: Ligada a teoria de probabilidades, a inferência estatística pode ser definida como um conjunto de procedimentos estatísticos que têm por finalidade generalizar conclusões de uma amostra para uma população. Um bom exemplo de aplicação dos métodos de estatística inferencial, presente no nosso cotidiano, são as pesquisas eleitorais. A estatística inferencial utiliza os dados de uma amostra (geralmente apresentados com a estatística descritiva) para realizar https://www.guiaestudo.com.br/probabilidade 13 inferências sobre a população. Toda inferência está acompanhada de um grau de incerteza. A estatística inferencial possui técnicas que permitem dar ao pesquisador um grau de confiabilidade nas afirmações que faz com a população, baseadas nos resultados amostrais. O problema fundamental da estatística inferencial é, portanto, medir o grau de incerteza dessas generalizações. 14 3 ANÁLISE PREDITIVA A análise preditiva é exatamente a junção do avanço tecnológico que temos, que inclui mineração de dados, machine learning, inteligência artificial e estatística, com o alto volume de informações que criamos diariamente. Nas palavras de Thomas H. Davenport, um dos principais especialistas em analytics no mundo: “Em uma época em que empresas em muitos setores oferecem produtos similares e usam tecnologias parecidas, processos de negócios diferenciados estão entre os últimos pontos de diferenciação.” De acordo com FINLAY(2014) - A analítica preditiva é a área de estudo estatístico cujo objetivo é extrair informações dos dados e posteriormente utilizá- los para identificar padrões de comportamento, e prever tendências, podendo assim, prever eventos desconhecidos no futuro, presente ou até mesmo no passado, como por exemplo a predição de suspeitos que cometeram crimes. Para SIEGEL (2013) - A analítica preditiva pode ser definida também como previsões com nível de granularidade mais detalhado, baseando-se em pontuações preditivas probabilísticas para cada elemento organizacional individual. 15 Analise preditiva utiliza dados históricos, esses dados são usados para construir modelos matemáticos que nos possibilitam “prever o futuro”, antecipar acontecimentos e traçar possíveis tendências. 3.1 Tipos de Análise Preditiva Previsão de Churn O Churn é o estudo do percentual de clientes que solicita o cancelamento do serviço contratado em determinado intervalo de tempo. A previsão de cancelamento é uma aplicação muito utilizada pelo time de acompanhamento do Cliente a partir de análise preditiva. Quando é compreendido em qual momento o produto não está mais satisfazendo ao cliente da forma que a empresa gostaria, as ações tomadas para criar a melhoria são muito mais efetivas. Nessa análise é preciso entender todo o processo da sua base de cliente para assim criar estratégias para evitar cancelamentos futuros. Leitura de Upsell and Cross-Sell Upselling - Consiste na oferta de um modelo ou pacote de serviços mais moderno ou completo do que o cliente já possui ou esteja em processo de compra. Cross-selling - O princípio do cross-selling é complementar o produto que o cliente já possui ou esteja comprando. Praticamente na mesma leitura da Previsão de Churn, nesta é possível conseguir entender em quais pontos da caminhada seu cliente está mais propício para aumentar o plano ou adquirir mais produtos da sua empresa. Entendendo o momento de satisfação do usuário do seu serviço, conectado ao que você pode 16 oferecer para gerar mais valor para ele, o momento de realizar um upsell ou cross-sell fica ainda mais claro. Otimização de campanhas de Marketing Usando o auxílio de dados, as decisões tomadas em uma campanha são blindadas de erros já cometidos no passado. Quando se utiliza a análise preditiva para realizar uma campanha de marketing, é possível entender quais serão os melhores canais para cada conteúdo e linguagem usada. Entendendo campanhas anteriores, é possível prever como o público irá reagir para cada técnica usada em determinada ação. Empresas como Amazon e Target são conhecidas pelo uso de dados nas suas campanhas de Marketing. Tanto para criar estratégias efetivas quanto para engajar o público. Segmentação de lead para campanhas Segmentar leads significa agrupar seus potenciais clientes de acordo com suas características. Isso ajuda sua equipe a organizar seu conteúdo e direcionar suas ações para garantir bons resultados de vendas. Nesse caso, o uso de dados já se tornou algo essencial. A alimentação da sua base de leads é cada dia mais segmentada, entregando exatamente o conteúdo que a pessoa precisa no momento certo. Em um processo para ter entregas mais personalizadas, e criar grupos segmentados é um enorme passo para ter uma alimentação mais eficiente, onde a audiência recebe apenas conteúdos relevantes para eles. O uso de big data pode ser um grande diferencial na sua estratégia de segmentação. Distribuição de conteúdo personalizado A entrega preditiva da Amazon é um grande exemplo de como acertar os desejos do cliente ou possível cliente na hora exata que ele precisa. Aqui estamos falando basicamente da mesma leitura de dados, mas com uma entrega de conteúdos que vão gerar cada vez mais valor para audiência, aproximando sua empresa do futuro cliente. Fazer um conteúdo baseado em dados pode ser o https://rockcontent.com/blog/conteudo-baseado-em-dados/ 17 diferencial de uma boa estratégia. Quando temos uma análise pessoal, sem dúvida alguma a entrega será mais efetiva para cada lead que você tem. 3.2 Análise Preditiva e Big Data Análise Preditiva é um facilitador do Big Data: empresas coletam grandes quantidades de dados de clientes em tempo real e Análise Preditiva usa dados históricos, combinados com esses dados em tempo real, para prever eventos futuros. A análise preditiva permite que as empresas utilizem Big Data (dados armazenados e em tempo real) para se deslocar de uma visão histórica a uma análise prospectiva do cliente, de acordo com a publicação de Davi Matos na da Revista Ciência de Dados. Por exemplo, as lojas que utilizam dados de programas de fidelidade podem analisar qual foi o comportamento de compra dos clientes no passado e prever que promoções os clientes tendem a aderir no futuro. A análise preditiva também está sendo aplicada para análise do comportamento dos usuários em websites e como eles usam seus “cliques” com o mouse. Isso permite personalizar a experiência de cada usuário no website, como se fosse um website único para cada cliente. 3.2.1 Soluções de Análise Preditiva Os softwares são grandes aliados na hora de implementar a análise preditiva. Abaixo alguns dos softwares mais utilizados no mercado. Power BI O Power BI é o famoso software de análise de dados e inteligência de negócios da Microsoft. Com ele, é possível importar dados diretamente de planilhas do Excel ou data warehouses e conduzir análises preditivas de alta performance. Além disso, a ferramenta permite que os relatórios e gráficosresultantes sejam compartilhados. 18 Adobe Analytics O Adobe Analytics é o concorrente de peso do Google Analytics, com uma ferramenta exclusiva de análise preditiva.O sistema utiliza o machine learning e modelagem estatística para analisar dados de forma avançada e prever comportamentos futuros como rotatividade e probabilidade de conversão. Tableau O Tableau é uma das plataformas de BI (Business Intelligence) líderes de mercado, com recursos avançados de análise preditiva. Um dos destaques da ferramenta é a capacidade de modificar cálculos e testar diferentes cenários em análises sofisticadas, utilizando vários conjuntos, grupos e segmentações. Tudo isso em um painel simples, com comandos de arrastar e soltar, que facilita o uso até pelos usuários inexperientes. IBM Cognos Analytics O IBM Cognos Analytics promete criar uma experiência única de análise personalizada e orientada por IA. A ferramenta da IBM inclui recursos de análise preditiva intuitivos e fáceis de usar, com uma extensa biblioteca de algoritmos e modelos estatísticos avançados. Além disso, permite a integração com projetos desenvolvidos em R, Python e outras linguagens utilizadas no mercado. 19 Sisense O Sisense é uma plataforma que propõe simplificar a análise de dados e integrar a equipe na inteligência de negócios. Para isso, o sistema centraliza todas as informações no mesmo lugar, em uma plataforma híbrida que facilita o acesso aos dados a qualquer hora e lugar. Abaixo outras soluções de Análise Preditiva, free e proprietárias. Free: R – sem dúvida uma das mais utilizadas atualmente e a base para muitas outras soluções (inclusive as proprietárias) Orange – ferramenta de visualização e análise. O data mining pode ser feito utilizando scripts em Python. Weka – conjunto de algoritmos para Machine learning e data mining Octave – o Octave é muito parecido com o Matlab Data Science Studio (DSS Community Edition) – plataforma com todas as ferramentas necessárias para análise de Big Data e geração rápida de resultados de análise. Apache Spark MLlib – é o motor para processamento em larga escala, com diversos algoritmos poderosos para análise de regressão, classificação, naive bayes e muito mais. NumPy e SciPy – pacotes de computação científica em Python. Proprietárias: SAS Predictive Analytics https://www.r-project.org/ http://orange.biolab.si/ http://www.cs.waikato.ac.nz/ml/weka/ https://www.gnu.org/software/octave/ http://www.dataiku.com/dss/trynow/ http://spark.apache.org/mllib/ http://www.scipy.org/ http://www.sas.com/en_us/insights/analytics/predictive-analytics.html 20 IBM Predictive Analytics SAP Predictive Analytics STATISTICA MATLAB Minitab RapidMiner GraphLab Create Oracle Data Mining (ODM) TIBCO Analytics Data Science Studio http://www-03.ibm.com/software/products/en/category/predictive-analytics http://go.sap.com/solution/platform-technology/predictive-analytics.html http://www.statsoft.com/ http://www.mathworks.com/products/matlab/ http://www.minitab.com/ https://rapidminer.com/ https://dato.com/products/create/ http://www.oracle.com/technetwork/database/options/advanced-analytics/odm/index.html http://www.tibco.com/products/analytics https://www.dataiku.com/dss/ 21 4. A PROFISSÃO DO CIENTISTA DE DADOS Ultimamente, um dos assuntos que mais ouvimos falar é sobre Data Science e como se tornar um renomeado Cientista de Dados. O profissional de Data Science utiliza os dados para encontrar soluções e identificar tendências. É necessário que ele saiba interagir com os dados e a partir disso, criar hipóteses concretas. A popularidade repentina dessa área é atribuída em como as empresas estão utilizando os dados para ativo estratégico e vantagem competitiva. Nós convivemos com isso o tempo inteiro, quando recebemos alguma propaganda similar ao que havíamos pesquisado ou recomendações de músicas e séries. A mineração de dados tem aplicação no aprimoramento do relacionamento com o cliente e a extração de conhecimentos úteis a partir dele. Cientista de Dados, é uma nova geração de especialistas com foco analítico que possibilite soluções técnicas para resolução de problemas complexos. Eles também são curiosos, não há sentido de problemas que possivelmente podem ser resolvidos. Em sua maioria, os especialistas são parte de cientistas e parte matemáticos da computação. Podem também ser chamados de analistas de tendências, pois transitam entre o universo de TI e negócios facilmente. Esses profissionais estão sendo cada vez mais requisitados no mercado, além de serem muito bem remunerados por suas análises e pesquisas. Esse crescimento e tendência na busca de empresas estão relacionados com a preocupação de que as empresas estão tendo com relação ao Big Data. https://www.cetax.com.br/blog/big-data-tudo-que-voce-precisa-saber/ 22 4.1 Cientistas de Dados – Origem Muitos profissionais iniciaram sua carreira inicialmente como analistas de dados ou estatísticos. Com o amplo crescimento de grandes dados e evolução das tecnologias de armazenamento e de processamento de dados também ganhou mais espaço. É importante ressaltar que os dados não se tratam apenas de um reflexo de caráter tardio para o departamento de TI. Atualmente são informações muito importantes que exigem maior atenção e analise e muita criatividade para ser traduzidos. O papel do Cientista de Dados consiste basicamente de Teses Acadêmicas. Há algum tempo como grandes universidades que receberam um reconhecimento que as empresas necessitam de programadores e pessoas com forte espirito de equipe. Dessa forma, os professores acadêmicos passaram a ajustar suas aulas para acomodar também as necessidades. Alguns programas como o Instituto de Análise Avançada na Carolina do Norte State University, também prepararam- se para esse perfil de profissionais. Apenas nas universidades americanas existem cerca de 60 programas para este perfil. É necessário que todo Cientista de Dados saiba quais informações está manipulando e procurar a melhor forma de compreende-las é um dos seus maiores desafios. É necessário que um Cientista de dados conheça sobre os dados estruturados e não estruturados. Os dados estruturados são organizados em linhas e colunas, geralmente são encontrados em planilhas, arrays e tabelas. Já os dados não estruturados referem-se aos elementos que não podem ser organizados em linhas e colunas, como imagens, documentos e e-mails. Algumas tarefas que podem ser seguidas para o tratamento e a preparação dos dados que todo profissional Data Science precisa saber são: https://www.sas.com/pt_br/insights/analytics/cientistas-de-dados.html 23 Interação: Ler e escrever formatos variados de arquivos; Preparação: Limpar, manipular, combinar e normalizar as informações para a análise; Transformação: Aplicar operações matemáticas e estatísticas em grupos de conjuntos de elementos; Modelagem e Processamento: Conectar seus dados a modelos estatísticos e algoritmos de aprendizado de máquina; Apresentação: Criar visualizações gráficas interativas ou estatísticas, ou até mesmo sínteses textuais; Cientistas de Dados são uma nova geração de especialistas analíticos que têm as habilidades técnicas para resolver problemas complexos – e a curiosidade de explorar quais são os problemas que precisam ser resolvidos. Eles também são um sinal dos tempos modernos. Cientistas de dados não estavam no radar há uma década, mas sua popularidade repentina reflete como as empresas agora pensam sobre Big Data. Essa incrível massa de informações não estruturadas já não pode mais ser ignorada e esquecida. É uma mina de ouro virtual que ajuda a aumentar receitas – contanto que haja alguém que escave e desenterre insights empresariais queninguém havia pensado em procurar. Entra em cena o Cientista de Dados. Para a comunidade em geral, um Cientista de Dados é um desses “Magos de Dados”, que pode adquirir massas de dados de diversas fontes e então limpar, tratar, organizar e preparar os dados; e, em seguida, explorar as suas habilidades em Matemática, Estatística e Machine Learning para descobrir insights ocultos de negócios e gerar inteligência. Os dados utilizados por um Cientista de Dados podem ser tanto estruturados (bancos de dados transacionais de sistemas ERP ou CRM, por exemplo) e não estruturados (e-mails, imagens, vídeos ou dados de redes sociais). O Cientista de Dados cria algoritmos para extrair insights desses dados. Em seguida, cabe ao Cientista de Dados, apresentar estes dados, de forma que os tomadores de decisão possam utilizar o resultado da análise ao definir as 24 estratégias empresariais ou mesmo para criar novos produtos ou serviços baseados em dados. De acordo com Anjul Bhambhri, ex Vice Presidente de Big Data da IBM e atual Vice Presidente da Adobe, o Cientista de Dados é o profissional capaz de trazer a mudança para uma organização através da análise de diversas fontes de dados. Anjul Bhambhri escreve: “Um Cientista de Dados representa uma evolução do papel de Analista de Negócios ou Analista de Dados. Estes profissionais possuem uma base sólida normalmente em ciência da computação, aplicações, modelagem, estatísticas, análises e matemática. O que define o Cientista de Dados é a forte visão de negócios, juntamente com a capacidade de comunicar os resultados, tanto para os líderes de negócios quanto para seus pares, de uma forma que influencie como uma organização posiciona-se diante dos desafios do mercado”. 4.2 Perfil e características do Cientista de Dados. É essencial que este(a) profissional tenha conhecimento em desenvolvimento e utilização de algoritmos, Big Data, modelos matemáticos e Machine Learning. Ele(a) também precisa ser capaz de consultar bancos com enormes quantidades de dados, realizar análises estatísticas, criar protótipos e modelos, gerir dados em larga escala de análise, sistemas, fluxos de trabalho, aplicar melhores práticas e outras questões. Como ser um cientista de dados? Não existe uma descrição muito definida com relação a esses profissionais no mercado. Porém, existem algumas funções e perfis que são fundamentais. Confira abaixo: Realizar uma coleta de dados indisciplinados. Depois da primeira etapa do trabalho, o trabalho é dedicar-se a transforma-los em um formato mais prático; Tomar para si uma solução de problemas de negócio usando-se de técnicas de orientação a dados; 25 Utilizar uma variação de linguagens de programação. Isso inclui o SAS, R e Phyton; Possuir uma compreensão consistente com relação a estatísticas, com uma inclusão de testes e distribuições; Procurar por um conjunto de técnicas analíticas, como aprendizagem de máquinas; Bom relacionamento também é um atributo fundamental. O cientista de dados deve estar em contato com o departamento de TI e área de negócios da empresa; Buscar por padrões relacionados a dados, assim como identificar tendências que venham a contribuir com resultados da empresa que estão atuando. Um cientista de dados precisa saber: Visualização de dados: a apresentação de dados em um formato pictórico ou gráfico para que eles possam ser facilmente analisados; Machine learning: ou aprendizagem de máquinas, é um ramo da inteligência artificial baseado em algoritmos matemáticos e automação, que permitam uma máquina a aprender e/ou aperfeiçoar seu desempenho em alguma tarefa; Deep learning: ou aprendizagem profunda, uma área da pesquisa de machine learning que usa dados para modelar abstrações complexas; https://www.cetax.com.br/blog/machine-learning/ https://www.cetax.com.br/blog/inteligencia-artificial-beneficios-riscos/ http://cetax.com.br/blog/algoritmos-de-vendas-para-melhoria-de-processos-comerciais/ https://www.cetax.com.br/blog/machine-learning/ 26 Reconhecimento de padrões: a tecnologia que reconhece padrões nos dados (usada muitas vezes como sinônimo de aprendizagem de máquina; Preparação de dados: o processo de conversão de dados brutos em um outro formato para que eles possam ser consumidos mais facilmente; Text analytics: ou análise de dados textuais, é o processo de examinar dados não estruturados para reunir os principais insights de negócios. O Cientista de Dados também precisa dominar modelagem conceitual, análise estatística, modelagem preditiva, ferramentas estatísticas e de mineração de dados e ter inglês avançado ou fluente. Geralmente, este profissional tem formação nas áreas de Matemática, Estatística, Engenharia, Tecnologia ou Computação. Para profissionais que almejam trabalhar nesta áreas, são diferenciais ter conhecimentos em: Business Intelligence, mídia programática, AdTech (AdServer, DSP, SSP, DMP), entre outros. A contratação de um Cientista de Dados é visto de maneira a orientar muitas decisões em dados, essa orientação em muitos casos pode ser considerada um grande salto no escuro para algumas organizações, por isso é muito importante que o Cientista de Dados que esta almejando uma vaga em uma determinada empresa, possa certificar-se que ela possua a mentalidade correta e está pronta para aceitar mudanças. Esse profissional deve ser capaz de orientar os líderes na tomada de decisões estratégicas. Para tanto, precisa ser ativo e buscar soluções com criatividade e autonomia. https://www.cetax.com.br/blog/o-que-e-analytics/ 27 Referências Bibliográficas https://www.cetax.com.br/blog/data-science-ou-ciencia-de-dados/. Acessado em 18/03/2020 https://medium.com/@lucasoliveiras/estatistica-data-science-1d939b633d46. Acessado em 25/03/2020 https://rockcontent.com/blog/analise-preditiva/. Acessado em 01/02/2020 https://neilpatel.com/br/blog/analise-preditiva/. Acessado em 10/02/2020 http://datascienceacademy.com.br/blog/cientista-de-dados-por-onde-comecar- em-8-passos/. Acessado em 10/02/2020 http://tutano.trampos.co/15541-guia-de-profissoes-cientista-de-dados/. Acessado em 12/03/2020 http://www.cienciaedados.com/predictive-analytics/. Acessado em 12/03/2020 FINLAY, Steven. Predictive Analytics, Data Mining and Big Data. Myths, Misconceptions and Methods (1st ed.). Basingstoke: Palgrave Macmillan. 2014 SIEGEL, Eric. Predictive Analytics: The Power to Predict Who Will Click, Buy, Lie, or Die (1st ed.). 2013 https://www.cetax.com.br/blog/data-science-ou-ciencia-de-dados/ https://rockcontent.com/blog/analise-preditiva/ https://neilpatel.com/br/blog/analise-preditiva/ http://datascienceacademy.com.br/blog/cientista-de-dados-por-onde-comecar-em-8-passos/ http://datascienceacademy.com.br/blog/cientista-de-dados-por-onde-comecar-em-8-passos/ 28 UNIDADE II – EXTRAÇÃO, TRANSFORMAÇÃO E CARREGAMENTO DOS DADOS. Objetivos: Especificar conceitos fundamentais de Big Data, DataWarehouse, Data Lake, Hadoop; Compreender o fluxo do ETL; Exibir as fases da Análise de dados; Apresentar ferramentas e frameworks utilizado no fluxo ETL. 29 INTRODUÇÃO Como embasamento para entender o fluxo ETL, apresentaremos nesta unidade conceitos básicos de Big Data, Data Warehouse, Data Lake e do Apache Hadoop. O foco desta unidade é entender a utilização do ETL, que como a própria tradução já diz é um processo de extração, transformação e carga, para a construção de um Data Warehouse, ele é um importante processo para as análises de inteligência de negócio. Com o advento do Big Data, os dados podem vir de diversas fontes e de diferentes formatos, e isso faz com que o dado tenha que passar por diversas etapas de processamento, desde a coleta até sua visualização, paraque o propósito final seja alcançado, ou seja, que o problema proposto inicialmente seja resolvido, para melhor compreensão será apresentado estágios da Análise de dados. E por fim apresentaremos as ferramentas e frameworks utilizados no fluxo ETL, e ferramentas de integração de dados. 30 Conteúdo Programático 1. CONCEITOS FUNDAMENTAIS 1.1 BIG DATA 1.2 DATA WAREHOUSE 1.3 DATA LAKE 1.4 APACHE HADOOP 1.4.1 Hadoop 2.0 2. O QUE É ETL – EXTRACT TRANSFORM LOAD? 2.1 SOFTWARES DE ETL 2.2 ETL PARA BIG DATA 2.3 COMO O ETL É USADO? 3. ANÁLISE DE DADOS 3.1 EXPLORAÇÃO DOS DADOS 3.2 PREPARAÇÃO DOS DADOS 3.3 PLANEJAMENTO DO MODELO 3.4 IMPLEMENTAÇÃO DO MODELO 3.5 COMUNICAÇÃO DOS RESULTADOS 3.6 UTILIZAÇÃO EM PRODUÇÃO 4. FERRAMENTAS E FRAMEWORKS UTILIZADOS NO FLUXO ETL. 4.1 FERRAMENTAS e FRAMEWORKS PARA EFETUAR FLUXOS ETL 4.2 FERRAMENTAS DE INTEGRAÇÃO DE DADOS https://www.cetax.com.br/blog/big-data/ 31 1.CONCEITOS FUNDAMENTAIS 1.1 BIG DATA O conceito de BIG DATA está sendo muito difundido atualmente em função das demandas dos diferentes tipos de dados que temos que armazenar diariamente. Outra definição é que BIG DATA se refere a um conjunto muito grande de dados que nenhuma ferramenta convencional de gerenciamento de banco de dados ou gerenciamento de informações consegue armazenar os diferentes tipos de dados existentes como: Texto; Sensores; Navegação Web; Áudio; Vídeo; Arquivos de Log; Centrais de ar condicionado entre outros. O objetivo do Big Data é extrair um grande volume de dados estruturados e não-estruturados, organizá-los e analisá-los a fim de se obter insights para negócios e prever uma determinada situação. Pode-se dizer que os dados são extraídos de qualquer lugar. Abaixo estão listadas algumas origens dos dados: Redes Sociais – Facebook, instagram, twitter etc; Websites – Google, Portal de Notícias, Mapas etc; Sistemas – ERP, CMS, etc; Aplicativos – Posição Geográfica, Gosto Musical, Fotografia; Banco de Dados – da internet (externos), de empresas (internos); Pacote Office – Excel, Access, Word; Máquinas e acessórios tecnológicos. 32 As organizações necessitam de uma tecnologia de armazenamento para guardar uma quantidade massiva que vem de diferentes plataformas, por exemplo: mensagens que enviamos, vídeo que publicamos, informações sobre o tempo, sinais de GPS, registros transacionais de compras on-line. Esses tipos de dados não possuem uma estrutura padronizada. Com isso, a utilização de um data center comum não é recomendada para armazenar esse tipo de informação, sendo a melhor solução para essa situação a aplicação de um Big Data. Com o auxílio de um Big Data, a empresa pode utilizar todos os dados coletados para realização de análises específicas com a finalidade de extrair conhecimento relevante para subsidiar as tomadas de decisão estratégicas dos negócios. Assim, as soluções de Big Data “tratam” os dados brutos até que se transformem em insights poderosos para a tomada de decisão. Para isso, são desenvolvidas a partir de algoritmos que capturam e cruzam dados de várias naturezas. Desse modo, uma montanha de dados soltos pode se tornar uma fonte valiosa de informação e conhecimento. O que caracteriza a arquitetura tecnológica envolvida no Big Data é sua capacidade de captura, armazenamento e análise muito superior à dos softwares de bancos de dados comuns. Para construir essa arquitetura, é preciso unir a TI aos Cientistas de Dados para focar esforços na solução de problemas empresariais por meio dos dados. Uma das tecnologias centrais nessa revolução é a computação em nuvem, pois somente esse tipo de infraestrutura pode dar suporte ao armazenamento e processamento do Big Data. O Big Data traz um conjunto de novas oportunidades em relação a extração e transformação de dados em informação, uma vez que, associados ao termo Big Data começam a surgir novas tecnologias capazes de suportar um volume grande de dados e efetuar um processamento/análise de dados em tempo util. Big Data não traz só novas oportunidades, também traz novos desafios, como por exemplo, a forma de organizar e gerir esses conjuntos de dados de forma eficaz. Surge assim a necessidade de possuir ferramentas que permitam processar dados de Big Data de forma rápida e eficaz. Novos paradigmas de computação foram desenvolvidos para lidar com estes volumes de dados, sendo o mais popular o MapReduce (Dean & Ghemawat, 2004). O 33 paradigma de MapReduce é um modelo de programação para computação distribuída eficiente. Fornece um modelo de processamento paralelo e várias implementações associadas para processar grandes quantidades de dados. O MapReduce é um dos componentes do framework Hadoop, que é uma tecnologia que nasceu no seio das grandes empresas do ramo da Internet, tais como a Google e Facebook, tendo sido depois disponibilizada para a comunidade open source (havendo, no entanto, também disponíveis distribuições comerciais). 1.1.1 Tipos de Big Data O Big Data pode ser encontrado em três formas: a. Estruturado b. Não estruturado c. Semi-estruturado a. Estruturado – Quaisquer dados que possam ser armazenados, acessados e processados em um formato fixo são denominados dados “estruturados”. Exemplo de dados estruturados: Tabela: Cliente Id_Cli Cpf_Cli Nome_Cli End_Cli Tel_Cli Cidade_Cli Limite_Cli 001 072387747-31 Monica Silva Rua Franca, 234 (44)999767611 Maringá R$5000,00 002 082387747-32 Arthur Fredagolli Rua Itália, 234 (44)988767612 Maringá R$1500,00 002 092387747-33 Regina Bezerra Rua Espanha, 234 (44)995667613 Cascavel R$8000,00 002 062387747-34 Augusto Santo Rua Inglaterra, 234 (44)888765614 Cascavel R$3000,00 b. Não estruturado – Qualquer dado com forma ou estrutura desconhecida é classificado como não estruturado. Além do tamanho ser grande, os dados não estruturados apresentam vários desafios em termos de processamento para extrair valores deles. Um exemplo é uma fonte de dados heterogênea que contém uma combinação de arquivos de texto simples, imagens, vídeos e etc. Hoje em dia as organizações têm muitos dados 34 disponíveis, mas infelizmente não sabem como extrair valor disso, pois esses dados estão em sua forma bruta ou formato não estruturado. Exemplo de dados não estruturados: O retorno de uma pesquisa realizada em um navegador. c. Semiestruturado - Os dados semiestruturados são uma forma de dados estruturados que não estão de acordo com a estrutura dos modelos de dados associados com banco de dados relacionais ou outras formas de tabelas de dados, mas que contem tags ou outros marcadores para realizar a separação de elementos semânticos e impor hierarquias de registros e campos dentro dos dados. Exemplo de dados semiestruturados: Dados pessoais armazenados em um arquivo XML <rec> <name> João Lima </name> <sex> Masculino </sex> <age> 35 </age> </rec> <rec> <name> Sonia R. </name> <sex> Feminino </sex> <age> 41 </age> </rec> <rec> <name> Regina F. </name> <sex> Feminino </sex> <age> 29 </age> </rec> <rec> <name> Cristina L. </name> <sex> Feminino </sex> <age> 26 </age> </rec> <rec> <name> Cicero A. </name> <sex> Masculino </sex> <age> 35 </age> </rec> 35 1.2 DATA WAREHOUSE Data Warehouse (DW), em tradução livre “Armazém de Dados”, é um repositório onde ficam armazenados os dados de diversos sistemas existentes em uma organização. O DW, surgiu com o propósito de ser um repositório estruturado (organizado por linhas e colunas) de consultas para fins analíticos e ser um sistema de apoio para tomada de decisões (DSS). Essa característica difere dos bancos de dados relacionais tradicionais, pois não tem a finalidade de ser um banco para realizar transações dos usuários, tais como inserir,remover e atualizar dados, ou seja, não é um banco de dados relacional. Entretanto, antes que as informações sejam armazenadas no DW, os dados passam por um processo de transformação e integração. Esse processo é denominado ETL, e pode utilizar diversas ferramentas e técnicas, tais como o desenvolvimento de scripts, consultas SQL, utilização de conversores, entre outros softwares. A Figura 1 ilustra a etapa de extração (Extract) dos dados oriundos dos diferentes sistemas e tipos de arquivos existentes, no qual é possível realizar a transformação (Transform), integração e enriquecimento desses dados, e posteriormente efetuar o carregamento (Load) dos mesmos no banco de dados do warehouse. 36 Figura 1 - Extração, Transformação e Carregamento de dados - ETL 1.3 DATA LAKE Diferentemente do Data Warehouse onde os dados passam por um processo de transformação antes de serem armazenados, o Data Lake tem por objetivo armazenar os dados de acordo como são gerados na fonte, ou seja, no formato bruto e sem nenhum tipo de tratamento. O termo foi criado por James Dixon, do Pentaho, após avaliar que quando os dados são armazenados já com algum tipo de tratamento, informações que podem ser importantes ou que poderão fazer sentido em determinado tipo de análise são descartadas, além de que no Data Warehouse, as informações são agregadas, fazendo com que alguns detalhes sejam perdidos. Com o advento do Big Data, o cruzamento de dados é constante, portanto, qualquer informação pode ser relevante. Nesse sentido, Dixon criou o conceito de “Lago de Dados”, um repositório de 37 armazenamento que contém dados em sua forma mais natural possível e que permite ser examinado e explorado por qualquer usuário da organização de acordo com sua conveniência e necessidade. Com um Data Lake os diferentes dados são acessados e armazenados em sua forma original e de lá podemos diretamente buscar correlações e insights, como também gerar o tradicional Data Warehouse (DW) para tratar dados estruturados. Um aspecto inovador do conceito é que não tendo a necessidade de definir modelos previamente, é eliminado grande parte do tempo gasto na preparação de dados, como necessário no modelo atual de Data Warehouse. Algumas estimativas apontam que gastamos em média cerca de 80% do tempo preparando dados e apenas 20% os analisando. Se reduzirmos significativamente o tempo de preparação, nos concentraremos nas análises. O que, de fato, gera valor. Como os dados são armazenados em sua forma original, sem passar por formatação prévia, podem ser analisados sob diversos contextos. Não estão mais limitados a um único modelo de dados. Na prática é o modelo que empresas como Google, Netflix e Yahoo usam para armazenar e pesquisar imensos e variados volumes de dados. E, a tecnologia que suporta o conceito de Data Lake é o Hadoop. A arquitetura do Data Lake é simples: um HDFS (Hadoop File System) com um monte de diretórios e arquivos. Para simplificar, um Data Lake pode ser imaginado como uma imenso grid, com bilhões de linhas e colunas. Mas ao contrário de uma planilha estruturada, cada célula deste grid pode conter um dado diferente. Assim uma célula pode conter um documento, outra uma fotografia e uma terceira um parágrafo ou uma única palavra de um texto. Outra contém um tuite ou um post do Facebook. Não importa de onde o dado veio. Ele é apenas armazenado em uma célula. Em outras palavras, um Data Lake é um Data Warehouse não estruturado onde dados de diversas fontes são armazenados. 38 1.4 APACHE HADOOP O Hadoop é um framework Open-source desenvolvido pela Apache e baseado na linguagem Java que tem como principal objetivo processar uma grande quantidade de dados de forma mais eficientes possível. Hadoop permite executar aplicações em sistemas distribuídos através de diversos computadores(nodes), envolvendo petabytes de dados. Esse aplicativo funciona em ambientes de computação distribuída, nos quais são utilizados clusters. O Framework do Hadoop é composto por dois módulos principais: o módulo de armazenamento e o de processamento. O HDFS (Hadoop Distributed File System), gerencia o armazenamento de grandes conjuntos de dados, também de forma distribuída. O MapReduce é a implementação de um algoritmo responsável por gerir toda a parte do processamento do framework. O MapReduce, define uma arquitetura para a realização do processamento de conjuntos de dados em paralelo. De modo que possam ser executados em vários servidores. A razão para a escalabilidade desse paradigma é a natureza intrinsecamente distribuída do funcionamento da solução. Uma tarefa complexa é dividida em várias tarefas menores. Elas são executadas em máquinas diferentes e posteriormente combinadas para gerar a solução da tarefa mais complexa. Um exemplo comum de uso do Hadoop é a análise de padrões dos usuários em sites de e-commerce. Isso permite que novos produtos sejam sugeridos ao usuário. 1.4.1 Hadoop 2.0 Os componentes chaves do Hadoop são o modelo de programação MapReduce e o sistema de arquivos distribuídos HDFS, versão 1.0. Entretanto em meio a sua evolução, novos subprojetos, foram incorporados como 39 componentes à arquitetura Hadoop, completando assim uma infraestrutura do framework para resolver problemas específicos. Os componentes principais do Hadoop 2.0 são: Figura 2: Hadoop versão 2. Componentes Principais: a. Hadoop Common: aqui são incluídas as bibliotecas Java e demais utilitários exigidos para o funcionamento dos outros módulos do framework. São essas bibliotecas que fornecem uma abstração do sistema de arquivos e do sistema operacional para iniciar o Hadoop; b. Hadoop Distributed File System (HDFS)Sistema de arquivos distribuídos: um sistema de arquivos distribuídos nativo do Hadoop. Permite o armazenamento e transmissão de grandes conjuntos de dados em máquinas de baixo custo. Possui mecanismos que o caracteriza como um sistema altamente tolerante a falhas; c. Hadoop MapReduce: implementa um modelo de programação na forma de uma biblioteca de classes especializadas no processamento de conjuntos de dados distribuídos em um aglomerado computacional. Abstrai toda a computação paralela em apenas duas funções Map e Reduce; 40 d. Hadoop YARN: Significa Yet Another Resource Negotiator é a tecnologia de gerenciamento de recursos e agendamento de tarefas para vários aplicativos em execução em um cluster Haddop e agendar tarefas a serem executadas em diferentes nós do cluster. 41 2. O QUE É ETL – EXTRACT TRANSFORM LOAD? ETL é um tipo de data integration em três etapas (extração, transformação, carregamento) usado para combinar dados de diversas fontes. Ele é comumente utilizado para construir um Data Warehouse. Nesse processo, os dados são retirados (extraídos) de um sistema fonte, convertidos (transformados) em um formato que possa ser analisado, e armazenados (carregados) em um armazém ou outro sistema. ETL é uma técnica de integração de dados que surgiu da necessidade dos negócios de reunir dados de fontes diversificadas para que pudessem ser analisados. A sigla se refere às três etapas pelas quais os dados passam antes de estarem prontos para uso: Extração, Transformação e Carga (Extraction, Transformation e Load). ETL ganhou popularidade nos anos 1970, quando as organizações começaram a usar múltiplos repositórios ou bancos de dados para armazenar diferentes tipos de informações de negócios. A necessidade de integrar os dados que se espalhavam pelos databases cresceu rapidamente. O ETL tornou-se o método padrão para coletar dados de fontes diferentes e transformá-los antes de carregá-los no sistema destino. No final dos anos 1980 e início dos 1990, os data warehouses entraram em cena. Sendo um tipo diferente de banco de dados, eles forneceramum acesso integrado a dados de múltiplos sistemas – computadores mainframes, minicomputadores, computadores pessoais e planilhas. Mas diferentes departamentos costumam usar diferentes ferramentas ETL com diferentes armazéns. Com o tempo, o número de formatos, fontes e sistemas de dados 42 aumentou expressivamente. Extrair, transformar e carregar é, hoje, apenas um dos vários métodos que as organizações utilizam para coletar, importar e processar seus dados. Na etapa de extração, os dados são transferidos dos sistemas nos quais foram gerados para uma staging area, com representado na figura abaixo, onde são convertidos para um formato padrão. Depois, na etapa de transformação, os dados são tratados e conformados a regras, que facilitarão a sua leitura em um momento posterior. Então, são carregados em um data warehouse, onde estão prontos para leitura. Esses passos podem ser seguidos simultaneamente, sem que seja necessário esperar a conclusão da etapa de extração para então começar a etapa de transformação, por exemplo. Essa técnica pode ser confundida com o ELT (em inglês, Extraction, Load e Transformation), no qual a etapa de carregamento é feita antes da transformação, que se dá no banco de dados. A diferença entre o ELT e o ETL é que, no primeiro, o processamento é feito pelo banco de dados, sem a presença de um mecanismo auxiliar na etapa de transformação. O processo de ETL é a execução das etapas de Extração, Transformação e Carga de Dados 43 E – EXTRACT O processo de Extração de dados consiste em se comunicar com outros sistemas ou bancos de dados para capturar os dados que serão inseridos no destino, seja uma Staging Area ou outro sistema. T – TRANSFORM O processo de Transformação de Dados é composto por várias etapas: padronização, limpeza, qualidade. Os dados vindos de sistemas diferentes tem padrões diferentes seja de nomenclatura ou mesmo de tipos de dados ( VARCHAR2 Oracle ou VARCHAR Sql Server, por ex. ) Existem também operações de Qualidade de Dados que precisam ser feitas para que os dados sejam utilizados em análises. L – LOAD O processo de Load – carregamento é a etapa final onde os dados são lidos das áreas de staging e preparação de dados, carregados no Data Warehouse ou Data Mart Final. ETL é, portanto, uma técnica que agrega valor a diferentes áreas de negócios ao simplificar o processo de integração de dados. 2.1 SOFTWARES DE ETL A função dos softwares ETL, é a extração de dados de diversos sistemas, transformação desses dados conforme regras de negócios e pôr fim a carga dos dados em um Data Mart ou um Data Warehouse. Existem muitas ferramentas de ETL disponíveis no mercado como IBM Information Server (Data Stage), o Oracle Data Integrator (ODI), o Informatica Power Center, o Microsoft Integration Services (SSIS). Existe também um conjunto de Ferramentas de ETL Open Source como o PDI – Pentaho Data Integrator e Talend ETL. https://www.cetax.com.br/blog/o-que-e-data-warehouse/ 44 A função do Pentaho é recolher o máximo de dados diversificados e não estruturados a partir de diversas fontes e analisá-los, a fim de encontrar novos padrões, indicadores de tendências e base de dados para inovação. Um software de BI, como o Pentaho, é aquele que permite acesso interativo e simplifica a análise e manipulação de dados para que eles gerem inteligência de negócios. Outras funções do Pentaho O Pentaho BI tem clientes em todo o mundo e ele conquistou isso com uma excelente usabilidade. A curva de aprendizado é reduzida, o que acelera a sua implantação e a colheita de resultados. Sua interface acentuadamente gráfica simplifica a visualização de grandes porções de dados relevantes e críticos para tomada de decisões. Ainda em relação a isso, a ferramenta tem gráficos que interagem entre si, para facilitar a análise rápida das informações. Existe a possibilidade de interação com o Google Maps, o que facilita a visualização de dados com informações geográficas. Com o BI, as empresas podem acessar dados e explorar informações que normalmente estão contidas em uma Data Warehouse, analisando e desenvolvendo entendimentos e inovações, tais como: coleta – ETL; organização – Data warehouse; análise dimensional (cubos); compartilhamento – Portal de BI; monitoramento das informações – relatórios, gráficos e dashboards. 45 O BI analisa o histórico de dados das empresas por meio de transações ou por outros tipos de atividades, auxiliando e analisando os desempenhos passados e presentes dos negócios. O Pentaho BI é um recurso de código aberto que gerencia as comunicações da empresa, analisa painéis de dados e indicadores, mineração de dados (data mining), workflow e capacidades de ETL — Extração, Transformação e Carregamento de dados do business intelligence. Talend é uma plataforma de integração de dados de código aberto. Ele fornece vários softwares e serviços para integração de dados, gerenciamento de dados, integração de aplicativos corporativos, qualidade de dados, armazenamento em nuvem e Big Data. O Talend entrou no mercado pela primeira vez em 2005 como o primeiro fornecedor comercial de software de software livre de integração de dados. Em outubro de 2006, a Talend lançou seu primeiro produto - o Talend Open Studio, atualmente conhecido como Talend Open Studio para integração de dados. Desde então, lançou uma ampla gama de produtos que são utilizados de maneira bastante favorável no mercado. O Talend é considerado o líder da próxima geração no software de integração em nuvem e Big Data. Ajuda as empresas a tomar decisões em tempo real e a se tornarem mais orientadas a dados. Usando o Talend, os dados se tornam mais acessíveis, sua qualidade melhora e podem ser movidos rapidamente para os sistemas de destino. https://knowsolution.com.br/pentaho-tudo-que-voce-precisa-saber-para-ter-uma-gestao-eficiente/ 46 2.2 ETL PARA BIG DATA Hoje com o crescimento dos projetos de Big Data aumenta-se mais ainda a necessidade de fazer ETL entre plataformas heterogêneas, para isso, projetos como o Hadoop, possuem ferramentas próprias para carga de dados, como: SQOOP – Ferramenta para movimentar dados dentre bancos de dados relacionais e o ambiente Hadoop. HIVE – Ambiente de SQL sobre um cluster Hadoop. PIG – Ferramenta de Script para transformação e processamento de dados. SPARK – Framework de processamento em memória. Mesmo com todas as possibilidades que foram expostas, vemos as ferramentas de ETL se adaptando para BigData ou gerando códigos para serem rodados nessas ferramentas do Ecosistema Hadoop.O que é e qual sua importância? https://www.cetax.com.br/blog/big-data/ 47 Algumas características do ETL são: O ETL é usado para mover e transformar dados de múltiplas fontes, e carregá-los em vários destinos, como o Hadoop. Quando utilizado com um data warehouse corporativo (dados em repouso), o ETL fornece o contexto histórico completo para a empresa; Ao fornecer uma visão consolidada, o ETL facilita para os usuários corporativos a análise e a criação de relatórios sobre dados relevantes às suas iniciativas; O ETL pode melhorar a produtividade de profissionais analíticos, porque ele codifica e reutiliza processos que movem os dados sem que esses profissionais possuam a capacidade técnica de escrever códigos ou scripts; O ETL evoluiu ao longo do tempo para suportar os requisitos emergentes de integração para dados como streaming data; 2.3 COMO O ETL É USADO? Ferramentas centrais de ETL trabalham em conjunto com outras ferramentas de data integration e com outros vários aspectos do gerenciamento de dados – como data quality, data governance, virtualização e metadados. As utilizações populares de hoje incluem: 48 ETL e usos tradicionais ETL é ummétodo comprovado com o qual muitas empresas contam todos os dias – como varejistas, que precisam olhar os dados de vendas regularmente, ou operadoras de saúde procurando por um quadro preciso de seu uso. O ETL pode combinar e exibir dados de transações de um data warehouse ou outro banco de dados, de modo que eles estejam sempre prontos para analistas de negócios os visualizarem em um formato compreensível. O ETL também é utilizado para migrar dados de sistemas arcaicos para sistemas modernos, com diferentes formatos possíveis. É frequentemente usado para consolidar dados de fusões de empresas e para coletar e unir dados de fornecedores ou parceiros externos. ETL com Big Data – transformações e adaptadores Ter acesso fácil a um amplo escopo de dados pode dar às empresas uma vantagem competitiva. Hoje, elas precisam de acesso a todo tipo de big data – vídeos, mídias sociais, a Internet das Coisas (IoT), logs do servidor, dados espaciais, dados abertos ou de crowdsource e muito mais. Fornecedores de ETL frequentemente adicionam novas transformações às suas ferramentas para suportar essas requisições emergentes e novas fontes de dados. Adaptadores oferecem acesso a uma ampla variedade de fontes de dados, e as ferramentas de data integration interagem com esses adaptadores para extrair e carregar dados de modo eficaz. ETL para Hadoop O ETL evoluiu para oferecer suporte à integração entre muito mais que data warehouses tradicionais. Ferramentas avançadas de ETL podem carregar e converter dados estruturados e não-estruturados no Hadoop. Essas ferramentas leem e escrevem múltiplos arquivos em paralelo de, e para, Hadoop, simplificando como informações são fundidas em um processo de transformação comum. Algumas soluções incorporam bibliotecas de transformações ETL pré- construídas para os dados de transação e interação que são executados em Hadoop. ETL também oferece suporte à integração entre sistemas transacionais, https://www.sas.com/pt_br/insights/big-data/what-is-big-data.html https://www.sas.com/pt_br/insights/big-data/hadoop.html 49 bancos de dados operacionais, plataformas de BI, centralizadores master data management (MDM) e a nuvem. ETL e acesso aos dados self-service Data preparation self-service é uma tendência de rápido crescimento que coloca o poder de acesso, mistura e transformação de dados nas mãos dos usuários organizacionais e outros profissionais não-técnicos. Sendo específico em sua natureza, essa abordagem aumenta a agilidade organizacional e libera a TI de abastecer usuários com diferentes formatos de dados. Menos tempo é desperdiçado na preparação de dados e mais tempo é gasto na geração de insights. Consequentemente, tanto profissionais de TI ou de outros ramos da organização podem melhorar sua produtividade e as empresas podem escalonar seu uso de dados para tomarem decisões melhores. ETL e data quality O ETL e outras ferramentas de data integration – utilizadas pra limpar, perfilar e auditar dados – garantem que os dados sejam confiáveis. As ferramentas ETL integram-se às de data quality, e fornecedores de ETL incorporam ferramentas relacionadas em suas soluções, como aquelas utilizadas para mapeamento e linhagem de dados. ETL e metadados Metadados nos auxiliam a entender a linhagem dos dados (de onde eles vieram) e seu impacto em outros ativos de dados na organização. Conforme arquiteturas de dados se tornam mais complexas, é importante rastrear como os diferentes elementos de dados na sua organização são utilizados e relacionados. Por exemplo, se você adiciona o nome de uma conta do Twitter à sua base de dados de clientes, você vai precisar saber o que será afetado, como, por exemplo, tarefas, aplicações ou relatórios ETL. 50 3. ANÁLISE DE DADOS Conforme mencionado anteriormente, com o advento do Big Data os dados podem vir de diversas fontes e de diferentes formatos, e isso faz com que o dado tenha que passar por diversas etapas de processamento, desde a coleta até sua visualização, para que o propósito final seja alcançado, ou seja, que o problema proposto inicialmente seja resolvido. As etapas de processamento desses dados seguem o mesmo ciclo do método científico, no qual a partir de uma observação, deve-se formular uma hipótese, realizar experimentos, analisar os dados, efetuar a criação de um modelo, divulgar os resultados e efetuar a implementação do modelo proposto. Cada uma dessas etapas requer habilidades, que envolvem diversas áreas de atuação, e é na fase de Análise de Dados, especificamente, que esses dados são separados e tratados para a geração do conhecimento e auxiliar na tomada de decisão. Técnicas de Machine Learning, algoritmos avançados, estatísticas, modelos matemáticos e diversas outras metodologias científicas são alguns exemplos utilizados durante o ciclo de vida do dado. Segundo Schmarzo (2013), Análise de Dados consiste em seis estágios conforme ilustrado na Figura 3: 51 Figura 3: Ciclo de Vida da Análise de Dados 3.1 EXPLORAÇÃO DOS DADOS Baseado no problema de negócio que deverá ser resolvido, nessa fase o cientista de dados deverá formular as questões que pretendem ser respondidas e fazer o levantamento das métricas que serão coletadas para a resolução do mesmo. Serão verificados também quais recursos estão disponíveis para a realização dos trabalhos e que poderão ser utilizados no decorrer do processo. Nessa etapa, um plano inicial da análise de dados poderá ser desenvolvido. 3.2 PREPARAÇÃO DOS DADOS A coleta de dados é a primeira etapa dessa fase, onde os dados são coletados de diferentes repositórios, seja interno (gerados a partir das aplicações existentes dentro da organização) ou externo (gerados a partir das aplicações existentes fora da organização) e de diferentes formatos, sejam em bancos de dados relacionais, não relacionais, documentos de textos, planilhas, imagens, 52 áudios entre outros, ou seja, dados estruturados e não-estruturados. Alguns dados podem estar incompletos, preenchidos de forma incorreta ou até mesmo podem ser enriquecidos, agregando campos com valores adicionais por exemplo, por isso é necessário realizar o seu tratamento, que é a segunda etapa dessa fase. Utilizando técnicas e ferramentas gráficas, o cientista de dados consegue visualizar e eliminar os dados que estão destoando dos demais e, portanto, consegue fazer os ajustes necessários para que o agrupamento desses dados possam estar mais uniforme possível, determinando que o conjunto de dados utilizados esteja bom o suficiente para a análise desejada e o desenvolvimento do plano de análise de dados. Entretanto, pode haver a remoção de dados que pode comprometer o resultado da análise posteriormente, visto que algum detalhe relevante pode ser perdido, além de efetuar a diminuição do conjunto de dados. Nesses casos, onde dados estão faltando, métodos estatísticos podem ser utilizados para seu preenchimento, tais como imputação múltipla de dados e máxima verossimilhança, ambos baseados em estimativas. O tratamento também leva em consideração a transformação do dado, no qual consiste em efetuar a conversão do mesmo de modo que atinja o propósito para qual está sendo utilizado ou de acordo com sua conveniência. Essa transformação pode utilizar técnicas e ferramentas ETL, que tem a finalidade de extrair os dados de diferentes fontes, efetuar a transformação do mesmo conforme a regra a ser estabelecida e efetuar o seu carregamento, a partir dos dados já transformados, para o Data Warehouse para consulta posterior. Ao término dessa etapa, com os dados já preparados, o cientista de dados já tem condições de avançar para a próxima fase no desenvolvimento de um modelo analítico de dados. 3.3 PLANEJAMENTO DO MODELO Nessa etapa do ciclo de vida, o cientista de dados já possui informaçõese dados suficientes para iniciar o desenvolvimento do modelo analítico de dados. 53 Há diversas metodologias, técnicas e ferramentas para a criação do modelo e, a escolha de qual utilizar deve ser a mais apropriada para a resolução do problema de negócio que foi exposto inicialmente na fase de Exploração. Dependendo do tipo de metodologia escolhida, algumas técnicas podem ser mais apropriadas que outras. A escolha de qual técnica utilizar pode depender dos tipos de dados que estão sendo utilizados pelas variáveis escolhidas, se é um dado numérico, textual, imagem, entre outras. Algumas dessas técnicas e em qual situação geralmente são utilizadas estão listadas na sequência: Redes Neurais Artificiais: As redes neurais artificiais foram criadas para se comportarem de maneira similar aos neurônios humanos, tanto em sua estrutura como em seu funcionamento. Significa que uma rede neural artificial possui um grande número de processadores funcionando em paralelo e em camadas. Árvores de decisão: As árvores de decisão são comumente utilizadas nos casos onde o resultado final gera algum tipo de classificação, ou seja, pode ser do tipo Contínua, Binária ou Não binária. Como o próprio nome diz, a estrutura dessa técnica é similar a uma árvore, no qual possui nó, ramo, folha e seus percursos. Análise de Padrão: Essa técnica consiste em identificar, de forma automatizada, padrões existentes no conjunto de dados que estão sendo analisados, e é geralmente utilizada para avaliar tendências, identificar ocorrências que são comuns e regulares nos dados ou até mesmo classifica-los em diferentes categorias. Análise de Texto: Essa técnica tem o objetivo de analisar grandes quantidades de dados textuais não-estruturados, identificando palavras- chave, padrões e até mesmo efetuar algum tipo de classificação. As análises podem ser realizadas utilizando Processamento de Linguagem Natural (do inglês Natural Language Process - NLP), que são algoritmos automatizados com habilidades para entender a linguagem dos humanos. Regressão Linear: Regressão linear é uma técnica estatística que pode ser utilizada para efetuar uma análise preditiva de um resultado, no qual pode ser baseado nos dados históricos para o desenvolvimento do 54 modelo. A regressão linear consiste em encontrar uma equação matemática para calcular o resultado estimado (denominada variável dependente) de acordo com as demais variáveis do conjunto de dados (denominadas variáveis independentes). Entretanto, a escolha de determinadas metodologias, técnicas e ferramentas, em detrimento de outras, vai depender das variáveis e métricas escolhidas, bem como o resultado obtido após as análises realizadas. Ou seja, a partir dos dados existentes serão avaliadas quais métricas e variáveis mais se correlacionam e o resultados das causas e efeitos que elas podem ter entre si e, a partir dessa definição será aplicada a metodologia mais adequada para a criação do modelo. Portanto, o modelo analítico de dados consiste em definir quais métodos, algoritmos e ferramentas que possuem a resposta mais apropriada para o problema em questão, bem como a definição da apresentação dos resultados das análises para a parte interessada. 3.4 IMPLEMENTAÇÃO DO MODELO É na implementação do modelo que o cientista de dados tem a oportunidade de realizar diversos testes práticos com os dados coletados previamente. Utilizando ferramentas apropriadas, é nesse momento que é verificado se a metodologia escolhida está condizente para responder às questões levantadas inicialmente, se os métodos matemáticos e estatísticos foram definidos corretamente na etapa anterior e se as métricas escolhidas foram as mais adequadas. Baseado nos resultados alcançados, é possível efetuar o refinamento e a realização de ajustes no modelo analítico de dados, com objetivo de determinar os melhores métodos e as melhores técnicas para a resolução do problema proposto inicialmente. 3.5 COMUNICAÇÃO DOS RESULTADOS Essa etapa consiste em o cientista de dados fazer a apresentação e divulgação dos resultados obtidos da análise dos dados. Aplicações gráficas, 55 recursos áudio visuais e métodos interativos podem ser utilizados para que o resultado seja transmitido de maneira clara e objetiva para o público interessado. 3.6 UTILIZAÇÃO EM PRODUÇÃO Uma vez verificado que os resultados obtidos através da análise dos dados foram satisfatórios, que a solução do problema foi alcançada e que decisões estratégicas poderão ser tomadas, será necessário fazer a implementação do modelo em ambiente de produção. Essa é a etapa final do ciclo de vida da Análise de Dados proposta por Schmarzo (2013), no qual confirma que todas as avaliações, análises científicas, recursos e ferramentas selecionadas pelo Cientista de Dados nas etapas anteriores foram apropriadas para tornar a transformação dos dados em conhecimento. 56 4. FERRAMENTAS E FRAMEWORKS UTILIZADOS NO FLUXO ETL. O Hadoop busca simplificar o processamento paralelo. Ele permite os Cientistas de Dados se preocupar com a forma em que os dados devem ser processados e facilita para que os desenvolvedores não se preocupem com problemas relativos ao processamento paralelo. A versão estável do Hadoop é a 3.03(31/05/2018). A instalação e configuração do ecossistema do Hadoop não é simples, então faz-se necessário a criação de uma plataforma para análise de dados com o Hadoop 3, Hive 3 e Spark 2.4. E não é necessário ter um grande datacenter, ou seja, é possível em máquinas mais simples como notebooks e desktops para estudo, provas de conceito ou demonstração. Na verdade, é possível rodar um cluster completo em uma única máquina (com Linux). Figura: Hadoop Ecossistema e seus componentes Fonte: https://data-flair.training/ A análise de dados é uma atividade cada vez mais importante para empresas e o Hadoop se tornou sinônimo de software para o big data. Neste sentido, o ecossistema do Hadoop tem evoluído com a inclusão de novas ferramentas para análises, sendo que a primeira dessas ferramentas foi o Hive, uma ferramenta de data warehouse. https://data-flair.training/ 57 4.1 FRAMEWORKS e FERRAMENTAS PARA DESENVOLVER FLUXOS ETL Aqui serão apresentados frameworks do Projeto Apache Hadoop, que podem ser utilizadas para desenvolver fluxos ETL. Apache Hive O Apache Hive é um data warehouse para o Hadoop e permite a execução de comandos SQL. Esta técnica de integração entre Hadoop e SQL, conhecida como SQL-on-Hadoop, tem se popularizado. O Hive permite escrever o ETL (extract, transform and load) para os dados corporativos, assim temos a integração do Hive com ferramentas de relatório de BI tradicionais. O Hive é uma ferramenta útil para conversão de formatos, ou seja, podemos trabalhar com arquivos XML e JSON, formatos comuns para a transferência de dados. Apache Pig O Apache Pig é uma ferramenta para analisar grandes conjuntos de dados, que fornece um motor para execução de fluxos de dados de forma paralela sobre o Hadoop (Gates, 2011). O Pig executa-se sobre o Hadoop, ele utiliza o sistema de pastas fornecido pelo Hadoop, o HDFS, e executa todas as suas operações com o MapReduce. Esta plataforma inclui a sua própria linguagem, Pig Latin, para especificar fluxos de dados. A linguagem Pig Latin inclui operadores para muitas das operações de dados tradicionais (junção, ordenação, filtros,etc.), mas 58 também possui a possibilidade dos usuário desenvolverem as suas próprias funções, em linguagens como Java, Python, JavaScript ou Ruby, para leitura, processamento e escrita de dados. Os scripts escritos pelos usuários em Pig Latin, são compilados pelo Pig e convertidos para um ou mais programas MapReduce que depois são executados utilizando o Hadoop. A linguagem