THE GOOD,
           THE BAD,
           THE BIG... DATA
         Processando Grandes Volumes de Dados




Rodrigo Campos
rcampos@uolinc.com
@xinu
Agenda

•Big what?
•Tecnologias
•Conclusões
IBM 350 - 1956
Discos 24”
1.200 RPM
8.800 CPS
3,75 Mb
USD 53.400 / Mb
Kingston HyperX
USB 3.0
30.000.000 CPS
1.000.000 Mb
USD 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.800.000.000 Tb

                    1,8Zb foram criados ou
                       replicados em 2011.



Fonte: IDC iView - Extracting Value from Chaos - http://bit.ly/YwR8nb
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_CallHandler
ON
vw_CallHandler.CallHandlerObjectId=vw_Subscriber.CallHand
lerObjectId
INNER JOIN vw_ContactRule
ON
vw_ContactRule.ParentObjectId=vw_CallHandler.CallHandler
ObjectId
WHERE vw_CallHandler.IsPrimary='1' AND
vw_Subscriber.SubscriberType IN ('1','3') AND
vw_ContactRule.Alias='alternate' AND
vw_ContactRule.Action='1
Message Queues
 Extensible Markup Language
                                      Text Files
                                                    Flat files


         Dados pouco uniformes
                                  Document Oriented
           Spatial Databases
  Comma Separated Values          Hierarchical Model
                                               Graph Databases
               Spreadsheets

Object-relational
                         SYSLOG          Hypermedia Databases
In-Memory Databases
                         Network Model       Relational Model
Os dados tradicionalmente
         eram gerados por
            computadores
0100100100101010010101010
0001010101100101001010111
0010110101001001001001010
1001001010011101001001001
0100100101001010100010101
0111001010010100101001111
1001010101010010010010010
Fontes de dados são
     diversificadas
O armazenamento e
processamento dos dados
    tradicionalmente era
            centralizado
0100100100101010010101010
0001010101100101001010111
0010110101001001001001010
1001001010011101001001001
0100100101001010100010101
0111001010010100101001111
1001010101010010010010010
Os volumes ultrapassam a
capacidade individual dos
         bancos de dados
Lead ION Collision - ALICE experiment at CERN
25 Petabytes por ano
LHC Computing Grid - 170 datacenters em 36 países
http://wlcg.web.cern.ch/
Precisamos de soluções e
 ferramentas novas para:
               Extração
        Armazenamento
         Processamento
           Visualização
Extração       Armazenamento



     Big Data
Visualização   Processamento
Extração




           Data Scraping
                    APIs
Data Scraping
API
Armazenamento



       Sistemas distribuídos
Sistemas distribuídos
       Desafios para o design:
                       Escala
              Gerenciamento
                  Seguranç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         1
         user1_FirstName   Rodrigo
         user1_LastName    Campos
         user1_Twitter     xinu
         user1_CatCount    2
         user1_Cat1_Name   Agatha
         user1_Cat1_Age    5
         user1_Cat2_Name   Frank
         user1_Cat2_Age    4
Grafo



  Desenhados para estruturas
      baseadas em vértices e
   arestas com propriedades
Id: 2
                                 Name: Frank
                                  Eyes: Blue

Grafo                               Age: 4                                         Id: 105
                                   Type: cat                                    Label: friends



                                                                  Id: 104
                                                               Label: friends


           Id: 100
        Label: master
                                Id: 101
                             Label: servant
                                                                                       Id: 3
                                                                                   Name: Agatha
                                                                                    Eyes: Blue
                                                 Id: 102
                                                                                      Age: 5
                                              Label: servant
                                                                                     Type: cat



                                                    Id: 103
                                                 Label: master
                Id: 1
        FirstName: Rodrigo
        LastName: Campos
            Twitter: xinu
            Type: human
Processamento
 Bancos de dados de
                          Chave-Valor         Grafo
    documentos




•Cassandra            •Cassandra        •AllegroGraph
•CouchDB              •Riak             •Neo4J
•MongoDB              •Memcached        •FlockDB
•Couchbase            •Redis            •InfiniteGraph
•Lotus Notes          •Kyoto Cabinet
MapReduce


  Um modelo de programação
           distribuída para o
   processamento de grandes
          conjuntos de dados
MapReduce

Problema:
Contar os elementos
separando pelas cores
Dados originais




MapReduce
                                             Node 1




                                             Node 2


                                  MAP
              Resultado
                               Master Node   Node 3


              x2          x4
                                REDUCE
              x3          x1                 Node 4



              x3
                                             Node 5
              x2

              x5
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            Partition
                        Tolerance
Visualização




Fonte: http://bit.ly/14BhZz8
Visualização




Fonte: http://inmaps.linkedinlabs.com
Visualização




Fonte: http://bit.ly/YoJrM2
Visualização




Fonte: http://bit.ly/UJZIeO
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
rcampos@uolinc.com
@xinu

The good, the bad and the big... data