• Nenhum resultado encontrado

Tecnologias para Gerenciamento de Dados na Era do Big Data

N/A
N/A
Protected

Academic year: 2021

Share "Tecnologias para Gerenciamento de Dados na Era do Big Data"

Copied!
76
0
0

Texto

(1)

Tecnologias para Gerenciamento

de Dados na Era

do Big Data

Victor Teixeira de Almeida1,2

Vitor Alcântara Batista1

1PETROBRAS

(2)

Importante

A Petrobras não é responsável por qualquer informação contida nesta apresentação. Todas as opiniões aqui emitidas

(3)

Cientista de dados (data scientist)

An individual responsible for modeling complex business problems, discovering business insights and identifying opportunities through the use of statistical,

algorithmic, mining and visualization techniques. In addition to advanced analytic skills, this individual is also proficient at integrating and preparing large, varied datasets, architecting specialized database and computing environments, and communicating results. A data scientist may or may not have specialized industry knowledge to aid in modeling business problems and with understanding and preparing data.

Soft Skills: Communication, Collaboration, Leadership, Creativity, Discipline, Passion

Fonte: Gartner, “Emerging Role of the Data Scientist and the Art of Data Science” Published: 20 March 2012 ID:G00227058

(4)

Cientista de dados (data scientist)

An individual responsible for modeling complex business problems, discovering business insights and identifying opportunities through the use of statistical,

algorithmic, mining and visualization techniques. In addition to advanced analytic skills, this individual is also proficient at integrating and preparing large, varied datasets, architecting specialized database and computing environments, and communicating results. A data scientist may or may not have specialized industry knowledge to aid in modeling business problems and with understanding and preparing data.

Soft Skills: Communication, Collaboration, Leadership, Creativity, Discipline, Passion

Fonte: Gartner, “Emerging Role of the Data Scientist and the Art of Data Science” Published: 20 March 2012 ID:G00227058

(5)

Tecnologias para Gerenciamento de Dados na Era do Big Data • Objetivo:

• Este minicurso pretende apresentar as tecnologias atuais utilizadas para gerenciamento de dados

• Ao final deste minicurso, vocês serão capazes de

entender as principais diferenças entre as tecnologias existentes e de eventualmente definir a melhor

(6)

Big Data

(7)

Tecnologias de big data

• Escalabilidade horizontal

. . .

Processamento massivamente paralelo

(8)

Tecnologias de Big Data

• O problema da contagem de triângulos • SGBD relacional

• SGBD relacional orientado a colunas • SGBD relacional em memória • SGBD MPP • Hadoop • MapReduce • Spark • Pig • SparkSQL • GraphX • Considerações finais

(9)

Tecnologias de Big Data

• O problema da contagem de triângulos

• SGBD relacional

• SGBD relacional orientado a colunas • SGBD relacional em memória • SGBD MPP • Hadoop • MapReduce • Spark • Pig • SparkSQL • GraphX • Considerações finais

(10)

Contagem de triângulos

• Importante para determinar o coeficiente de agrupamento de um vértice (indivíduo), ou te todo o grafo (twitter)

• Simples representação • Complexa execução Twitter(follower,followee) SELECT COUNT(*) FROM Twitter as R, Twitter as S, Twitter as T

WHERE R.followee = S.follower AND S.followee = T.follower AND T.followee = R.follower AND R.follower < S.follower AND S.follower < T.follower;

(11)

Tecnologias de Big Data

• O problema da contagem de triângulos

• SGBD relacional

• SGBD relacional orientado a colunas • SGBD relacional em memória • SGBD MPP • Hadoop • MapReduce • Spark • Pig • SparkSQL • GraphX • Considerações finais

(12)

SGBD Relacional

Projeção π Renomear ρ Seleção σ Agregação ϒ

SQL

Junção • Álgebra relacional • Controle de concorrência e transações (ACID)

• Linguagem de consulta padrão declarativa (SQL)

• Índices para facilitar o acesso aos dados

SELECT COUNT(*)

FROM R, S, T

WHERE R.x = S.x

AND S.y = T.y;

(13)

Otimização de consultas (e.g. junções)

Ordem R S T R S T R T S S T R Algoritmo R S

Nested loops join Sort-merge join Merge join

Hash join ...

(14)
(15)

Demonstração

(16)

Tecnologias de Big Data

• O problema da contagem de triângulos • SGBD relacional

• SGBD relacional orientado a colunas

• SGBD relacional em memória • SGBD MPP • Hadoop • MapReduce • Spark • Pig • SparkSQL • GraphX • Considerações finais

(17)

SGBD orientado a colunas

ID NOME DT_NASC TEL

