Baixe o app para aproveitar ainda mais
Prévia do material em texto
ENGENHARIA DE DADOS ENGENHARIA DE DADOS Engenharia de Dados Edison Andrade Martins MoraisEdison Andrade Martins Morais GRUPO SER EDUCACIONAL gente criando o futuro Você já deve ter ouvido falar na expressão “Era da Informação”. Também conheci- da como era digital ou tecnológica, trata-se do período iniciado a partir dos anos 1980, caracterizado principalmente por diversas revoluções tecnológicas, como as invenções dos computadores pessoais, das redes de comunicação, dos celula- res, da internet, etc. Essas inovações mudaram o comportamento da sociedade, influenciando a forma com que as pessoas se comunicam, aprendem, consomem, se relacionam e vivem. Além das inovações, um outro fator in� uenciou essas mudanças: a grande quantida- de de dados disponíveis. Para se ter uma ideia, entre 2006 e 2010, o volume de dados digitais gerados cresceu de 166 exabytes para 988 exabytes, sendo que este volume passou a dobrar a cada dois anos e vem crescendo exponencialmente. O que fazer com esta quantidade massiva de dados? Como processá-los? Como extrair informação útil deste universo? Essas questões representam apenas alguns dos desa� os atuais da humanidade. O que nós, da área de tecnologia da informação, podemos fazer para ajudar nesses desa� os? Engenharia de Dados.indd 1,3 20/08/2019 17:39:27 © Ser Educacional 2019 Rua Treze de Maio, nº 254, Santo Amaro Recife-PE – CEP 50100-160 *Todos os gráficos, tabelas e esquemas são creditados à autoria, salvo quando indicada a referência. Informamos que é de inteira responsabilidade da autoria a emissão de conceitos. Nenhuma parte desta publicação poderá ser reproduzida por qualquer meio ou forma sem autorização. A violação dos direitos autorais é crime estabelecido pela Lei n.º 9.610/98 e punido pelo artigo 184 do Código Penal. Imagens de ícones/capa: © Shutterstock Presidente do Conselho de Administração Diretor-presidente Diretoria Executiva de Ensino Diretoria Executiva de Serviços Corporativos Diretoria de Ensino a Distância Autoria Projeto Gráfico e Capa Janguiê Diniz Jânyo Diniz Adriano Azevedo Joaldo Diniz Enzo Moreira Prof. Edison Andrade Martins Morais DP Content DADOS DO FORNECEDOR Análise de Qualidade, Edição de Texto, Design Instrucional, Edição de Arte, Diagramação, Design Gráfico e Revisão. Engenharia de dados - Unidade1_Formato A5_1.indd 2 15/07/19 14:44 Boxes ASSISTA Indicação de filmes, vídeos ou similares que trazem informações comple- mentares ou aprofundadas sobre o conteúdo estudado. CITANDO Dados essenciais e pertinentes sobre a vida de uma determinada pessoa relevante para o estudo do conteúdo abordado. CONTEXTUALIZANDO Dados que retratam onde e quando aconteceu determinado fato; demonstra-se a situação histórica do assunto. CURIOSIDADE Informação que revela algo desconhecido e interessante sobre o assunto tratado. DICA Um detalhe específico da informação, um breve conselho, um alerta, uma informação privilegiada sobre o conteúdo trabalhado. EXEMPLIFICANDO Informação que retrata de forma objetiva determinado assunto. EXPLICANDO Explicação, elucidação sobre uma palavra ou expressão específica da área de conhecimento trabalhada. Engenharia de dados - Unidade1_Formato A5_1.indd 3 15/07/19 14:44 Unidade 1 - Introdução à Engenharia de Dados Objetivos da unidade ........................................................................................................... 12 Introdução à Engenharia de Dados ................................................................................... 13 Tipos de dados ................................................................................................................. 15 Tipos de informações ...................................................................................................... 16 Transformar dados em informações ............................................................................ 17 Atributos de um engenheiro de dados ............................................................................. 18 Responsabilidades ......................................................................................................... 18 Habilidades (competências) .......................................................................................... 19 Arquitetura de sistemas distribuídos .............................................................................. 20 Elementos arquitetônicos ............................................................................................ 23 Padrões arquitetônicos ................................................................................................ 26 Plataformas de middleware ........................................................................................ 27 Banco de dados distribuído .............................................................................................. 28 Arquitetura centralizada .............................................................................................. 29 Arquitetura cliente-servidor ........................................................................................ 30 Conceitos e vantagens ................................................................................................. 32 Funcionamento .............................................................................................................. 34 Confiabilidade, eficiência e a qualidade dos dados .................................................... 35 Política de segurança da informação ........................................................................ 37 Controles gerais ............................................................................................................ 38 Controles de aplicativos ............................................................................................... 39 Controles de banco de dados ..................................................................................... 39 Controle de redes .......................................................................................................... 40 Sintetizando .......................................................................................................................... XX Referências bibliográficas ................................................................................................ XX Sumário Engenharia de dados - Unidade1_Formato A5_1.indd 4 15/07/19 14:44 Sumário Unidade 2 - Extração, Transformação, Carregamento Objetivos da unidade ........................................................................................................... 45 Extração, Transformação e Carga (ETL) .......................................................................... 46 Inteligência de Negócios ............................................................................................... 47 Mineração de Dados ...................................................................................................... 48 Extração ............................................................................................................................ 53 Transformação ................................................................................................................. 54 Carga ................................................................................................................................. 55 Modelagem de dados para Big Data ................................................................................ 56 Seleção das fontes de dados ....................................................................................... 58 Carga e armazenamento ................................................................................................ 59 Análise e processamento .............................................................................................. 60 Visualização dos dados ..................................................................................................69 Sintetizando ........................................................................................................................... 71 Referências bibliográficas ................................................................................................. 72 ENGENHARIA DE DADOS 5 Engenharia de dados - Unidade1_Formato A5_1.indd 5 15/07/19 14:44 Sumário Unidade 3 - Integração de dados Objetivos da unidade ........................................................................................................... 75 Integrar diversas fontes de dados ..................................................................................... 76 Abordagens para integração de dados ....................................................................... 77 Arquiteturas para integração de dados ...................................................................... 78 Middlewares para integração de dados ..................................................................... 82 Leitura de dados estruturados, não estruturados e semiestruturados .................. 84 Integração de dados ....................................................................................................... 90 Pipelines ................................................................................................................................ 94 Hardware .......................................................................................................................... 95 Software ............................................................................................................................ 95 Dados ................................................................................................................................. 98 Jobs ......................................................................................................................................... 99 Sintetizando ......................................................................................................................... 101 Referências bibliográficas ............................................................................................... 102 ENGENHARIA DE DADOS 6 Engenharia de dados - Unidade1_Formato A5_1.indd 6 15/07/19 14:44 Sumário Unidade 4 – Linguagem SQL Objetivos da unidade ......................................................................................................... 106 Linguagem SQL avançada ................................................................................................ 107 Linguagem de Definição de Dados (DDL) .................................................................. 111 Linguagem de Manipulação de Dados (DML) .......................................................... 116 View ...................................................................................................................................... 125 Programação de banco de dados .................................................................................... 126 Procedures........................................................................................................................... 128 Funções ................................................................................................................................ 129 Triggers ................................................................................................................................. 132 Cursores ............................................................................................................................... 133 Sintetizando ......................................................................................................................... 135 Referências bibliográficas ............................................................................................... 136 ENGENHARIA DE DADOS 7 Engenharia de dados - Unidade1_Formato A5_1.indd 7 15/07/19 14:44 ENGENHARIA DE DADOS 8 Engenharia de dados - Unidade1_Formato A5_1.indd 8 15/07/19 14:44 Caro aluno(a), você já deve ter ouvido falar na expressão “Era da Informa- ção”. Também conhecida como era digital ou tecnológica, trata-se do período iniciado a partir dos anos 1980, caracterizado principalmente por diversas re- voluções tecnológicas, como as invenções dos computadores pessoais, das re- des de comunicação, dos celulares, da internet, etc. Essas inovações mudaram o comportamento da sociedade, infl uenciando a forma com que as pessoas se comunicam, aprendem, consomem, se relacionam e vivem. Além das inovações, um outro fator infl uenciou essas mudanças: a grande quantidade de dados disponíveis. Para se ter uma ideia, entre 2006 e 2010, o volume de dados digitais gerados cresceu de 166 exabytes para 988 exabytes, sendo que este volume passou a dobrar a cada dois anos e vem crescendo exponencialmente. O que fazer com esta quantidade massiva de dados? Como processá-los? Como extrair informação útil deste universo? Essas questões re- presentam apenas alguns dos desafi os atuais da humanidade. O que nós, da área de tecnologia da informação, podemos fazer para ajudar nesses desafi os? ENGENHARIA DE DADOS 9 Apresentação Engenharia de dados - Unidade1_Formato A5_1.indd 9 15/07/19 14:44 Dedico esta obra a todas as pessoas que, de maneira direta ou indireta, ajudaram na minha formação: professores, colegas de trabalho, amigos e principalmente minha família. O Professor Edison Andrade Martins Morais é analista de sistemas (1997) e leciona na área de Tecnologia da In- formação desde 2003. Possui MBA em Governança nas Tecnologias da Infor- mação pelo IPOG (2014), mestrado em Ciência da Computação pela UFG (2007) e especialização em Análise e Projeto de Sistemas de Informação pela UFG (2003). Suas principais áreas de atuação profi ssional e acadêmica são: gestão em TI, governança em TI, gerenciamento de serviços de TI, gestão de processos de negócio (BPM), engenharia de software, qualidade de software, análise e proje- to de sistemas de informação, banco de dados e desenvolvimento de software. Currículo Lattes: http://lattes.cnpq. br/5385798087351636 ENGENHARIA DE DADOS 10 O Autor Engenharia de dados - Unidade1_Formato A5_1.indd 10 15/07/19 14:45 1 UNIDADE INTRODUÇÃO À ENGENHARIA DE DADOS Engenharia de dados - Unidade1_Formato A5_1.indd 11 15/07/19 14:46 Objetivos da unidade Tópicos de estudo Apresentar uma introdução ao tema engenharia de dados; Mostrar quais são os atributos de um engenheiro de dados; Mostrar como funciona a arquitetura dos sistemas distribuídos; Apresentar o funcionamento dos bancos de dados distribuídos; Apresentar os principais conceitos relacionados à confiabilidade, à eficiência e à qualidade dos dados. Introdução à Engenharia de Dados Tipos de dados Tipos de informações Transformar dados em infor- mações Atributos de um engenheiro de dados Responsabilidades Habilidades (competências) Arquitetura de sistemas distri- buídos Elementos arquitetônicos Padrões arquitetônicos Plataformas de middleware Banco de dados distribuído Arquitetura centralizada Arquitetura cliente-servidor Conceitos e vantagens Funcionamento Confiabilidade, eficiência e a qua- lidade dos dados Política de segurança da infor- mação Controles gerais Controles de aplicativos Controles de banco de dados Controles de redes ENGENHARIA DE DADOS 12 Engenharia de dados - Unidade1_Formato A5_1.indd 12 15/07/19 14:46 Introdução à Engenharia de Dados Antes de entender o que é a Engenharia de Dados, vamos entender o con- ceito de dado. Dado é qualquer símbolo com signifi cado próprio. O dado em si, fora de um contexto, tem pouca ou nenhuma utilidade. Para que o dado possa ser útil ele deve possuir algum signifi cado, ou seja, representar uma informação. Ao contrário dos dados, as informações geram algum tipo de conhecimento útil, que pode servir para diferentes fi nalidades,especialmente a tomada de decisão. Uma vez contextualizada e interpretada, a informação pode se tornar co- nhecimento, que é a informação processada e transformada em experiência pelo indivíduo. A Tabela 1 mostra o comparativo entre os conceitos de dado, informação e conhecimento. TABELA 1. DADO, INFORMAÇÃO E CONHECIMENTO Fonte: DAVENPORT; PRUSAC, 1998, p. 5. (Adaptado). Dado Informação Conhecimento - Simples observação do estado do mundo; - Facilmente estruturável; - Facilmente obtido por máquinas; - Frequentemente quanti- fi cado; - Facilmente transferível. - Dados dotados de relevância e propósito; - Requer unidade de análise; - Exige consenso em relação ao signifi cado; - Exige necessariamente a me- diação humana. - Informação valiosa da mente humana; - Inclui refl exão, sintaxe, contexto; - De difícil estruturação; - De difícil captura de máquinas; - Frequentemente tácito; - De difícil transferência. - Simples observação do estado do mundo; - Simples observação do estado do mundo; - Facilmente estruturável; - Simples observação do estado do mundo; - Facilmente estruturável; - Facilmente obtido por - Simples observação do estado do mundo; - Facilmente estruturável; - Facilmente obtido por máquinas; - Frequentemente quanti- - Simples observação do estado do mundo; - Facilmente estruturável; - Facilmente obtido por máquinas; - Frequentemente quanti- fi cado; - Simples observação do - Facilmente estruturável; - Facilmente obtido por - Frequentemente quanti- fi cado; - Facilmente transferível. - Facilmente estruturável; - Facilmente obtido por - Frequentemente quanti- - Facilmente transferível. - Facilmente obtido por - Frequentemente quanti- - Facilmente transferível. - Dados dotados de relevância - Frequentemente quanti- - Facilmente transferível. - Dados dotados de relevância e propósito; - Requer unidade de análise; - Frequentemente quanti- - Facilmente transferível. - Dados dotados de relevância e propósito; - Requer unidade de análise; - Exige consenso em relação - Facilmente transferível. - Dados dotados de relevância e propósito; - Requer unidade de análise; - Exige consenso em relação ao signifi cado; - Dados dotados de relevância - Requer unidade de análise; - Exige consenso em relação ao signifi cado; - Exige necessariamente a me- diação humana. - Dados dotados de relevância - Requer unidade de análise; - Exige consenso em relação ao signifi cado; - Exige necessariamente a me- diação humana. - Dados dotados de relevância - Requer unidade de análise; - Exige consenso em relação ao signifi cado; - Exige necessariamente a me- diação humana. - Requer unidade de análise; - Exige consenso em relação - Exige necessariamente a me- diação humana. - Informação valiosa da - Exige consenso em relação - Exige necessariamente a me- diação humana. - Informação valiosa da mente humana; - Inclui refl exão, sintaxe, - Exige necessariamente a me- - Informação valiosa da mente humana; - Inclui refl exão, sintaxe, contexto; - Exige necessariamente a me- - Informação valiosa da mente humana; - Inclui refl exão, sintaxe, contexto; - De difícil estruturação; - Informação valiosa da mente humana; - Inclui refl exão, sintaxe, contexto; - De difícil estruturação; - De difícil captura de máquinas; - Informação valiosa da - Inclui refl exão, sintaxe, - De difícil estruturação; - De difícil captura de máquinas; - Frequentemente tácito; - Inclui refl exão, sintaxe, - De difícil estruturação; - De difícil captura de máquinas; - Frequentemente tácito; - De difícil transferência. - De difícil estruturação; - De difícil captura de - Frequentemente tácito; - De difícil transferência. - De difícil estruturação; - De difícil captura de - Frequentemente tácito; - De difícil transferência. - Frequentemente tácito; - De difícil transferência. - Frequentemente tácito; - De difícil transferência.- De difícil transferência. Engenharia de dados é a área responsável por encontrar, a partir de conjuntos de dados, informações, conhecimento e tendências úteis para tomada de decisão nas organizações. Sob responsabilidade do engenheiro de dados, seu trabalho envolve basicamente o desenvolvimento de algo- ritmos de mineração. Trata-se de uma área diretamente relacionada à ciência de dados (do inglês, Data Science), que é a ciência que envolve princípios, processos e técnicas para com- ENGENHARIA DE DADOS 13 Engenharia de dados - Unidade1_Formato A5_1.indd 13 15/07/19 14:46 preender fenômenos por meio da análise automatizada de dados (PROVOST; FAWCETT, 2016). O principal objetivo da ciência de dados é fornecer informações que podem contribuir com o aprimoramento do processo de tomada de decisão orientada a dados (DOD), que é a prática de analisar dados para basear a tomada de deci- são, ao invés de fazê-lo de forma apenas intuitiva ou com base em experiência. A Fig. 1 posiciona a ciência de dados em relação à área de engenharia de dados e mostra a relação entre as duas. Tomada de decisão orientada por dados (na empresa) DOD automatizada Data Science Engenharia e processamento de dados (incluindo tecnologias “Big Data”) Outros efeitos positivos do processamento de dados (por exemplo, processamento mais rápido de transações) Figura 1. Engenharia e ciência de dados. Fonte: PROVOST; FAWCETT, 2016, p. 607. (Adaptado). Ao analisar a Fig. 1, podemos observar que, enquanto engenharia de da- dos está relacionada às tecnologias necessárias para tratamentos dos dados, a ciência de dados é a base do processo de tomada de decisão, fornecendo mecanismos de análise automatizada de dados. ENGENHARIA DE DADOS 14 Engenharia de dados - Unidade1_Formato A5_1.indd 14 15/07/19 14:46 Tipos de dados No contexto da engenharia de dados, os dados podem ser classifi cados como estruturados e não estruturados. Um dado estruturado é aquele dado que possui formato bem defi - nido e um metadado associado, ou seja, uma explicação sobre o conteú- do do dado. Um exemplo de dado es- truturado é uma tabela em um banco de dados. As linhas contêm os dados propriamente ditos, enquanto as colunas contêm a informação sobre o que aquele campo da tabela está armazenando. A Tabela 2 ilustra um exemplo de dado estruturado. CONTEXTUALIZANDO Estudos realizados por Brynjolfsson et al. (2011) demonstram que, estatis- ticamente, o aumento na produtividade das empresas está diretamente relacionado à orientação por dados, na ordem de 4% a 6% a mais. Nos anos 1990 o processo de tomada de decisão automatizada orientada a da- dos vinha sendo utilizado por diversos segmentos, tais como instituições bancárias em análises de concessão de crédito, empresas de telecomu- nicações para detecção de fraudes, varejo em decisões comerciais como recomendações automatizadas de compras, por exemplo. Em outras palavras, podemos dizer que engenheiros de dados cons- troem formas de converter dados em formatos que os cientistas de dados possam trabalhar. Vale ressaltar que os engenheiros de dados são tão im- portantes quanto os cientistas de dados, mas tendem a ser menos visíveis porque geralmente estão mais longe do produto final resultado da análise dos dados. Mas que tipo de dado deve ser tratado? Que tipo de informação e co- nhecimento deve ser gerado? Transformar dados em informações requer, em primeiro lugar, o entendimento do tipo de dado a ser tratado. ENGENHARIA DE DADOS 15 Engenharia de dados - Unidade1_Formato A5_1.indd 15 15/07/19 14:46 TABELA 2. EXEMPLOS DE DADO ESTRUTURADO sigla_uf [PK] character nome_uf character varying (20) 1 AC Acre 2 SP São Paulo 3 RJ Rio de Janeiro 4 GO Goiás * AC SP Acre São PauloSão Paulo Rio de JaneiroRio de Janeiro Goiás Rio de Janeiro Goiás Ao analisar a Tabela 2, é possível observar que existem duas colunas: si- gla_uf e nome_uf. Essas colunas representam que tipo de informação está armazenado na tabela. Dessa forma, sabemos que sigla_uf representaa sigla do estado, enquanto nome_uf representa no nome do estado. Já as linhas contêm os dados armazenados em suas respectivas colunas. Já os dados não estruturados são aqueles livres de formato padrão de ar- mazenamento. Podem ser textos em diferentes formatos, páginas web, ima- gens, vídeos, comentários em redes sociais, dados gerados por sensores ou qualquer dado que não tenha metadado associado. Análise de dados armazenados em formato não estruturado pode ser considerada uma atividade mais complexa, se compa- rada a análise de dados estruturados, justamente pelo fato de os dados possuírem a característica da não estruturação (MO- RAIS, 2007, p. 44). Independentemente do formato do dado, o objetivo é gerar informações que, assim como os dados, podem ser classifi cadas em diferentes tipos. Tipos de informações Dentre as classifi cações mais comuns para os tipos de informações, Rezen- de (2016) propõe uma taxonomia baseada na seguinte classifi cação: informa- ções operacionais, informações gerenciais e informações estratégicas. Informações operacionais, ou analíticas, são aquelas armazenadas em nível de detalhe, contemplando características específi cas de um dado, de uma tarefa ou de uma atividade. ENGENHARIA DE DADOS 16 Engenharia de dados - Unidade1_Formato A5_1.indd 16 15/07/19 14:46 EXEMPLIFICANDO Um exemplo de informação operacional seria o armazenamento da quanti- dade vendida de um determinado produto em uma loja de varejo. EXEMPLIFICANDO Como exemplo de informações gerenciais, podemos citar a média de ven- da por produto ou o total de recebido de comissão por um vendedor. Informações gerenciais, ou táticas, são aquelas agrupadas, sintetizadas, que geralmente contemplam a junção de um conjunto de informações opera- cionais a respeito de fatos que ocorreram no passado. Informações estratégicas são aquelas informações em nível macro, co- mumente preditivas, que contemplam o meio interno e externo na organiza- ção e, geralmente, indicam algum tipo de comportamento futuro em relação a algum fato. EXEMPLIFICANDO A tendência de vendas por produto e região nos próximos meses é um exemplo de informação estratégica. Mas como gerar essas informações? Quais processos devem ser utilizados? Transformar dados em informações Existem diversas estratégias de transformação de dados em informa- ções. Para transformação de dados estruturados, uma das técnicas mais utili- zadas é a mineração de dados (do inglês, Data Mining). Mineração de dados é o processo de extração de informação útil e não ób- via em grandes volumes de dados. A partir deste processo, podem ser obtidos padrões válidos, novos, potencialmente úteis e compreensíveis a respeito dos dados (MORAIS, 2007). Já para processamento de dados não estruturados, podemos citar a téc- nica de mineração de textos (do inglês, Text Mining), expressão que se refere ENGENHARIA DE DADOS 17 Engenharia de dados - Unidade1_Formato A5_1.indd 17 15/07/19 14:46 ao processo de extração de conhecimento ou padrões interessantes e não tri- viais a partir de documentos em formato não estruturado. Ambas abordagens podem ser utilizadas como apoio a outras áreas. A Mine- ração de Dados, por exemplo, faz parte da estrutura de funcionamento da área de Inteligência de Negócios (do inglês, Business Intelligence), enquanto a minera- ção de textos pode fazer parte de um mecanismo maior de análise de Big Data. Todo o trabalho de mineração de dados, estruturados ou não, é realizado pelo profi ssional chamado de engenheiro de dados, cujas atribuições serão apresentadas na próxima seção. Atributos de um engenheiro de dados Gerenciar e organizar dados, visando a encontrar tendências, informações não óbvias ou inconsistências que afetarão as metas de negócios. Essas são as principais atribuições dos engenheiros de dados. Exige conhecimento e experiência, principalmente nas áreas de progra- mação, matemática e ciência da computação. Devem possuir habilidade de comunicação, uma vez que precisam se comunicar com outras áreas da organização, tanto em relação às tendências coletadas quanto ao uso dos dados coletados. Responsabilidades A seguir, são descritas algumas das principais atribuições (ou responsabili- dades) dos engenheiros de dados (CIO-IDG, 2018; Dataquest, 2019): • Desenvolver, construir, testar e manter arquiteturas; • Alinhar arquiteturas com requisitos de negócios; • Cuidar da aquisição dos dados; • Desenvolver processos de conjunto de dados; • Usar linguagem de programação e ferramentas; • Identifi car maneiras de melhorar a confi abilidade, a efi ciência e a qualida- de dos dados; • Realizar pesquisas para questões industriais e de negócios; • Usar grandes conjuntos de dados para resolver problemas de negócios; ENGENHARIA DE DADOS 18 Engenharia de dados - Unidade1_Formato A5_1.indd 18 15/07/19 14:46 • Implantar programas analíticos sofi sticados, Machine Learning e métodos estatísticos; • Preparar dados para modelagem preditiva e prescritiva; • Encontrar padrões ocultos usando dados; • Usar dados para descobrir tarefas que podem ser automatizadas; • Entregar atualizações para as partes interessadas com base em análises; • Arquitetar sistemas distribuídos; • Criar formas confi áveis de converter dados; • Combinar fontes de dados; • Criar a arquitetura de soluções; • Colaborar com a equipe de Data Science e construir as soluções certas para essas equipes. Habilidades (competências) Além de suas atribuições, o engenheiro de dados deve dominar algumas tecnologias, que tendem a afetar signifi cativamente seus salários – em alguns casos, na faixa de 10 ou 15% a mais. De acordo com dados do PayScale (2019), o domínio das seguintes tecnologias está associado a um aumento signifi ca- tivo nos salários: TABELA 3. TECNOLOGIAS QUE O ENGENHEIRO DE DADOS DEVE DOMINAR Tecnologia Aumento Scala 17% Apache Spark 16% Data Warehouse 14% Java 13% Modelagem de dados 12% Apache Hadoop 11% Linux 11% Scala Apache Spark Scala Apache Spark Data Warehouse Apache Spark Data Warehouse Apache Spark Data Warehouse Modelagem de dados Apache Spark Data Warehouse Java Modelagem de dados Data Warehouse Java Modelagem de dados Apache Hadoop Modelagem de dados Apache Hadoop Modelagem de dados Apache Hadoop Linux Modelagem de dados Apache Hadoop Linux Apache Hadoop 17% 16%16% 14%14% 13%13% 12% 11% 11%11% ENGENHARIA DE DADOS 19 Engenharia de dados - Unidade1_Formato A5_1.indd 19 15/07/19 14:46 Tecnologia Aumento Amazon Web Services (AWS) 10% ETL (extração, transformação, carga) 7% Análise de Big Data 6% Desenvolvimento de software 2% Fonte: PAYSCALE, 2019, p. 2. Amazon Web Services (AWS) ETL (extração, transformação, carga) Amazon Web Services (AWS) ETL (extração, transformação, carga) Amazon Web Services (AWS) ETL (extração, transformação, carga) Amazon Web Services (AWS) ETL (extração, transformação, carga) Amazon Web Services (AWS) ETL (extração, transformação, carga) Análise de Big Data Desenvolvimento de software Amazon Web Services (AWS) ETL (extração, transformação, carga) Análise de Big Data Desenvolvimento de software Amazon Web Services (AWS) ETL (extração, transformação, carga) Análise de Big Data Desenvolvimento de software Amazon Web Services (AWS) ETL (extração, transformação, carga) Análise de Big Data Desenvolvimento de software Amazon Web Services (AWS) ETL (extração, transformação, carga) Análise de Big Data Desenvolvimento de software ETL (extração, transformação, carga) Análise de Big Data Desenvolvimento de software ETL (extração, transformação, carga) Desenvolvimento de softwareDesenvolvimento de softwareDesenvolvimento de software 10% 7% 6%6% 2%2% Agora que já aprendemos sobre a engenharia de dados e as atribuições dos engenheiros de dados, podemos inferir que existe um grande desafi o, que é realizar o processamento destes dados de forma que sejam geradas informa-ções relevantes, não óbvias e de qualidade para tomada de decisão. Para isso, devemos utilizar estrutura tecnológicas que deem suporte e este processamento. Devido ao grande volume de dados existentes na atualidade, uma das bases para criação destas estruturas vem da ideia da computação distribuída, que é a base dos sistemas distribuídos, que iremos estudar na próxima seção. Arquitetura de sistemas distribuídos Imagine a seguinte situação: você faz uma pesquisa por um termo simples no Google que devolve milhões de resultados, geralmente, em menos de 200 milissegundos (Google - PageSpeed Tools, 2019), ou seja, um tempo inferior a 0,2 segundos. Como esse tempo de resposta é possível? Segundo o próprio Google, em seu site Google Data Centers (2019), a empresa possui ambientes com ser- vidores e equipamentos de proces- samento de dados, os data centers, espalhados por todo mundo, visando manter seus produtos em funciona- mento 24 horas por dia, sete dias por semana. A Fig. 2 mostra a localização desses data centers. ENGENHARIA DE DADOS 20 Engenharia de dados - Unidade1_Formato A5_1.indd 20 15/07/19 14:47 Figura 2. Data centers do Google. Fonte: Google - Data Centers, 2019. Para que esses computadores se comuniquem, é necessário um mecanismo de computação distribuída, que é aquele no qual os componentes de hardware ou software, localizados em computadores interligados em redes, comunicam-se e coordenam suas ações por meio do envio de mensagens entre si, independen- temente da distância que se encontrem uns dos outros (COULOURIS et al., 2013). Sistemas distribuídos consistem em vários elementos de processamento, não necessariamente homogêneos, que são interconectados por uma rede de compu- tadores e que cooperam na execução de certas tarefas. Como uma meta genérica, os sistemas de computação distribuídos dividem um problema grande e intratável em partes menores e os resolvem efi cientemente de maneira coordenada. A viabilidade econômica dessa abordagem provém de duas ra- zões: (1) mais poder de computação é necessário para resolver uma tarefa complexa, e (2) cada elemento de processamento autônomo pode ser gerenciado independentemente e pode de- senvolver suas próprias aplicações (ELMASRI et al., 2005, p. 579). Uma das principais características que tornam a utilização desse sistema necessária é a escalabilidade, que é a capacidade que um sistema possui de manter níveis adequados de resposta quando há um aumento signifi cativo no número de recursos e requisições de usuários. ENGENHARIA DE DADOS 21 Engenharia de dados - Unidade1_Formato A5_1.indd 21 15/07/19 14:47 Justamente pelo fato de serem escaláveis, sistemas em ambientes distribuí- dos são a solução viável para realidade atual, uma vez que, em ambientes como a internet, por exemplo, onde o volume de dados e requisições é muito grande, a eficiência no tempo de resposta é algo imprescindível. Os três principais desafios em ambientes distribuídos escaláveis estão rela- cionados ao controle dos custos de utilização dos recursos físicos, da perda de desempenho, dos recursos de software e tratamento dos gargalos. Em relação ao custo dos recursos, na medida em que as requisições au- mentam, deve ser possível ampliar, a custo viável, os sistemas físicos e lógico necessários para atendê-las. EXEMPLIFICANDO Na medida em que o acesso aos arquivos disponíveis em uma intra- net aumenta, em função do crescimento do número de usuários ou de outros fatores, deve ser viável financeiramente ampliar a capacidade do servidor atual ou adicionar novos, visando evitar uma perda de desempenho. Além do aumento das requisições, o aumento do volume de dados armaze- nados por esses sistemas pode levar à perda de desempenho, ao esgotamento da utilização dos recursos de software e ao surgimento de gargalos de desem- penho. Todos esses fatores devem ser considerados e tratados em ambientes distribuídos através de técnicas que vão da replicação dos dados até a distri- buição dos servidores para execução das tarefas. Agora que já conhecemos os principais conceitos relacionados aos sistemas distribuídos, vamos aprender sobre sua arquitetura. A arquitetura de um sistema distribuído é a sua estrutura em termos de componentes especificados separadamente e suas inter-relações (COULOURIS et al., 2013). Ao definir uma arquitetura, o objetivo é garantir que a estrutura proposta para o sistema seja gerenciável e atenda às requisições atuais e futu- ras de seus usuários, garantindo a confiabilidade, adaptabilidade e a rentabili- dade do sistema. Para entender as arquiteturas dos sistemas, vamos conhecer três con- ceitos: elementos arquitetônicos, padrões arquitetônicos e as plataformas de middleware. ENGENHARIA DE DADOS 22 Engenharia de dados - Unidade1_Formato A5_1.indd 22 15/07/19 14:47 Elementos arquitetônicos Elementos arquitetônicos são todos os componentes que constituem a arquitetura de um sistema distribuído. São divididos em quatro estruturas fundamentais: entidades de comunicação, paradigmas de comunicação, fun- ções e responsabilidades e mapeamento de serviços em vários servidores. Entidades de comunicação são todos os elementos que se comunicam e como eles se comunicam, no sistema. Uma entidade em um sistema distri- buído geralmente é um processo. Um processo é um ambiente de execução junto a uma ou mais threads. EXEMPLIFICANDO Thread é uma atividade, ou uma tarefa, que um programa executa no sistema operacional. Paradigmas de comunicação envolvem a defi nição da forma pela qual as entidades irão se comunicar. Pode ser vista sob três perspectivas: comu- nicação entre processos, invocação remota e comunicação indireta; • Comunicação entre processos se refere à forma pela qual os processos se comunicam em seu nível mais baixo. Envolve a defi nição de primitivas de envio de mensagens, acessos direto a protocolos de comunicação e suporte a comunicação entre grupos de processos; • Invocação remota é o método mais comum de comunicação entre enti- dades. Baseia-se na troca bilateral de dados através de chamadas de opera- ções, procedimentos ou métodos; • Comunicação indireta ocorre por meio de um elemento intermediário, visando a não gerar nenhum tipo de acoplamento direto entre as entidades remetente e destinatária. EXEMPLIFICANDO As principais técnicas de comunicação indireta são: a comunicação em gru- po, o sistema publicar-assinar (do inglês, Publish-Subscribe), os sistemas de fi las de mensagens, os espaços de tuplas, os sistemas de memória compar- tilhada distribuída e as estratégias baseadas em memória duplicada. ENGENHARIA DE DADOS 23 Engenharia de dados - Unidade1_Formato A5_1.indd 23 15/07/19 14:47 Em relação ao elemento funções e responsabilidades, é necessário pen- sar na forma pela qual os processos interagem uns com os outros no sentido de realizar alguma atividade útil. Essa visão da forma de interação define dois estilos arquiteturais: cliente-servidor e peer-to-peer. Na arquitetura cliente-servidor, os processos-clientes interagem com os processos-servidores localizados em computadores hospedeiros (hosts), vi- sando acessar recursos compartilhados que gerenciam. O Diagrama 1 mos- tra o exemplo de funcionamento dessa arquitetura. Cliente Chamada Chamada Resultado Resultado Servidor Servidor Cliente DIAGRAMA 1. ARQUITETURA CLIENTE-SERVIDOR Fonte: COULOURIS et al., 2013, p. 47. (Adaptado). Já na arquitetura peer-to-peer, todos os processos envolvidos em uma tarefa ou atividade de- sempenham funções semelhantes, interagindo cooperativamen- te como pares (peers), sem distinção entre processos clientes e servidores, nem entre os computadores em que são executados (COULOURIS et al., 2013, p. 46). O Diagrama 2 mostra o exemplo de funcionamento dessa arquitetura. ENGENHARIA DE DADOS 24 Engenharia de dados - Unidade1_Formato A5_1.indd 24 15/07/19 14:47 DIAGRAMA 2. ARQUITETURAPEER-TO-PEER Ponto 1 Objetos compartilhados Ponto 2 Ponto 3 Pontos 4 ... N Aplicativo Aplicativo Aplicativo Fonte: COULOURIS et al., 2013, p. 48. (Adaptado). Finalmente, em relação ao mapeamento de serviços em vários servido- res, deve-se considerar que podem ser implementados como vários proces- sos-servidores em hospedeiros diferentes, com o objetivo de fornecer serviços para processos-clientes e interagir sempre que necessário. O Diagrama 3 mos- tra o funcionamento desse mapeamento. DIAGRAMA 3. SERVIÇOS FORNECIDOS POR VÁRIOS SERVIDORES Servidor Cliente Cliente Servidor Servidor Servidor Fonte: COULOURIS et al., 2013, p. 48. (Adaptado). ENGENHARIA DE DADOS 25 Engenharia de dados - Unidade1_Formato A5_1.indd 25 15/07/19 14:47 Agora que já conhecemos os elementos arquitetônicos, o próximo passo é aprender sobre os padrões arquitetônicos existentes. Padrões arquitetônicos Os padrões arquitetônicos representam a organização lógica e física dos elementos que compõem um sistema distribuído. As estruturas mais conhe- cidas são aquelas organizadas em camadas lógicas e físicas. A organização baseada em camadas lógicas é uma das estratégias mais utilizadas para defi nição de padrões, na qual cada camada oferece uma abstração de software. As camadas inferiores encapsulam os detalhes de sua implementação, que se torna oculta para as camadas superiores. Nesse tipo de organização, cada camada oferece um determinado serviço, que é utilizado por suas camadas adjacentes. O Diagrama 4 mostra a organização desse tipo de padrão arquitetural. DIAGRAMA 4. CAMADAS LÓGICAS EM SISTEMAS DISTRIBUÍDOS Aplicativos e Serviços Middleware Sistema Operacional Computador e Hardware de Rede Plataforma Fonte: COULOURIS et al., 2013, p. 48. (Adaptado). Já a organização baseada em camadas físicas representa uma estrutura complementar para dar suporte à estrutura de camadas lógicas, uma vez que são as técnicas utilizadas para organizar a execução de determinada funcio- nalidade da camada lógica no equipamento de hardware adequado. Na prática, cada camada lógica é mapeada para um servidor físico que, por sua vez, será responsável por executar as funcionalidades daquela ca- mada. O Diagrama 5 mostra a organização desse tipo de padrão arquitetural. ENGENHARIA DE DADOS 26 Engenharia de dados - Unidade1_Formato A5_1.indd 26 15/07/19 14:47 DIAGRAMA 5. CAMADAS LÓGICAS EM SISTEMAS DISTRIBUÍDOS Fonte: COULOURIS et al., 2013, p. 48. (Adaptado). Visualização dos Usuários Visualização dos Usuários Camada Fisíca 1 Computadores Pessoais ou Dispositivos Móveis Servidos de Aplicação Servidor de Banco de Dados Camada Fisíca 2 Camada Fisíca 3 Gerenciador de Banco de Dados Lógica da Aplicação Lógica da Aplicação CURIOSIDADE A Wikipédia, que é um projeto de enciclopédia multilíngue de licença livre, baseado na web e escrito de maneira colaborativa, adota a arquitetura de múltiplas camadas físicas para lidar com o volume de requisições de seus mais de dois milhões de usuários. Agora entendemos que na arquitetura distribuída existem elementos ar- quitetônicos interagentes que são organizados em padrões (camadas). Mas como essa interação ocorre na prática? Plataformas de middleware Middleware é o software responsável pela comunicação entre os elemen- tos de cada camada e o processamento distribuído dos dados. Posicionado en- tre as camadas, ele permite a comunicação e o gerenciamento de dados entre os elementos. Dentre os tipos mais comuns de middleware, podemos citar os de banco de dados, de servidor de aplicativos, orientado a mensagens, web e monitores de ENGENHARIA DE DADOS 27 Engenharia de dados - Unidade1_Formato A5_1.indd 27 15/07/19 14:47 processamento de transações. O funcionamento desses softwares geralmen- te é baseado em serviços de trocas de mensagens que utilizam determinados protocolos de comunicação, tais como SOAP, REST ou JSON. EXPLICANDO SOAP (protocolo simples de acesso a objetos; do inglês, Simple Object Access Protocol) é um protocolo para troca de informações estruturadas em ambientes distribuídos baseado na linguagem XML. REST (transferência de estado representacional; do inglês, Representa- tional State Transfer) é um protocolo, baseado em HTTP, que defi ne um conjunto de restrições e propriedades de comunicação. JSON (notação de objeto javascript; do inglês, JavaScript Object Notation) é um padrão aberto de troca de dados entre sistema baseado na lingua- gem JavaScript. A escolha do tipo de comunicação mais adequada deve levar em conside- ração questões relacionadas à segurança, gerenciamento de transações, con- sultas de mensagens, servidores de aplicativos, servidores da web e diretórios. Mas como essa estrutura de processamento distribuído, que inclui ele- mentos e padrões arquitetônicos e middleware, pode ser utilizada para lidar com dados armazenados em banco de dados? Banco de dados distribuído Elmasri e Navate, duas das principais referências na área, defi nem banco de dados distribuído (do inglês Distributed Database – BDD) como uma coleção de múltiplos bancos de dados logicamente in- ter-relacionados distribuídos por uma rede de computadores, e um Sistema de Gerenciamento de Banco de Dados Distribuído (do inglês Distributed Database Management System – SGBDD), que é um siste- ma de software que gerencia um banco de dados distribuído enquan- to torna a distribuição transparente para o usuário (2005, p. 579). A partir dessa defi nição, podemos observar então que o BDD é um tipo de banco de dados específi co para ambientes de Sistemas Distribuídos. Qual é a vantagem deste tipo de ambiente em relação a outras formas de armazenamento dos dados? A resposta é simples: este tipo de arquitetura provê maior poder de processamento. ENGENHARIA DE DADOS 28 Engenharia de dados - Unidade1_Formato A5_1.indd 28 15/07/19 14:47 Então, antes de conhecer o conceito de Banco de Dados Distribuídos, suas vantagens, funcionamento e tipos, vamos primeiramente entender quais são as outras arquiteturas de Banco de Dados existentes: centralizada e cliente servidor. Arquitetura centralizada Os primeiros bancos de dados (BD) utilizavam uma arquitetura conhecida como centralizada. Nesse tipo de arquitetura, eram utilizados computadores centrais, conhecidos como mainframes, com grande poder de processamento e capacidade de armazenamento, que eram responsáveis por todo processa- mento de dados e execução de todas as aplicações que implementavam as funcionalidades dos sistemas. A Fig. 3 representa esse tipo de arquitetura. Figura 3. Arquitetura de banco de dados centralizada. (Adaptado). Processo Centralizado Mainframe Aplicação Banco de dados Terminal Burro Esse tipo de arquitetura era necessário porque os computadores utiliza- dos para acessar esses dados, conhecidos como terminais burros, tinham pouco poder de processamento, permitindo praticamente apenas a visuali- zação dos dados na tela. ENGENHARIA DE DADOS 29 Engenharia de dados - Unidade1_Formato A5_1.indd 29 15/07/19 14:47 Com o surgimento dos computadores pessoais (PC), com maior poder de processamento e quantidade de memória, os sistemas passam a ser orga- nizados com base em uma arquitetura conhecida com cliente-servidor (do inglês, client-server). Arquitetura cliente-servidor Nesta arquitetura, o cliente é, em geral, um computador capaz de realizar processamento local. Quando o computador precisa acessar dados, este se conecta a uma outra máquina, o servidor, que irá fornecê-los. Já um servidor é uma máquina que pode fornecer serviços para as máquinas clientes, como armazenamento ou acesso a um banco de dados. A Fig. 4 ilustra o funcionamento dessa arquitetura. Servidor SGDB (Oracle, SQL, Server, Inofmx, Skybase, etc) Estações (Workstation) Modelo Cliente / Servidor Figura 4. Arquitetura cliente-servidor em duas camadas. (Adaptado). Esse tipo de arquitetura permite organizaro sistema de informação em camadas lógicas, geralmente duas ou três, o que oferece inúmeras vantagens, tais como: separação das responsabilidades de cada camada, implementação independente, com possibilidade de reutilização e inde- pendência entre camadas, que permite a substituição de uma camada sem afetar a outra. ENGENHARIA DE DADOS 30 Engenharia de dados - Unidade1_Formato A5_1.indd 30 15/07/19 14:47 Na arquitetura cliente-servidor baseada em duas camadas, a camada cliente normalmente é responsável por disponibilizar uma interface para visualização dos dados e executar os programas compilados. Já a camada servidor inclui o sistema de gerenciamento de banco de dados (do inglês Database Management System – SGBD), que é o software responsável por armazenar e permitir a manipulação dos dados, realizar o controle de con- corrência para acessos simultâneos, o controle de transações, prover geren- ciamento centralizado de segurança, dentre outras funções. Esse tipo de arquitetura foi muito utilizado antes do surgimento dos sistemas desenvolvidos especificamente para internet (aplicações web), que passaram a utilizar uma terceira camada. Na arquitetura baseada em três camadas, além das camadas cliente e servidor de dados, existe ainda uma camada intermediária, conhecida como camada de aplicação. A Fig. 5 mostra a organização de uma arquite- tura baseada em três camadas. Rede de Comunicação Servidor de Banco de Dados Banco de Dados Estação Estação Estação Estação Figura 5. Arquitetura em três camadas. (Adaptado). A camada de aplicação desempenha um papel intermediário ar- mazenando as regras de negócio (procedimentos ou restrições) que são usadas para acessar os dados do servidor de banco de dados. Também pode incrementar a segurança do banco de dados checan- do as credenciais do cliente antes de enviar uma solicitação ao ser- vidor de banco de dados” (ELMASRI et al., 2005, p. 31) (grifo nosso). ENGENHARIA DE DADOS 31 Engenharia de dados - Unidade1_Formato A5_1.indd 31 15/07/19 14:47 Agora que conhecemos os outros tipos de arquiteturas, nosso próximo passo é conhecer, com mais detalhes, o conceito de banco de dados distribuí- dos, suas vantagens, funcionamento e tipos. Vamos lá? Conceitos e vantagens Como já sabemos, um banco de dados distribuído (BDD) é um conjunto de bancos de dados logicamente inter-relacionados e distribuídos em uma rede de computadores, gerenciados por um sistema de gerenciamento de banco de dados distribuído (SGBDD). Ao contrário dos bancos de dados centralizados, os BDDs têm seu processamento distribuído entres vários equipamentos físicos, conforme pode ser visualizado na Fig. 6. Estação de trabaho Estação de trabaho Estação de trabaho Dados Dados Servidor Servidor Servidor Servidor DadosDados São Paulo Campo Grande Rio de Janeiro São José do Rio Preto Rede de Computadores Estação de trabaho Figura 6. Banco de dados distribuídos. (Adaptado). ENGENHARIA DE DADOS 32 Engenharia de dados - Unidade1_Formato A5_1.indd 32 15/07/19 14:47 O SGBDD é um software que tem capacidade de controlar o armazenamen- to e o processamento de dados que se encontram relacionados de maneira lógica, através de sistemas computacionais interconectados. Por estarem in- terconectados, tanto os dados como as funções de processamento são distri- buídos para locais os mais variados e diferentes entre si. Em relação às principais vantagens da utilização de BDDs, podemos destacar: transparência, dispersão, melhoria na confi abilidade e na disponibilidade, melhoria de desempenho, expansão mais fácil. Essas vantagens são descritas na Tabela 4. TABELA 4. VANTAGENS DOS BANCO DE DADOS DISTRIBUÍDOS Vantagem Descrição Transpar- ência Os usuários de uma BDD não precisam saber onde os dados estão localizados fi sicamente ou como eles podem ser acessados (SILBERSCHATZ et al., 2012). Dispersão Os dados são armazenados de forma dispersa visando a atender com mais efi ciência às necessidades das aplicações e seus usuários. Rapidez de acesso e processa- mento Usuários fi nais do BD podem acessar a apenas uma porção dos dados, que pode ser armazenada localmente. Já o processamento pode ter sua carga de trabalho dividida entre vários locais. Capacidade de ampli- ação Podem ser adicionados novos locais de processamento sem interferir na op- eração dos outros pontos da rede. Redução de custos O custo para adicionar novos pontos de processamento à rede geralmente é menor que o a atualização de hardware de um computador centralizado. Menor risco de falha O impacto negativo causado por uma falha em um dos pontos de rede geralmente é menor, uma vez que o processamento é mantido pelas outras estações. Transpar-Transpar- ência Transpar- ência Dispersão Os usuários de uma BDD não precisam saber onde os dados estão localizados Dispersão Os usuários de uma BDD não precisam saber onde os dados estão localizados fi sicamente ou como eles podem ser acessados (SILBERSCHATZ et al., 2012). Dispersão Rapidez de Os usuários de uma BDD não precisam saber onde os dados estão localizados fi sicamente ou como eles podem ser acessados (SILBERSCHATZ et al., 2012). Rapidez de acesso e processa- Os usuários de uma BDD não precisam saber onde os dados estão localizados fi sicamente ou como eles podem ser acessados (SILBERSCHATZ et al., 2012). Os dados são armazenados de forma dispersa visando a atender com mais Rapidez de acesso e processa- Os usuários de uma BDD não precisam saber onde os dados estão localizados fi sicamente ou como eles podem ser acessados (SILBERSCHATZ et al., 2012). Os dados são armazenados de forma dispersa visando a atender com mais processa- mento Capacidade Os usuários de uma BDD não precisam saber onde os dados estão localizados fi sicamente ou como eles podem ser acessados (SILBERSCHATZ et al., 2012). Os dados são armazenados de forma dispersa visando a atender com mais efi ciência às necessidades das aplicações e seus usuários. Usuários fi nais do BD podem acessar a apenas uma porção dos dados, que pode ser armazenada localmente. Já o processamento pode ter sua carga de Capacidade de ampli- Os usuários de uma BDD não precisam saber onde os dados estão localizados fi sicamente ou como eles podem ser acessados (SILBERSCHATZ et al., 2012). Os dados são armazenados de forma dispersa visando a atender com mais efi ciência às necessidades das aplicações e seus usuários. Usuários fi nais do BD podem acessar a apenas uma porção dos dados, que pode ser armazenada localmente. Já o processamento pode ter sua carga de Capacidade de ampli- ação Os usuários de uma BDD não precisam saber onde os dados estão localizados fi sicamente ou como eles podem ser acessados (SILBERSCHATZ et al., 2012). Os dados são armazenados de forma dispersa visando a atender com mais efi ciência às necessidades das aplicações e seus usuários. Usuários fi nais do BD podem acessar a apenas uma porção dos dados, que pode ser armazenada localmente. Já o processamento pode ter sua carga de de ampli- ação Redução de Os usuários de uma BDD não precisam saber onde os dados estão localizados fi sicamente ou como eles podem ser acessados (SILBERSCHATZ et al., 2012). Os dados são armazenados de forma dispersa visando a atender com mais efi ciência às necessidades das aplicações e seus usuários. Usuários fi nais do BD podem acessar a apenas uma porção dos dados, que pode ser armazenada localmente. Já o processamento pode ter sua carga de Podem ser adicionados novos locais de processamento sem interferir na op- Redução de custos Os usuários de uma BDD não precisam saber onde os dados estão localizados fi sicamente ou como eles podem ser acessados (SILBERSCHATZ et al., 2012). Os dados são armazenados de forma dispersa visando a atender com mais efi ciência às necessidades das aplicações e seus usuários. Usuários fi nais do BD podem acessar a apenas uma porção dos dados,que pode ser armazenada localmente. Já o processamento pode ter sua carga de Podem ser adicionados novos locais de processamento sem interferir na op- Redução de custos Menor risco Os usuários de uma BDD não precisam saber onde os dados estão localizados fi sicamente ou como eles podem ser acessados (SILBERSCHATZ et al., 2012). Os dados são armazenados de forma dispersa visando a atender com mais efi ciência às necessidades das aplicações e seus usuários. Usuários fi nais do BD podem acessar a apenas uma porção dos dados, que pode ser armazenada localmente. Já o processamento pode ter sua carga de Podem ser adicionados novos locais de processamento sem interferir na op- O custo para adicionar novos pontos de processamento à rede geralmente é Menor risco de falha Os usuários de uma BDD não precisam saber onde os dados estão localizados fi sicamente ou como eles podem ser acessados (SILBERSCHATZ et al., 2012). Os dados são armazenados de forma dispersa visando a atender com mais efi ciência às necessidades das aplicações e seus usuários. Usuários fi nais do BD podem acessar a apenas uma porção dos dados, que pode ser armazenada localmente. Já o processamento pode ter sua carga de trabalho dividida entre vários locais. Podem ser adicionados novos locais de processamento sem interferir na op- O custo para adicionar novos pontos de processamento à rede geralmente é menor que o a atualização de hardware de um computador centralizado. Menor risco de falha Os usuários de uma BDD não precisam saber onde os dados estão localizados fi sicamente ou como eles podem ser acessados (SILBERSCHATZ et al., 2012). Os dados são armazenados de forma dispersa visando a atender com mais efi ciência às necessidades das aplicações e seus usuários. Usuários fi nais do BD podem acessar a apenas uma porção dos dados, que pode ser armazenada localmente. Já o processamento pode ter sua carga de trabalho dividida entre vários locais. Podem ser adicionados novos locais de processamento sem interferir na op- O custo para adicionar novos pontos de processamento à rede geralmente é menor que o a atualização de hardware de um computador centralizado. Os usuários de uma BDD não precisam saber onde os dados estão localizados fi sicamente ou como eles podem ser acessados (SILBERSCHATZ et al., 2012). Os dados são armazenados de forma dispersa visando a atender com mais efi ciência às necessidades das aplicações e seus usuários. Usuários fi nais do BD podem acessar a apenas uma porção dos dados, que pode ser armazenada localmente. Já o processamento pode ter sua carga de trabalho dividida entre vários locais. Podem ser adicionados novos locais de processamento sem interferir na op- O custo para adicionar novos pontos de processamento à rede geralmente é menor que o a atualização de hardware de um computador centralizado. O impacto negativo causado por uma falha em um dos pontos de rede geralmente é menor, uma vez que o processamento é mantido pelas outras Os usuários de uma BDD não precisam saber onde os dados estão localizados fi sicamente ou como eles podem ser acessados (SILBERSCHATZ et al., 2012). Os dados são armazenados de forma dispersa visando a atender com mais efi ciência às necessidades das aplicações e seus usuários. Usuários fi nais do BD podem acessar a apenas uma porção dos dados, que pode ser armazenada localmente. Já o processamento pode ter sua carga de trabalho dividida entre vários locais. Podem ser adicionados novos locais de processamento sem interferir na op- eração dos outros pontos da rede. O custo para adicionar novos pontos de processamento à rede geralmente é menor que o a atualização de hardware de um computador centralizado. O impacto negativo causado por uma falha em um dos pontos de rede geralmente é menor, uma vez que o processamento é mantido pelas outras Os usuários de uma BDD não precisam saber onde os dados estão localizados fi sicamente ou como eles podem ser acessados (SILBERSCHATZ et al., 2012). Os dados são armazenados de forma dispersa visando a atender com mais efi ciência às necessidades das aplicações e seus usuários. Usuários fi nais do BD podem acessar a apenas uma porção dos dados, que pode ser armazenada localmente. Já o processamento pode ter sua carga de trabalho dividida entre vários locais. Podem ser adicionados novos locais de processamento sem interferir na op- eração dos outros pontos da rede. O custo para adicionar novos pontos de processamento à rede geralmente é menor que o a atualização de hardware de um computador centralizado. O impacto negativo causado por uma falha em um dos pontos de rede geralmente é menor, uma vez que o processamento é mantido pelas outras Os usuários de uma BDD não precisam saber onde os dados estão localizados fi sicamente ou como eles podem ser acessados (SILBERSCHATZ et al., 2012). Os dados são armazenados de forma dispersa visando a atender com mais efi ciência às necessidades das aplicações e seus usuários. Usuários fi nais do BD podem acessar a apenas uma porção dos dados, que pode ser armazenada localmente. Já o processamento pode ter sua carga de trabalho dividida entre vários locais. Podem ser adicionados novos locais de processamento sem interferir na op- eração dos outros pontos da rede. O custo para adicionar novos pontos de processamento à rede geralmente é menor que o a atualização de hardware de um computador centralizado. O impacto negativo causado por uma falha em um dos pontos de rede geralmente é menor, uma vez que o processamento é mantido pelas outras Os usuários de uma BDD não precisam saber onde os dados estão localizados fi sicamente ou como eles podem ser acessados (SILBERSCHATZ et al., 2012). Os dados são armazenados de forma dispersa visando a atender com mais efi ciência às necessidades das aplicações e seus usuários. Usuários fi nais do BD podem acessar a apenas uma porção dos dados, que pode ser armazenada localmente. Já o processamento pode ter sua carga de trabalho dividida entre vários locais. Podem ser adicionados novos locais de processamento sem interferir na op- eração dos outros pontos da rede. O custo para adicionar novos pontos de processamento à rede geralmente é menor que o a atualização de hardware de um computador centralizado. O impacto negativo causado por uma falha em um dos pontos de rede geralmente é menor, uma vez que o processamento é mantido pelas outras fi sicamente ou como eles podem ser acessados (SILBERSCHATZ et al., 2012). Os dados são armazenados de forma dispersa visando a atender com mais efi ciência às necessidades das aplicações e seus usuários. Usuários fi nais do BD podem acessar a apenas uma porção dos dados, que pode ser armazenada localmente. Já o processamento pode ter sua carga de trabalho dividida entre vários locais. Podem ser adicionados novos locais de processamento sem interferir na op- eração dos outros pontos da rede. O custo para adicionar novos pontos de processamento à rede geralmente é menor que o a atualização de hardware de um computador centralizado. O impacto negativo causado por uma falha em um dos pontos de rede geralmente é menor, uma vez que o processamento é mantido pelas outras Os dados são armazenados de forma dispersa visando a atender com mais Usuários fi nais do BD podem acessar a apenas uma porção dos dados, que pode ser armazenada localmente. Já o processamento pode ter sua carga de Podem ser adicionados novos locais de processamento sem interferir na op- eração dos outros pontos da rede. O custo para adicionar novos pontos de processamento à rede geralmente é menor que o a atualização de hardware de um computador centralizado. O impacto negativo causado por uma falha em um dos pontos de rede geralmente é menor, uma vez que o processamento é mantido pelas outras Usuários fi nais do BD podem acessar a apenas uma porção dos dados, que pode ser armazenada localmente. Já o processamento pode ter sua carga de Podem ser adicionados novoslocais de processamento sem interferir na op- eração dos outros pontos da rede. O custo para adicionar novos pontos de processamento à rede geralmente é menor que o a atualização de hardware de um computador centralizado. O impacto negativo causado por uma falha em um dos pontos de rede geralmente é menor, uma vez que o processamento é mantido pelas outras Usuários fi nais do BD podem acessar a apenas uma porção dos dados, que pode ser armazenada localmente. Já o processamento pode ter sua carga de Podem ser adicionados novos locais de processamento sem interferir na op- eração dos outros pontos da rede. O custo para adicionar novos pontos de processamento à rede geralmente é menor que o a atualização de hardware de um computador centralizado. O impacto negativo causado por uma falha em um dos pontos de rede geralmente é menor, uma vez que o processamento é mantido pelas outras estações. pode ser armazenada localmente. Já o processamento pode ter sua carga de Podem ser adicionados novos locais de processamento sem interferir na op- O custo para adicionar novos pontos de processamento à rede geralmente é menor que o a atualização de hardware de um computador centralizado. O impacto negativo causado por uma falha em um dos pontos de rede geralmente é menor, uma vez que o processamento é mantido pelas outras estações. Podem ser adicionados novos locais de processamento sem interferir na op- O custo para adicionar novos pontos de processamento à rede geralmente é menor que o a atualização de hardware de um computador centralizado. O impacto negativo causado por uma falha em um dos pontos de rede geralmente é menor, uma vez que o processamento é mantido pelas outras estações. Podem ser adicionados novos locais de processamento sem interferir na op- O custo para adicionar novos pontos de processamento à rede geralmente é menor que o a atualização de hardware de um computador centralizado. O impacto negativo causado por uma falha em um dos pontos de rede geralmente é menor, uma vez que o processamento é mantido pelas outras Podem ser adicionados novos locais de processamento sem interferir na op- O custo para adicionar novos pontos de processamento à rede geralmente é menor que o a atualização de hardware de um computador centralizado. O impacto negativo causado por uma falha em um dos pontos de rede geralmente é menor, uma vez que o processamento é mantido pelas outras O custo para adicionar novos pontos de processamento à rede geralmente é menor que o a atualização de hardware de um computador centralizado. O impacto negativo causado por uma falha em um dos pontos de rede geralmente é menor, uma vez que o processamento é mantido pelas outras O custo para adicionar novos pontos de processamento à rede geralmente é menor que o a atualização de hardware de um computador centralizado. O impacto negativo causado por uma falha em um dos pontos de rede geralmente é menor, uma vez que o processamento é mantido pelas outras O impacto negativo causado por uma falha em um dos pontos de rede geralmente é menor, uma vez que o processamento é mantido pelas outras geralmente é menor, uma vez que o processamento é mantido pelas outras geralmente é menor, uma vez que o processamento é mantido pelas outras Apesar de apresentar inúmeras vantagens quando comparado aos siste- mas de banco de dados centralizados ou cliente-servidor, os BDDs apresentam algumas desvantagens. As principais estão relacionadas à complexidade do gerenciamento e controle sobre a distribuição dos dados e à probabilidade de ocorrências relacionadas à segurança dos dados e custos de algumas confi gu- rações de infraestrutura. A seguir, vamos entender como funcionam os BBDs. ENGENHARIA DE DADOS 33 Engenharia de dados - Unidade1_Formato A5_1.indd 33 15/07/19 14:47 Funcionamento No desempenho do processamento de dados distribuído, um banco de da- dos fi ca armazenado em um único local acessível. No entanto, o processamen- to lógico desses dados é compartilhado entre dois ou mais locais que se encon- tram fi sicamente independentes, mas conectados por uma rede. Para que os dados sejam compartilhados, os BDDs se baseiam em técnicas de fragmentação, replicação e alocação de dados. EXPLICANDO Fragmentar signifi ca dividir os dados em unidades lógicas, chamadas de fragmentos, que são armazenados e processados em locais físicos dife- rentes. Replicar consiste em criar várias cópias idênticas dos dados em vários pontos de processamento na rede. Alocar é o processo de defi nir o local onde os dados serão posicionados para processamento. O primeiro passo para fragmentação é a defi nição de quais unidades ló- gicas serão criadas e distribuídas. Uma unidade lógica pode ser uma relação (tabela) completa ou apenas parte dela. Podem ser criados fragmentos com parte dos dados de uma relação. Essa técnica é chamada de fragmentação horizontal e consiste na seleção de um subconjunto das tuplas de uma rela- ção, agrupando subconjuntos de linhas com seu próprio signifi cado lógico. Quando os fragmentos são criados a partir da divisão dos atributos de uma relação, a técnica é chamada de fragmentação vertical. Já a combinação en- tre as duas técnicas de fragmentação é chamada de fragmentação mista, ou híbrida. Uma vez fragmentado, o banco de dados é, então, distribuído para processamento. O trabalho passa a ser o controle da junção dos fragmentos para que as informações não sejam perdidas. Entretanto, em alguns casos, é necessário duplicar algumas porções dos dados para processamento. Essa duplicação é chamada de replicação, que se torna necessária uma vez que melhora a disponibilidade dos dados, tornando mais ágil seu processamento. A replicação, apesar de vantajosa em alguns casos, deve ser utilizada com cuidado, uma vez que pode tornar as técnicas de controle da concorrência e de recuperação mais dispendiosas do que seriam se não houvesse replicação (ELMASRI et al., 2005). ENGENHARIA DE DADOS 34 Engenharia de dados - Unidade1_Formato A5_1.indd 34 15/07/19 14:47 Apesar dessa desvantagem, uma vez que a existência de cópias de frag- mentos é capaz de aprimorar a disponibilidade de dados e o tempo de respos- ta deles, elas tendem a contribuir com a redução de custos – principalmente aqueles relacionados ao processamento de consultas. A replicação dos dados não é obrigatória, mas, uma vez realizada, ela pode ser total ou parcial. A replicação total ocorre quando todos os fragmentos do banco de dados são replicados em vários locais. Já a parcial ocorre quando apenas alguns dos fragmentos são copiados. Geralmente, a replicação total não é viável, devido principalmente à quan- tidade de carga imposta ao sistema. Para decidir qual a melhor estratégia de replicação, devem ser considerados o tamanho de banco de dados, a frequên- cia de utilização e os custos de desempenho, carga e gerenciamento dos dados. Após replicados, os dados precisam ser alocados (posicionados) para pro- cessamento. Existem basicamente três estratégias de alocação: centralizada, particionada e replicada. Na estratégia centralizada, todo o banco de dados é armazenado em um único local físico; na particionada, o banco é dividido e armazenado em duas ou mais partes separadas; já na replicada, são armazenadas cópias de um ou mais fragmentos em vários locais. Para defi nir qual a melhor estratégia de alocação, devem ser considerados vários fatores, como: objetivo de desempenho, disponibilidade dos dados, ta- manho do banco em quantidade linhas e colunas, tipos de transações mais frequentes, dentre outros. Agora que você já conhece a estrutura de funcionamento de um BDD, vamos aprender um pouco sobre confi abilidade, efi ciência e qualidade dos dados e como essas características são importantes no contexto da engenharia de dados. Confiabilidade, eficiência e a qualidade dos dados Não basta ter dados disponíveis, estes dados têm de ser confi áveis, efi cientese de qualidade. Dados confi áveis são aqueles são aqueles que representam de forma cor- reta uma determinada realidade, ou seja, não estão errados. Para que se man- tenham neste estado, devem cumprir certas restrições. ENGENHARIA DE DADOS 35 Engenharia de dados - Unidade1_Formato A5_1.indd 35 15/07/19 14:47 Eficiência diz respeito à disponibilidade do dado e o conjunto de métodos utilizados para acessá-los. Neste contexto, iremos tratar a eficiência como si- nônimo de disponibilidade. Já a qualidade está relacionada à percepção de confiabilidade, que está re- lacionada à combinação entre disponibilidade, confidencialidade e integridade, que são características que os dados devem possuir. Disponibilidade é a capacidade que o dado tem de estar acessível e utili- zável sob demanda por alguém autorizado. Confidencialidade refere-se ao fato de que a informação não está disponível ou não será revelada a indivíduos, entidades ou processos não autorizados. Integridade é a propriedade de salva- guarda da exatidão e completeza dos dados. Para garantir essas propriedades, temos que recorrer a meca- nismos de garantia da Segurança da Informação, que é a área de conhecimento que tem por objetivo a garantia da proteção da in- formação contra vários tipos de ameaças de forma a assegurar a continuidade do negócio, minimizando danos comerciais e maximi- zando o retorno sobre investimentos e oportunidades de negócios (ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS, 2005, p. 1). Sua utilização busca, justamente, a preservação dos três atributos básicos da informação: confidencialidade, integridade e disponibilidade. A principal norma da área de segurança da informação é a ISO 27002 (AS- SOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS, 2013), que define um código de prática para controles de segurança da informação. Publicada e vigente a partir de 2013, esta norma é baseada na proposta de definição de um sistema de gestão de segurança da informação (SGSI). O SGSI é o resultado da aplicação planejada de objetivos, diretrizes, políti- cas, procedimentos, modelos e outras medidas administrativas que, de forma conjunta, definem como são reduzidos os riscos para segurança da informa- ção. Ao implantar o SGSI, a empresa passa a cumprir tudo aquilo que foi defini- do pela norma ISO 27002. Na prática, esse documento define uma Política de Segurança de Informação (PSI) e conjuntos de controles necessários para manutenção da confidencialidade, integridade e disponibilidade dos dados. Em uma visão macro, estes controles são divididos em controles gerais, de aplicativos, de banco de dados e de redes. ENGENHARIA DE DADOS 36 Engenharia de dados - Unidade1_Formato A5_1.indd 36 15/07/19 14:47 Política de Segurança da Informação “Uma Política de Segurança da Informação (PSI) é um documento cujo obje- tivo é prover uma orientação e apoio da direção para a segurança da informação de acordo com os requisitos do negócio e com as leis e regulamentações relevan- tes” (ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS, 2005, p. 8) (grifo nosso). O Quadro 1 mostra os itens que devem estar contidos em uma PSI. QUADRO 1. POLÍTICA DE SEGURANÇA DA INFORMAÇÃO PSI Defi nição do termo segurança da informação. Declaração do comprometimento da alta direção da empresa. Estrutura de objetivos de controle de segurança. Explanação das políticas, princípios, normas e requisitos de conformidade de segurança. Defi nição das responsabilidades gerais e específi cas na gestão da segu- rança. Referências a outros documentos que possam apoiar a política. Defi nição do termo segurança da informação. Declaração do comprometimento da alta direção da empresa. Defi nição do termo segurança da informação. Declaração do comprometimento da alta direção da empresa. Defi nição do termo segurança da informação. Declaração do comprometimento da alta direção da empresa. Defi nição do termo segurança da informação. Declaração do comprometimento da alta direção da empresa. Defi nição do termo segurança da informação. Declaração do comprometimento da alta direção da empresa. Explanação das políticas, princípios, normas e requisitos de conformidade Defi nição do termo segurança da informação. Declaração do comprometimento da alta direção da empresa. Estrutura de objetivos de controle de segurança. Explanação das políticas, princípios, normas e requisitos de conformidade Defi nição do termo segurança da informação. Declaração do comprometimento da alta direção da empresa. Estrutura de objetivos de controle de segurança. Explanação das políticas, princípios, normas e requisitos de conformidade Defi nição do termo segurança da informação. Declaração do comprometimento da alta direção da empresa. Estrutura de objetivos de controle de segurança. Explanação das políticas, princípios, normas e requisitos de conformidade Defi nição das responsabilidades gerais e específi cas na gestão da segu- Defi nição do termo segurança da informação. Declaração do comprometimento da alta direção da empresa. Estrutura de objetivos de controle de segurança. Explanação das políticas, princípios, normas e requisitos de conformidade Defi nição das responsabilidades gerais e específi cas na gestão da segu- Defi nição do termo segurança da informação. Declaração do comprometimento da alta direção da empresa. Estrutura de objetivos de controle de segurança. Explanação das políticas, princípios, normas e requisitos de conformidade Defi nição das responsabilidades gerais e específi cas na gestão da segu- Defi nição do termo segurança da informação. Declaração do comprometimento da alta direção da empresa. Estrutura de objetivos de controle de segurança. Explanação das políticas, princípios, normas e requisitos de conformidade Defi nição das responsabilidades gerais e específi cas na gestão da segu- Defi nição do termo segurança da informação. Declaração do comprometimento da alta direção da empresa. Estrutura de objetivos de controle de segurança. Explanação das políticas, princípios, normas e requisitos de conformidade Defi nição das responsabilidades gerais e específi cas na gestão da segu- Referências a outros documentos que possam apoiar a política. Declaração do comprometimento da alta direção da empresa. Estrutura de objetivos de controle de segurança. Explanação das políticas, princípios, normas e requisitos de conformidade de segurança. Defi nição das responsabilidades gerais e específi cas na gestão da segu- Referências a outros documentos que possam apoiar a política. Declaração do comprometimento da alta direção da empresa. Estrutura de objetivos de controle de segurança. Explanação das políticas, princípios, normas e requisitos de conformidade de segurança. Defi nição das responsabilidades gerais e específi cas na gestão da segu- Referências a outros documentos que possam apoiar a política. Declaração do comprometimento da alta direção da empresa. Estrutura de objetivos de controle de segurança. Explanação das políticas, princípios, normas e requisitos de conformidade de segurança. Defi nição das responsabilidades gerais e específi cas na gestão da segu- Referências a outros documentos que possam apoiar a política. Declaração do comprometimento da alta direção da empresa. Estrutura de objetivos de controle de segurança. Explanação das políticas, princípios, normas e requisitos de conformidade de segurança. Defi nição das responsabilidades gerais e específi cas na gestão da segu- Referências a outros documentos que possam apoiar a política. Declaração do comprometimento da alta direção da empresa. Estrutura de objetivos de controle de segurança. Explanação das políticas, princípios, normas e requisitos de conformidade Defi nição das responsabilidades gerais e específi cas na gestão da segu- rança. Referências a outros documentos que possam apoiar a política. Estrutura de objetivos de controle de segurança. Explanação das políticas, princípios, normas e requisitos
Compartilhar