Please enable JavaScript.
Coggle requires JavaScript to display documents.
16 - Big Data - Soluções para Big Data - Coggle Diagram
16 - Big Data - Soluções para Big Data
Tipos de análise com Big Data
Análise preditiva, análise prescritiva, análise descritiva e análise
diagnóstica
Análise preditiva
Análise de possibilidades futuras. A partir da
identificação de padrões passados
Responde
à pergunta “O que vai acontecer?”.
Exemplo: há uma probabilidade de 80% de que percamos X clientes no
próximo mês
Análise prescritiva
Traça as possíveis consequências de cada ação. É uma
forma de definir qual escolha será mais efetiva em determinada situação
O valor dessa análise se dá pela capacidade de numerar determinados padrões e filtrá-los por especificidades, obtendo um cenário bastante fiel da situação e como cada intervenção responderá. Responde à pergunta
se dermos 3% de desconto aos clientes X no próximo mês, a chance de os perdermos cai para 30%.
Análise descritiva
Compreensão em tempo real dos acontecimentos
Responde à pergunta “O que está acontecendo?”
Análise diagnóstica
Como uma espécie de relatório expandido, quando feita em uma base de dados volumosa, esse tipo de análise permite ainda entender a razão de cada um dos desdobramentos das ações adotadas e, a partir disso, mudar estratégias ineficazes ou reforçar as funcionais. Responde à pergunta “Por que aconteceu?”
Padrões utilizados em soluções de Big Data
Os
padrões atômicos
ajudam a identificar a maneira em que os dados são consumidos, processados, armazenados e acessados por problemas recorrentes em um contexto de big data
Os padrões atômicos são os que fornecem as bases para a solução de big data, por isso, os
discutiremos em maiores detalhes.
Padrões de consumo
Vamos abordar inicialmente os padrões de consumo que lidam com as várias formas em
que o resultado da análise de dados é consumido
Padrão de visualização: a forma tradicional de visualizar dados se baseia em
gráficos, painéis e relatórios de resumo
Os requisitos típicos para visualização de big data, incluindo os requisitos emergentes, são listados abaixo: o Realizar análise em tempo real e exibição de dados de fluxo o Extrair dados de forma interativa, com base no contexto o Executar procuras avançadas e obter recomendações o Visualizar informações paralelamente o Ter acesso a hardware avançado para necessidades futuristas.
Os usuários podem precisar da capacidade de enviar consultas ad hoc (feitas sob demanda) ao procurar por informações especificas, dependendo do contexto do problema.
A análise ad hoc pode ajudar os cientistas de dados e os principais usuários corporativos a entender o comportamento dos dados de negócios
Padrão de notificação: os insights de big data permitem que as pessoas, negócios e máquinas ajam instantaneamente usando notificações para indicar eventos
Padrões de processamento
Esse padrão lida com como o big data
é processado em tempo real, quase em tempo
real ou em lote.
Padrão de análise de dados históricos
: análise de dados históricos tradicional é
limitada a um período predefinido de dados
Padrão para pré-processar dados bruto
s- Para executar a análise em quaisquer dados, eles devem estar em algum tipo de formato estruturado. Os dados não estruturados acessados de várias fontes podem ser armazenados como estão e, em seguida, transformados em dados estruturados (por exemplo, JSON) e novamente armazenados nos sistemas de armazenamento de big data. O texto não estruturado pode ser convertido em dados estruturados ou semiestruturados.
Padrão de análise ad hoc:
o processamento de consultas ad hoc no big data traz desafios diferentes daqueles incorridos ao realizar consultas ad hoc em dados estruturados pelo fato de as fontes e formatos dos dados não serem fixos e exigirem mecanismos diferentes para recuperá-los e processá-los
Padrões de acesso
Padrão de acesso
à web e mídia social: a Internet é a fonte de dados que fornece muitos dos insights produzidos atualmente. A web e a mídia social são úteis em praticamente todas as análises, mas são necessários mecanismos de acesso diferentes para obter esses dados. A web e a mídia social são a fonte de dados mais complexa de todas em virtude de sua enorme variedade, velocidade e volume
Padrão de dados gerados por dispositivos: o conteúdo gerado por dispositivos inclui dados de sensores. Os dados são detectados a partir das origens de dados
Padrão de dados de warehouse, operacionais e transacionais: É possível armazenar os dados de warehouse, operacionais e transacionais existentes para evitar a limpeza ou o arquivamento deles
Padrões de armazenamento
Os padrões de armazenamento ajudam a determinar o armazenamento adequado para
diversos formatos e tipos de dados.
Padrão de armazenamento para armazenamentos de dados tradicionais: o armazenamento de dados tradicional não é a melhor opção para armazenar big data, mas nos casos em que as empresas estão realizando a exploração de dados inicial, elas podem optar por usar o data warehouse, o sistema relacional e outros armazenamentos de conteúdo existentes
As empresas explorando as tecnologias de big data podem usar soluções de nuvem que fornecem o gerenciamento de sistemas, manutenção e armazenamento de big data. A grande vantagem de associar big data à cloud computing é reduzir os custos de uma infraestrutura de TI para armazenar e processar os dados.
Os
padrões compostos
são classificados com base na solução de ponta a ponta. Os padrões compostos são mapeados para um ou mais padrões atômicos para resolver um determinado problema de negócios.
Os
padrões de solução
também ajudam a definir o melhor conjunto de componentes com base em se o problema de negócios precisa da descoberta e exploração de dados, de análise previsível e propositada ou de análise acionável.
Hadoop
O
Hadoop
é um framework de código aberto, implementado em Java e utilizado para o processamento e armazenamento em larga escala, para alta demanda de dados, utilizando máquinas comuns
Os serviços do Hadoop fornecem armazenamento,
processamento, acesso, governança, segurança e operações de dados
É possível realizar o processamento da sua massa de dados
utilizando máquinas e rede convencionais
Como ele foi projetado para ser executado em hardware comum, ele já considera a possibilidade de falhas frequentes nesses equipamentos e oferece estratégias de recuperação automática para essas situações
Simplicidade
: Hadoop retira do desenvolvedor a responsabilidade de gerenciar questões relativas à computação paralela, tais como tolerância a falhas, escalonamento e balanceamento de carga, ficando estas a cargo do próprio arcabouço. O Hadoop descreve suas operações apenas por meio das funções de mapeamento (Map) e de junção (Reduce).
Os elementos chave do Hadoop são o modelo de programação MapReduce e o sistema
de arquivos distribuído HDFS
.
Entretanto, em meio a sua evolução, novos subprojetos, cada um para uma proposta específica da aplicação, foram incorporados ao seu ecossistema, tornando a infraestrutura do arcabouço cada vez mais completa
Subprojetos do Hadoop
Acesso aos dados
Hive
Sua principal funcionalidade é fornecer uma infraestrutura que permita utilizar Hive QL
, uma linguagem de consulta similar a SQL bem como demais conceitos de dados relacionais tais como tabelas, colunas e linhas, para facilitar as análises complexas feitas nos dados não relacionais de uma aplicação Hadoop.
Existe também uma definição que trata o Hive como um datawarehouse distribuído que facilita o uso de grandes conjuntos de dados. Nesse caso, ele seria enquadrado como um subprojeto para armazenamento dos dados
Pig
O Pig é uma linguagem de alto nível orientada a fluxo de dados e um arcabouço de
execução para computação paralela.
Avro
O Avro é o sistema de seriação de dados baseado em schemas. Sua composição é dada por um repositório de dados persistentes, um formato compacto de dados binários e suporte a chamadas remotas de procedimentos (RPC)
Processamento de dados
MapReduce
O Hadoop MapReduce é um modelo de programação e um arcabouço especializado no processamento de conjuntos de dados distribuídos em um aglomerado computacional (cluster)
O programador não precisa realizar nenhum tipo de programação extra para garantir que os processos serão processados paralelamente
O MapReduce possui duas fases de processamento: o Map e o Reduce
A primeira fase, a fase de mapeamento, é responsável pelo processamento primário dos dados de entrada. Então,
os resultados dessa fase são enviados para a função de redução como entradas
Então, o resultado final é realizado pela fase de redução e enviado para arquivos que
conterão esses resultados
Normalmente, os programas MapReduce leem dados de arquivos em formato .csv
É possível ler dados de arquivos de texto ou qualquer outro tipo, desde que haja uma lista de dados de entrada que possa ser transformada em pares chave/valor, que é o que a aplicação irá entender posteriormente
Modelo de programação e um arcabouço especializado no processamento de conjuntos de dados distribuídos em um aglomerado computacional (cluster).
Gerenciamento
ZooKeeper
O ZooKeeper é o arcabouço criado pelo Yahoo! em 2007 com o objetivo de fornecer um
serviço de coordenação para aplicações distribuídas de alto desempenho
Chukwa
O Chukwa é o sistema especialista em coleta e análise de logs em sistemas de larga escala. Utiliza HDFS para armazenar os arquivos e o MapReduce para geração de relatórios
Armazenamento de dados
HDFS
O Hadoop Distributed File System (HDFS) é um sistema de arquivos distribuído 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
.
O Hadoop é ideal para armazenar grandes quantidades de dados, do porte de terabytes e pentabytes, e usa o HDFS como sistema de armazenamento. O HDFS permite a conexão de nós (computadores pessoais padrão) contidos nos clusters por meio dos quais os arquivos de dados são distribuídos
O HDFS tem muitas similaridades com outros sistemas de arquivos distribuídos, mas é diferente em vários aspectos. Uma diferença notável é o modelo WORM (write-onceread-many) do HDFS que afrouxa as exigências do controle de simultaneidade, simplifica a persistência de dados e habilita acesso de alto rendimento
O HDFS restringe a gravação dos dados rigorosamente a um gravador por vez.
O HDFS fornece interfaces para os aplicativos a fim de movê-los para perto de onde se localizam os dados. O HDFS disponibiliza uma interface de programação de aplicativos (API) Java™ e um wrapper nativo em linguagem C para a API Java
HBase
É um banco de dados distribuído e escalável que dá suporte ao armazenamento estruturado e otimizado para grandes tabelas.
O HBase é um banco de dados distribuído otimizado para o desempenho de leitura. O desempenho ótimo de leitura vem da existência de um arquivo por família de coluna.
HBase é um banco de dados NoSQL com modelo estrutural orientado a família de colunas (ou colunar).
O Sqoop (SQL to Hadoop) é um aplicativo de interface de linha de comando para transferência de dados entre bancos de dados relacionais e Hadoop. Ele pode ser usado tanto para importação de dados para o Hadoop quanto para a exportação de dados para o banco relacional
Um outro projeto de alto nível do Apache é o Flume. O Flume é um software distribuído, confiável e disponível para coletar, agregar e mover com eficiência grandes quantidades de dados de log.
Componentes do Hadoop
Uma execução típica de uma aplicação Hadoop em um aglomerado utiliza cinco processos diferentes: NameNode, DataNode, SecondaryNameNode, JobTracker e TaskTracker.
NameNode
: tem como responsabilidade gerenciar os arquivos armazenados no
HDFS
SecondaryNameNod
e: utilizado para auxiliar o NameNode a manter seu serviço, e
ser uma alternativa de recuperação no caso de uma falha do NameNode
DataNode
: enquanto o NameNode gerencia os blocos de arquivos, são os DataNodes que efetivamente realizam o armazenamento dos dados
JobTracke
r: assim como o NameNode, o JobTracker também possui uma função de gerenciamento, porém, nesse caso, o controle é realizado sobre o plano de execução das tarefas a serem processadas pelo MapReduce. Sua função então é designar diferentes nós para processar as tarefas de uma aplicação e monitorá-las enquanto estiverem em execução.
TaskTracker
: processo responsável pela execução de tarefas MapReduce
Spark
O Spark é um framework para processamento de Big Data construído com foco em
velocidade, facilidade de uso e análises sofisticadas.
Spark oferece um framework unificado e de fácil compreensão para gerenciar e processar Big Data com uma variedade de conjuntos de dados de diversas naturezas (por exemplo: texto, grafos, etc), bem como de diferentes origens (batch ou streaming de dados em tempo real)
Além das operações de Map/Reduce, suporta consultas SQL, streaming de dados,
aprendizado de máquina e processamento de grafos.
Transformação de Dados