1 João da Silva 5/8/1986 99872-6482 2 Manuel Carlos 3/12/1977 99512-9697 3 Júlia Almeida 12/1/1991 99787-9232 4 Maria José 1/9/1979 99588-3248 5 Alberto Jr. 23/2/1980 99784-9885 6 Ana Carolina 21/8/1999 99875-3214 1 João da Silva 5/8/1986 99872-6482 2 Manuel Carlos 3/12/1977 99512-9697 3 Júlia Almeida 12/1/1991 99787-9232 4 Maria José 1/9/1979 99588-3248 . . . 1 2 3 4 5 6 João da Silva Manuel Carlos Júlia Almeida Maria José Alberto Jr. 5/8/1986 3/12/1977 12/1/1991 1/9/1979 23/2/1980 99872-6482 99512-9697 99787-9232 99588-3248 99784-9885 99875-3214 orientado a linhas orientado a colunas OLTP OLAP

(18)

SGBD orientado a colunas

coluna fname Dicionário de fname Vetor de atributos de fname

Conversão Tabular -> Colunar

(19)

Compressão de dados

• A taxa de compressão dos dados depende da Cardinalidade/Entropia:

• Cardinalidade:

• Na representação tabular é o número de tuplas

• Na representação colunar é o número de valores distintos na coluna • Entropia:

(20)
(21)
(22)

SGBDs orientados a colunas

(23)

Tecnologias de Big Data

• O problema da contagem de triângulos • SGBD relacional

• SGBD relacional orientado a colunas

• SGBD relacional em memória • SGBD MPP • Hadoop • MapReduce • Spark • Pig • SparkSQL • GraphX • Considerações finais

(24)

SGBD em memória

pg_id página (4k, 8k, 16k) 234523 ÇLAEUIRQO8WY8098Y91 476848 Q9U8-9J DÍPOAUSEAUS´9 900321 JP98QW34U50982UR´P0 784651 QPPPPAJ809SGHA98SHG 345313 IJAF´PSDJFAPS09JP9203J 768874 JPONIDFPASD90QW8J98 105609 A98SJHAF07SHDF0A78S

Cache de disco em memória (e.g. LRU)

Log de transações Base de dados Gerenciador de páginas Gerenciador de transações Operação de E/S

(25)

SGBD em memória

Gerenciador de transações Operação de E/S 1 2 3 4 5 6 João da Silva Manuel Carlos Júlia Almeida Maria José Alberto Jr. Ana Carolina 5/8/1986 3/12/1977 12/1/1991 1/9/1979 23/2/1980 21/8/1999 99872-6482 99512-9697 99787-9232 99588-3248 99784-9885 99875-3214

(26)

Visão geral de um banco de dados em memória e

colunar

(27)
(28)

Tecnologias de Big Data

• O problema da contagem de triângulos • SGBD relacional

• SGBD relacional orientado a colunas • SGBD relacional em memória • SGBD MPP • Hadoop • MapReduce • Spark • Pig • SparkSQL • GraphX • Considerações finais

(29)

SGBD MPP

• Dados distribuídos (particionamento horizontal) • Processamento (algoritmos) paralelo de consultas • OLAP

(30)

SGBD MPP

Algoritmo

R S

Hash(x)

(31)
(32)
(33)

Demonstração

• Contando triângulos em um SGBD MPP (Myria)

(34)

Tecnologias de Big Data

• O problema da contagem de triângulos • SGBD relacional

• SGBD relacional orientado a colunas • SGBD relacional em memória • SGBD MPP • Hadoop • MapReduce • Spark • Pig • SparkSQL • GraphX • Considerações finais

(35)

Hadoop

• Software livre (Apache Software Foundation) • Sistema de arquivos distribuído (HDFS)

(36)
(37)
(38)

HDFS

• Arquivos divididos em blocos (default 64MB)

• Cada bloco é replicado em algumas poucas máquinas no cluster (default 3)

NameNode

DataNode DataNode DataNode DataNode

Replicação de dados, Balanceamento, monitoramento

DataNode escreve em disco local

Cliente HDFS

(39)

MapReduce

• Framework de processamento paralelo • Tolerância a falhas

(40)

Exemplo

(41)

Exemplo (WordCount)

dog cat dog dog fox dog

lion cat dog dog lion fox cat

(42)
(43)

Demonstração

(44)

Hive

• Desenvolvido pelo Facebook

• Mantido atualmente por Facebook, Netflix, dentre outros

• HiveQL, linguagem similar a SQL, abstraindo funções MapReduce

• Não cria um SGBD, simplesmente executa jobs MapReduce

hive> CREATE TABLE twitter(follower INT, followee INT);

hive> LOAD DATA INPATH '/input/twitter' OVERWRITE INTO TABLE twitter;

hive> SELECT COUNT(*)

(45)

Demonstração

(46)

Pig

• Desenvolvido pela Yahoo! ~2006 • Movido para o Hadoop em 2007

• Linguagem (Pig Latin) de alto nível para abstrair a linguagem Java

