Your SlideShare is downloading. ×
Arquitectura de bases de datos Jose Cuartas.
Terminologia de bases de datos
Datos Estructurados, SEMI-Estructurados, y no estructurados <ul><li>Estructurado es lo que se almacena en un motor RDBMS <...
Orientadas a documentos <ul><li>Documentos Semi-estructurados </li></ul><ul><li>Acepta documentos en un formato como  </li...
Bases datos de grafos <ul><li>Bases de datos diseñadas para representar grafos </li></ul><ul><ul><li>http://es.wikipedia.o...
Orientadas a columnas <ul><li>Los datos fisicamente se almacenan en columnas </li></ul><ul><li>RDBMS tipicamente orientado...
En-Memoria <ul><li>Conjunto de datos almacenados en laRAM </li></ul><ul><li>Acceso extremadamente rapido </li></ul><ul><li...
Escalabilidad horizontal <ul><li>Escala verticalmente </li></ul><ul><li>Incrementa la capacidad de adicionar maquinas </li...
Distributed Hash Table (DHT) <ul><li>Escabilidad horizontal </li></ul><ul><li>Decentralizado </li></ul><ul><li>Rapido acce...
Arquitectura de datos escalable
Auto-Sharding <ul><li>Divide datos de la tabla en fragmentos( Shards)  horizontales </li></ul><ul><li>Fragmentos gestionad...
MongoDB
Dynamo <ul><li>Desarrollado por Amazon.com para el carro de compras </li></ul><ul><li>Diseñado para alta disponibilidad de...
Consistencia eventual <ul><li>Actualizacion semantica de Base de datos en un sistema distribuido con replicación de datos....
Consistencia eventual
Consistencia Hashing <ul><li>mecanismo para repartir de forma dinámica los datos sobre el conjunto de nodos (es decir, los...
Consistencia Hashing
Bigtable: La infraestructura que google esta construyendo <ul><li>Bigtable servicios de google, se incluyen: YouTube, Blog...
Infraestructura Google <ul><li>GFS  – replicas de datos  entre las maquinas </li></ul><ul><li>MapReduce  – Eficiente proce...
Sistema de archivos Google (GFS)
Google File System
Tabla: representación visual
Table: Actual Representation www.hypertable.org
Escalando(part I) www.hypertable.org
escalando(parte II)
Escalando (parte III)
Requerimeintos de ruteo
Hypertable
Resumen de Hypertable <ul><li>Masiva base de datos escalable </li></ul><ul><li>Modelada despues Google Bigtable </li></ul>...
Hypertable en uso hoy en dia
Hypertable vs. HBase
Hypertable vs. HBase Test Hypertable Advantage Relative to HBase (%) Random Read Zipfian 80 GB 925 Random Read Zipfian 20 ...
recursos Project Site www.hypertable.org Twitter hypertable Commercial Support www.hypertable.com Performance Evaluation W...
Upcoming SlideShare
Loading in...5
×

Bases de datos avanzado NOSQL

3,417

Published on

Primer informe de bases de datos distribuidas, nosql

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,417
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
1
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide
  • Describe the 360 degree panoramic view feature of Google Maps
  • Spend some time.
  • Transcript of "Bases de datos avanzado NOSQL"

    1. 1. Arquitectura de bases de datos Jose Cuartas.
    2. 2. Terminologia de bases de datos
    3. 3. Datos Estructurados, SEMI-Estructurados, y no estructurados <ul><li>Estructurado es lo que se almacena en un motor RDBMS </li></ul><ul><ul><li>Los datos son dominios de datos discretos </li></ul></ul><ul><ul><li>Cada dato tiene asociado un tipo de dato (dominio): integer, floating point, date, varchar </li></ul></ul><ul><li>No estructurado es un formato de texto libre </li></ul><ul><li>Semi-structurado es la combinacion de ambos </li></ul>
    4. 4. Orientadas a documentos <ul><li>Documentos Semi-estructurados </li></ul><ul><li>Acepta documentos en un formato como </li></ul><ul><ul><li>JSON: http://es.wikipedia.org/wiki/JSON </li></ul></ul><ul><ul><li>XML: http://es.wikipedia.org/wiki/Extensible_Markup_Language </li></ul></ul><ul><ul><li>YAML: http://es.wikipedia.org/wiki/YAML </li></ul></ul><ul><li>Menos esquemas </li></ul><ul><li>Campos Auto-index: recoge los datos y los añade autónomamente al motor como términos de índice. La entrada manual deja de ser necesaria. El almacenamiento se ejecuta de forma automática. </li></ul><ul><li>ejemplos: CouchDB, MongoDB </li></ul><ul><li>Ajuste perfecto: XML o documentos Web </li></ul>
    5. 5. Bases datos de grafos <ul><li>Bases de datos diseñadas para representar grafos </li></ul><ul><ul><li>http://es.wikipedia.org/wiki/Base_de_datos_orientada_a_grafos </li></ul></ul><ul><li>APIs para realizar operaciones de grafos </li></ul><ul><ul><li>Traversal (depth-first, breadth-first) </li></ul></ul><ul><ul><li>Shortest/Cheapest path </li></ul></ul><ul><ul><li>Particionamiento(Partitioning) </li></ul></ul><ul><li>Algunas permiten Hypergraphs </li></ul><ul><li>Ejemplos: Neo4j, HyperGraphDB, InfoGrid, AllegroGraph, Sones, DEX, FlockDB, OrientDB, VertexDB, InfiniteGraph, Filament </li></ul><ul><li>Mas información: Teoria de grafos. H ay ocasiones en que se requiere almacenar no solamente datos &quot;sueltos&quot; sino que una parte importante de dichos datos son las relaciones entre ellos. </li></ul>
    6. 6. Orientadas a columnas <ul><li>Los datos fisicamente se almacenan en columnas </li></ul><ul><li>RDBMS tipicamente orientados a filas </li></ul><ul><li>Mejora el rendimiento en las operaciones </li></ul><ul><li>Mejor compresion de datos </li></ul><ul><li>Ejemplos: Hypertable, Hbase(Hadoop), Cassandra, Vertica </li></ul>
    7. 7. En-Memoria <ul><li>Conjunto de datos almacenados en laRAM </li></ul><ul><li>Acceso extremadamente rapido </li></ul><ul><li>Capacidad limitada </li></ul><ul><li>Ejemplos: Memcached, Redis, MonetDB, VoltDB </li></ul>
    8. 8. Escalabilidad horizontal <ul><li>Escala verticalmente </li></ul><ul><li>Incrementa la capacidad de adicionar maquinas </li></ul><ul><li>Opuesto a la escalabilidad horizonat(scale up) </li></ul><ul><li>Comodo Hardware </li></ul>
    9. 9. Distributed Hash Table (DHT) <ul><li>Escabilidad horizontal </li></ul><ul><li>Decentralizado </li></ul><ul><li>Rapido acceso </li></ul><ul><li>Restringido API: GET,SET,DELETE </li></ul><ul><li>Sistemas de intercambio de archivos Peer-to-peer(P2P) : BitTorrent, Napster, Gnutella, Freenet </li></ul><ul><li>Ejemplos: Dynamo, Cassandra, Riak, Project Voldemort, SimpleDB, S3, Redis, Scalaris, Membase </li></ul>
    10. 10. Arquitectura de datos escalable
    11. 11. Auto-Sharding <ul><li>Divide datos de la tabla en fragmentos( Shards) horizontales </li></ul><ul><li>Fragmentos gestionado por RDBMS tradicionales (por ejemplo, MySQL, PostgreSQL) </li></ul><ul><li>Código automatizado para manejar sharding y solicitud de enrutamiento </li></ul><ul><li>ejemplos: MongoDB, AsterData, Greenplum </li></ul>
    12. 12. MongoDB
    13. 13. Dynamo <ul><li>Desarrollado por Amazon.com para el carro de compras </li></ul><ul><li>Diseñado para alta disponibilidad de escritura </li></ul><ul><li>Eventualmente consistente DHT </li></ul><ul><li>Implementaciones: </li></ul><ul><ul><li>Cassandra </li></ul></ul><ul><ul><li>Project Voldemort </li></ul></ul><ul><ul><li>Riak </li></ul></ul><ul><ul><li>Dynomite </li></ul></ul>
    14. 14. Consistencia eventual <ul><li>Actualizacion semantica de Base de datos en un sistema distribuido con replicación de datos. </li></ul><ul><li>Consistencia Fuerte - después de una actualización completa todos los procesos reflejan el valor actualizado </li></ul><ul><li>Consistencia eventual- gradualmente todo los procesos ven el valor actualizado </li></ul><ul><li>El sistema más conocido de consistencia eventual es el DNS </li></ul>
    15. 15. Consistencia eventual
    16. 16. Consistencia Hashing <ul><li>mecanismo para repartir de forma dinámica los datos sobre el conjunto de nodos (es decir, los host de almacenamiento) en el sistema. </li></ul><ul><li>La principal ventaja de hashing es que la salida o llegada de un nodo sólo afecta a sus vecinos inmediatos. </li></ul>
    17. 17. Consistencia Hashing
    18. 18. Bigtable: La infraestructura que google esta construyendo <ul><li>Bigtable servicios de google, se incluyen: YouTube, Blogger, Google Earth, Google Maps, Orkut, Gmail, Google Analytics, Google Book Search, Google Code, Crawl Database… </li></ul><ul><li>Implementaciones </li></ul><ul><ul><li>Hypertable </li></ul></ul><ul><ul><li>HBase </li></ul></ul>
    19. 19. Infraestructura Google <ul><li>GFS – replicas de datos entre las maquinas </li></ul><ul><li>MapReduce – Eficiente procesamineto de datos en GFS </li></ul><ul><li>Bigtable – estructuras de tablas indexzadas </li></ul>
    20. 20. Sistema de archivos Google (GFS)
    21. 21. Google File System
    22. 22. Tabla: representación visual
    23. 23. Table: Actual Representation www.hypertable.org
    24. 24. Escalando(part I) www.hypertable.org
    25. 25. escalando(parte II)
    26. 26. Escalando (parte III)
    27. 27. Requerimeintos de ruteo
    28. 28. Hypertable
    29. 29. Resumen de Hypertable <ul><li>Masiva base de datos escalable </li></ul><ul><li>Modelada despues Google Bigtable </li></ul><ul><li>Implementacion alto desempeño (C++) </li></ul><ul><li>interfaz para lenguajes de alto nivel: Java, Ruby, Python, PHP, etc </li></ul><ul><li>Open Source (GPL licencia) </li></ul>
    30. 30. Hypertable en uso hoy en dia
    31. 31. Hypertable vs. HBase
    32. 32. Hypertable vs. HBase Test Hypertable Advantage Relative to HBase (%) Random Read Zipfian 80 GB 925 Random Read Zipfian 20 GB 777 Random Read Zipfian 2.5 GB 100 Random Write 10KB values 51 Random Write 1KB values 102 Random Write 100 byte values 427 Random Write 10 byte values 931 Sequential Read 10KB values 1060 Sequential Read 1KB values 68 Sequential Read 100 byte values 129 Scan 10KB values 2 Scan 1KB values 58 Scan 100 byte values 75 Scan 10 byte values 220
    33. 33. recursos Project Site www.hypertable.org Twitter hypertable Commercial Support www.hypertable.com Performance Evaluation Write-up blog.hypertable.com/?p=14

    ×