Upload
rodrigo-campos
View
891
Download
1
Embed Size (px)
DESCRIPTION
Palestra sobre Big Data apresentada na Campus Party Brasil 2013, Parque Anhembi, São Paulo - 02/02/2013
Citation preview
THE GOOD,THE BAD,THE BIG... DATA
Processando Grandes Volumes de Dados
Rodrigo [email protected]@xinu
Agenda
•Big what?•Tecnologias•Conclusões
IBM 350 - 1956Discos 24”1.200 RPM8.800 CPS3,75 MbUSD 53.400 / Mb
Kingston HyperXUSB 3.030.000.000 CPS1.000.000 MbUSD 0,0017 / Mb
Fonte: http://www.jcmit.com/disk2012.htm
90% dos dados atualmente no mundo foram criados nos
últimos dois anos
Fonte: http://ibm.co/WDPldm
1,8Zb foram criados ou replicados em 2011.
Fonte: IDC iView - Extracting Value from Chaos - http://bit.ly/YwR8nb
1.800.000.000 Tb
Não se trata apenas da quantidade de dados
Os dados tradicionalmente eram organizados em
esquemas conhecidos, rígidos e controlados
SELECT vw_Subscriber.DisplayName, vw_CallHandler.DTMFAccessId AS Extension, vw_ContactRule.Extension AS 'Transfer String'FROM vw_Subscriber INNER JOIN vw_CallHandlerON vw_CallHandler.CallHandlerObjectId=vw_Subscriber.CallHandlerObjectIdINNER JOIN vw_ContactRuleON vw_ContactRule.ParentObjectId=vw_CallHandler.CallHandlerObjectIdWHERE vw_CallHandler.IsPrimary='1' AND vw_Subscriber.SubscriberType IN ('1','3') AND vw_ContactRule.Alias='alternate' AND vw_ContactRule.Action='1
Dados pouco uniformesExtensible Markup Language
Comma Separated Values
Spreadsheets
Text Files
SYSLOG
Document Oriented
Graph Databases
Hypermedia Databases
Spatial Databases
In-Memory Databases
Message Queues
Flat files
Hierarchical Model
Network Model Relational Model
Object-relational
Os dados tradicionalmente eram gerados por
computadores
0100100100101010010101010000101010110010100101011100101101010010010010010101001001010011101001001001010010010100101010001010101110010100101001010011111001010101010010010010010
Fontes de dados são diversificadas
O armazenamento e processamento dos dados
tradicionalmente era centralizado
0100100100101010010101010000101010110010100101011100101101010010010010010101001001010011101001001001010010010100101010001010101110010100101001010011111001010101010010010010010
Os volumes ultrapassam a capacidade individual dos
bancos de dados
Lead ION Collision - ALICE experiment at CERN25 Petabytes por anoLHC Computing Grid - 170 datacenters em 36 paíseshttp://wlcg.web.cern.ch/
Precisamos de soluções e ferramentas novas para:
ExtraçãoArmazenamentoProcessamento
Visualização
Extração Armazenamento
ProcessamentoVisualização
Big Data
Extração
Data ScrapingAPIs
Data Scraping
API
Armazenamento
Sistemas distribuídos
Sistemas distribuídos
Desafios para o design:Escala
GerenciamentoSegurança
Tolerância a falhas
Processamento
A panacéia NoSQL
Processamento
Não existe bala de prata...
Processamento
Não existe bala de prata...
Processamento
Nunca existiu bala de prata...Existem soluções mais
apropriadas para determinados problemas
Processamento
O modelo relacional dominou os últimos 30 anos
Processamento
Agora procuramos usar a solução mais adequada para
o problema encontrado
Bancos de dados de documentos
Desenhados para o gerenciamento de informação
semi-estruturada
Bancos de dados de documentos{ "Cats": [ { "Age": 5, "EyeColor": "Blue", "Name": "Agatha" }, { "Age": 4, "EyeColor": "Blue", "Name": "Frank" } ], "FirstName": "Rodrigo", "LastName": "Campos", "TwitterScreenName": "xinu"}
Chave-valor
Desenhados para armazenamento arbitrário de
informações em pares
Chave-valor
userCount 1user1_FirstName Rodrigouser1_LastName Camposuser1_Twitter xinuuser1_CatCount 2user1_Cat1_Name Agathauser1_Cat1_Age 5user1_Cat2_Name Frankuser1_Cat2_Age 4
Grafo
Desenhados para estruturas baseadas em vértices e
arestas com propriedades
Grafo
Id: 1FirstName: RodrigoLastName: Campos
Twitter: xinuType: human
Id: 2Name: FrankEyes: Blue
Age: 4Type: cat
Id: 3Name: Agatha
Eyes: BlueAge: 5
Type: cat
Id: 100Label: master
Id: 101Label: servant
Id: 102Label: servant
Id: 103Label: master
Id: 105Label: friends
Id: 104Label: friends
ProcessamentoBancos de dados de
documentos Chave-Valor Grafo
•Cassandra•CouchDB•MongoDB•Couchbase•Lotus Notes
•Cassandra•Riak•Memcached•Redis•Kyoto Cabinet
•AllegroGraph•Neo4J•FlockDB•InfiniteGraph
MapReduce
Um modelo de programação distribuída para o
processamento de grandes conjuntos de dados
MapReduce
Problema:Contar os elementos separando pelas cores
MapReduce
Dados originais
Master Node
MAP
Node 1
Node 2
Node 3
Node 4
Node 5
REDUCEx2 x4
x1x3
x3
x2
x5
Resultado
Processamento
Atomic: toda a transação deve ser bem sucedida
Consistent: o banco de dados deve permanecer consistente
Isolated: uma transação não deve interferir nas demais
Durable: transações completadas devem persistir
Processamento
Basic Availability: a camada de dados permanece (parcialmente) disponível mesmo que inconsistente
Soft-state: os dados retornados para determinada transação podem ser aproximados ou estimados
Eventual consistency: eventualmente os dados estarão homogêneos em todo o sistema
Mais informações em http://bit.ly/14Bg7GD
Teorema CAP - Escolha duas...
Consistency
Availability PartitionTolerance
Visualização
Fonte: http://inmaps.linkedinlabs.com
Conclusões
O volume e diversidade dos dados exigem novas
abordagens tecnológicas
Conclusões
Novas ferramentas vem complementar soluções
estabelecidas no mercado
Conclusões
As ferramentas ainda estão evoluindo para atender essa
nova realide