grunt> Twitter_1 = LOAD '/input/twitter' USING PigStorage(' ') AS (follower:int, followee:int); grunt> Twitter_2 = LOAD '/input/twitter' USING PigStorage(' ') AS (follower:int, followee:int); grunt> Twitter_SelfJoin = JOIN Twitter_1 by $1, Twitter_2 by $0;

grunt> Twitter_SelfJoin_Grp = GROUP Twitter_SelfJoin ALL;

grunt> Twitter_SelfJoin_Cnt = FOREACH Twitter_SelfJoin_Grp GENERATE COUNT(Twitter_SelfJoin); grunt> DUMP Twitter_SelfJoin_Cnt;

(47)

Demonstração

(48)

Apache Spark

• Spark: Hadoop em memória

• Ideia: alteração do mecanismo de tolerância a falhas

• não-falha: execução mais rápida (dados em memória, sem necessidade de salvar em disco cada resultado)

• falha: execução mais lenta (rollback de diversas etapas do processo, não somente uma como no Hadoop)

100x mais rápido

(49)
(50)

Apache Spark

(51)

RDD (Resilient Distributed Dataset)

• É a unidade básica de dados do Spark

• A maior parte de um programa Spark são operações sobre um RDD

• RDD

• Resilient – Se o dado for perdido, ele pode ser recuperado • Distributed – Armazenado na memória em um cluster

• Dataset – Dados iniciais podem ser lidos de uma fonte (HDFS, Amazon S3, Hbase, Cassandra) ou poder ser criados

(52)

Funcionamento do Spark

• Um RDD é distribuído entre os nós do cluster

• Por padrão o Spark particiona os dados por bloco do HDFS, para RDDs baseados em um arquivo

(53)
(54)
(55)
(56)

Exemplo – Word Count

(57)
(58)

Dstreams (Discretized Streams)

• É uma abstração para um fluxo contínuo de RDDs

• A cada intervalo de tempo t, um RDD novo é criado com os dados recebidos

(59)
(60)
(61)

Spark MLlib

(62)

Mahout

• O projeto Apache Mahout decidiu migrar seus algoritmos para o Spark

(63)

Spark SQL e DataFrame

• Cria abstrações dos RDDs num formato semelhante a um banco de dados relacional

• As tabelas podem ser tratadas como os DataFrames do pandas (Python) e do R

(64)

Demonstração

(65)

Spark GraphX

• Fornece infraestrutura para processamento distribuído de Grafos no Spark

(66)

Spark GraphX

(67)

Spark GraphX

• Atualmente apenas 3 algoritmos implementados:

• PageRank

• Contagem de Triângulos

(68)

Demonstração

• Contando Triângulos usando GraphX

• Obs: a lógica é diferente. O algoritmo implementado conta o número de triângulos que cada nó participa. A soma em redundâncias.

(69)

Apache HAWQ e Cloudera Impala

• SGBD MPP em cima de HDFS • Sem uso de MapReduce

(70)
(71)

Tecnologias de Big Data

• O problema da contagem de triângulos • SGBD relacional

• SGBD relacional orientado a colunas • SGBD relacional em memória • SGBD MPP • Hadoop • MapReduce • Spark • Pig • SparkSQL • GraphX • Considerações finais

(72)

NoSQL

(73)

Visualização

• Preparação dos dados e modelagem

• 95% do tempo

• Execução dos modelos

• 5% do tempo

• Interpretação e visualização dos resultados

(74)

Futuro

• Database as a Service

• Escalabilidade automática

(75)

As a Service

(76)

Obrigado

Contatos:

Victor Teixeira de Almeida

victor.almeida@petrobras.com.br e valmeida@ic.uff.br Vitor Alcântara Batista

Referências

Documentos relacionados

Na nossa linha de pesquisa, este processo vem sendo analisado como uma nova lógica de urbanização, no qual debruçamos-nos em estudos sobre municípios localizados em

Para isso, será investigado o mercado nacional de agências de viagens e suas diferentes tipologias, bem como os desafios e soluções vividos pelas agências e o que a

help health professionals in the orientation of patients and caregivers, as well as the family, during the coping of the difficulties that these people experience in the care of

Neste estudo em particular, foi utilizada a amostragem aleat´oria estratificada proporcional, com o objetivo de estimar a vari´avel aleat´oria quantitativa que ´e o tempo m´edio e

Ainda que cada um destes exprima aspectos específicos, não me detenho aqui nestes aspectos, antes assinalando que a utilização do termo «terceiro sector» se deve ao facto de este

São inúmeras as razões que os professores utilizam para justificar o facto de privilegiarem apenas o produto textual, destacando, essencialmente, a necessidade de cumprir

Todas as amostras apresentam valores de concentrações em Ni inferiores às estabelecidas para a qualidade da água destinada à rega e para o valor limite de emissão na descarga

Parágrafo segundo – Não ocorrendo a citada homologação por responsabilidade do SESI-SP, em até 30 (trinta) dias após o prazo máximo para o pagamento das