estado del arte de las tecnologías nosql_sergio rodríguez
DESCRIPTION
En poco tiempo NoSQL se ha convertido en uno de los tópicos de moda para el tratamiento de la inofrmación en entornos Web, móviles y de la Internet de las cosas lo que ha ocasionado la creación de un nuevo segmento de software, las bases de datos NoSQL, con muchos fabricantes, arquitecturas y funcionalidades muy diversas.TRANSCRIPT
![Page 1: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/1.jpg)
NoSQL
[ {‘nombre’: ‘Sergio Rodríguez de Guzmán’,‘email’: ‘[email protected]’,‘departamento’: ‘formación’
} ]
![Page 2: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/2.jpg)
LÍNEAS DE NEGOCIOLÍNEAS DE NEGOCIO
FORMACIÓN IT DESARROLLO PRODUCTOCONSULTORÍA GESTIÓN DE IDENTIDAD Y ACCESOS
BIG DATA
Centro de Formación oficial de IT.
Acuerdos con Cloudera, Oracle, MongoDB, Apple, IBM, Vmware, Microsoft, Red Hat, Cisco…
Presencial, Virtual, Online
Personalización por proyecto
Consultoría, Integración y Soporte.
Tecnologías Oracle, Microsoft, Red Hat, ForgeRock, OWS2, Opensource…
Soporte 24x7, Proyectos Llave en mano
Expertos Big Data desde 2011
Acuerdos con Cloudera, Oracle, MongoDB,
Paquetes de servicios predefinidos en ETL, Arquitectura, Seguridad, Analíticas Descriptivas y Certificación de Producción
Soluciones de Gestión de Identidad y Accesos.
Tecnologías Oracle, Microsoft, Red Hat, ForgeRock, OWS2, Opensource…
Soporte 24x7, Proyectos Llave en mano
Proyectos en MDM
Soluciones de Seguridad y Auditoría del CPD
Gestión y Actualización de parches Multivendor para el CPD
Desarrollo de Aplicaciones Móviles
![Page 3: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/3.jpg)
1980
1990
2000
2010
Rise of Relational
![Page 4: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/4.jpg)
PersistenceIntegration
SQLTransactions
Reporting
![Page 5: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/5.jpg)
IMPEDANCEMISMATCH
![Page 6: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/6.jpg)
1980
1990
2000
2010
Rise of objectDatabases
![Page 7: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/7.jpg)
Billing
Inventory
Integration Database
![Page 8: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/8.jpg)
1980
1990
2000
2010
RelationalDominance
![Page 9: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/9.jpg)
Lots of Traffic
![Page 10: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/10.jpg)
SQL SQL
![Page 11: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/11.jpg)
BigTable
Dynamo
![Page 12: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/12.jpg)
“NoSQL”
![Page 13: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/13.jpg)
Johan Oskarsson
London
San Francisco
#nosql
![Page 14: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/14.jpg)
Dynomite
![Page 15: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/15.jpg)
Characteristics of NoSQL
Non-relationalOpen Source
Schema-less Cluster-friendly
21st Century Web
![Page 16: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/16.jpg)
DATA MODEL
![Page 17: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/17.jpg)
DOCUMENT
GRAPH
COLUMN
KEY-VALUENoSQL
![Page 18: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/18.jpg)
KEY-VALUE
10025
10026
10043
10048
![Page 19: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/19.jpg)
DOCUMENT{ "id": 1, "name": "A green door", "price": 12.50, "tags": ["home", "green"] }
{ "id": 1, "name": "A blue door", "price": 14.50, "tags": ["home", “blue"], “discount": true}
Noschema
![Page 20: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/20.jpg)
anOrder[“price”] * anOrder[“quantity”]
Implicitschema
![Page 21: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/21.jpg)
KEY-VALUE10025
10026
10043
DOCUMENT
{ "id": 1, "name": "A green door", "price": 12.50, "tags": ["home", "green"] }
{ "id": 1, "name": "A blue door", "price": 14.50, "tags": ["home", “blue"], “discount": true}
customer_id: 7231
metadatakey
![Page 22: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/22.jpg)
Key-Value Document
Aggregate-Oriented
![Page 23: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/23.jpg)
Aggregate
![Page 24: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/24.jpg)
Order
Line Item
![Page 25: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/25.jpg)
KEY-VALUE10025
10026
10043
DOCUMENT
{ "id": 1, "name": "A green door", "price": 12.50, "tags": ["home", "green"] }
{ "id": 1, "name": "A blue door", "price": 14.50, "tags": ["home", “blue"], “discount": true}
Value == Aggregate Document == Aggregate
![Page 26: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/26.jpg)
COLUMN-FAMILY
1234
name “sergio”
billingAddress data…
payment data…
OR1001 data…
OR1002 data…
OR1003 data…
OR1004 data…row key
column family
column key column value
profile
orders
![Page 27: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/27.jpg)
![Page 28: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/28.jpg)
Order1001
aggregate
![Page 29: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/29.jpg)
![Page 30: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/30.jpg)
Product Revenue Prior revenue
321291233 3083 7043
343412758 5032 4782
131494408 2198 3187
… … …
… … …
… … …
… … …
![Page 31: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/31.jpg)
Order
Line Item Product1
![Page 32: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/32.jpg)
DOCUMENT
GRAPH
COLUMN
KEY-VALUENoSQL
![Page 33: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/33.jpg)
Aggregate-Oriented
DocumentColumn-Family
Key-valueGraph
![Page 34: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/34.jpg)
Graph
![Page 35: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/35.jpg)
GraphBigCo
Sergio Lucia
Rocio Rosana
employee_of employee_of
friend
friend
START rocio = node:nodeIndex(name = “Rocio”) MATCH (rocio)-[:FRIEND]->(friend_node)RETURN friend_node.name,friend_node.location
friend
![Page 36: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/36.jpg)
Aggregate-Oriented
DocumentColumn-Family
Key-valueGraph
Schemaless
![Page 37: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/37.jpg)
NOSQL AND CONSISTENCY
![Page 38: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/38.jpg)
RDBMS == ACID
NoSQL == BASE
![Page 39: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/39.jpg)
![Page 40: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/40.jpg)
Aggregate-Oriented
DocumentColumn-Family
Key-valueGraph
ACID
![Page 41: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/41.jpg)
Browser Server Database
![Page 42: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/42.jpg)
Get Get
Post
Post
Offline Lock
v101
v101 v101VersionStamp
v102
v101
![Page 43: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/43.jpg)
Consistency
Logical
Replication
![Page 44: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/44.jpg)
Lucia Sergio
![Page 45: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/45.jpg)
Lucia Sergio
![Page 46: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/46.jpg)
Lucia Sergio
Lucia Sergio
Consistency
Availability
![Page 47: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/47.jpg)
CAP Theorem
Consistency
AvailabilityPartitionTolerance
Pick any 2
![Page 48: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/48.jpg)
Partition
Consistency
Availability
OR
![Page 49: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/49.jpg)
Partition
Consistency
Availability
![Page 50: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/50.jpg)
Consistency
Response Time
![Page 51: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/51.jpg)
Safety
Liveness
![Page 52: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/52.jpg)
RelaxingDurabilityEventual
ConsistencyQuorums
Read-Your-WritesConsistency
![Page 53: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/53.jpg)
![Page 54: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/54.jpg)
WHEN AND WHY TO USE NOSQL?
![Page 55: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/55.jpg)
easierdevelopment
large scale data
NoSQL
![Page 56: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/56.jpg)
Billing
Inventory
IntegrationDatabase
Billing
Inventory
ApplicationDatabaseWebservice
API
![Page 57: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/57.jpg)
1980
1990
2000
2010
NoSQL?
![Page 58: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/58.jpg)
1980
1990
2000
2010
PolyglotPersistence
![Page 59: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/59.jpg)
User sessionsRedis
Financial DataRDBMS
Shopping CartRiak
RecommendationNeo4J
Product CatalogMongoDB
ReportingRDBMS
AnalyticsCassandra
User activity logsCassandra
Speculative Retailers Web Application
![Page 60: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/60.jpg)
Problems
Decisions
Organizational Change
ImmaturityEventual Consistency
![Page 61: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/61.jpg)
Strategic
Rapid time tomarket
Dataintensive
andand/or
![Page 62: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/62.jpg)
Possible Use Cases• Use A NoSQL Database For A Particular Application
Feature• Use A NoSQL Database For Speedy Batch
Processing• Use A NoSQL Database For Distributed Logging• Use A NoSQL Database For Large Tables• Use A RDBMS For Reporting
![Page 63: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/63.jpg)
What's The Catch?• Difficult For Data In Different Databases To Interact• You Now Have To Decide Where To Store Data• Increased Application And Deployment Complexity• Additional Administrative Responsibilities• Training
![Page 64: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/64.jpg)
APIS
![Page 65: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/65.jpg)
Java
NoSQL
Python
Javascript EktorpJrelaxCouchDB4J
![Page 66: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/66.jpg)
Who Is Actually Doing This?
![Page 67: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/67.jpg)
Twitter• Vertically and horizontally partitioned MySQL• Several layers of aggressive caching, all application managed• Schema changes impossible, resulting in the use of bitfields
and piggyback tables• Hardware intensive• Error prone• Hitting MySQL limits• Already eventually consistent
![Page 68: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/68.jpg)
FlockDB
![Page 69: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/69.jpg)
Twitter• Migrating from MySQL to Cassandra as their main
online data store• Hadoop/HBase used for people search feature• FlockDB used to manage the social graph• Hadoop for analytics• “As with all NoSQL systems, strengths in different
situations” - Kevin Weil, Analytics Lead, Twitterhttp://www.slideshare.net/kevinweil/nosql-at-twitter-nosql-eu-2010
![Page 70: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/70.jpg)
Twitter• Increased availability• The ability to support new features• The ability to analyze their massive amount of
data in a reasonable amount of time
http://www.slideshare.net/kevinweil/nosql-at-twitter-nosql-eu-2010
![Page 71: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/71.jpg)
NoSQL Job Trends
![Page 72: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/72.jpg)
NoSQL Job Growth by Project
![Page 73: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/73.jpg)
NoSQL Job Growth by Project (Relative)
![Page 74: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/74.jpg)
NOSQL + BIG DATA SIMPLE SAMPLEGrokking Twitter
![Page 75: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/75.jpg)
Step by Step• Use/Install Hadoop NoSQL Plugin• Import tweets from twitter• Write mapper in Java/Python• Write reducer in Java/Python• Call myself a data scientist
![Page 76: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/76.jpg)
Groking Twittercurl --get 'https://stream.twitter.com/1.1/statuses/sample.json' --header 'Authorization: OAuth oauth_consumer_key="OsITqnRiCTmkQcv4dtPPj3mnq", oauth_nonce="d41d45177ab9b450f7d1cb82b0d37328", oauth_signature="bOpdpvFNxPuqrlUV4nBhiyyGWbA%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1411988258", oauth_token="295079318-AbQu8sOPCaxXebjwDnDhOUjMST8bgs60JajOffMn", oauth_version="1.0"' --verbose | mongoimport –d test –c live
![Page 77: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/77.jpg)
Map Hashtags in Python#!/usr/bin/env python
import syssys.path.append(".")
from pynosql_hadoop import BSONMapper
def mapper(documents): for doc in documents: for hashtag in doc['entities']['hashtags']: yield {'_id': hashtag['text'], 'count': 1}
BSONMapper(mapper)print >> sys.stderr, "Done Mapping."
![Page 78: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/78.jpg)
Reduce Hashtags in Python#!/usr/bin/env python
import syssys.path.append(".")
from pynosql_hadoop import BSONReducer
def reducer(key, values): print >> sys.stderr, "Hashtag %s" % key.encode('utf8') _count = 0 for v in values: _count += v['count'] return {'_id': key.encode('utf8'), 'count': _count}
BSONReducer(reducer)
![Page 79: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/79.jpg)
All Together$ hadoop jar /usr/lib/hadoop-mapreduce/hadoop-streaming.jar -libjars /usr/lib/hadoop/lib/nosql-hadoop.jar,/usr/lib/hadoop/lib/nosql-hadoop-streaming-1.4.0-SNAPSHOT.jar -mapper /tmp/twit_hashtag_map.py -reducer /tmp/twit_hashtag_reduce.py -jobconf nosql.input.uri=nosqldb://127.0.0.1/test.live -inputformat com.nosqldb.hadoop.mapred.NoSQLInputFormat -jobconf nosql.output.uri=nosqldb://127.0.0.1/test.twit_reduction -outputformat com.nosqldb.hadoop.mapred.NoSQLOutputFormat -io nosqldb -input /tmp/in -output /tmp/out -file /tmp/twit_hashtag_map.py -file /tmp/twit_hashtag_reduce.py
![Page 80: Estado del arte de las tecnologías NoSQL_Sergio Rodríguez](https://reader033.vdocuments.us/reader033/viewer/2022061213/547cb3a4b4af9f4b6e8b456c/html5/thumbnails/80.jpg)
Popular Hashtagsdb.twit_hashtags.find().sort( {'count' : -1 }){ "_id" : "gameinsight", "count" : 1367 }{ "_id" : "رتويت", "count" : 1135 }{ "_id" : "넌감동이야 ", "count" : 796 }{ "_id" : "비투비 ", "count" : 778 }{ "_id" : " _ _ عنك_ غريبة معلومة { count" : 768" ,"ضع{ "_id" : "ريتويت", "count" : 757 }{ "_id" : " _ _ _ الواتساب_ قروبات في وظيفتك { count" : 748" ,"ماهي{ "_id" : "androidgames", "count" : 706 }{ "_id" : "android", "count" : 683 }{ "_id" : " _ _ الثنيان_ من احسن { count" : 680" ,"الفريدي