Este documento presenta una introducción al concepto de Big Data, comenzando con las unidades básicas de almacenamiento como el bit y byte. Explica las tecnologías clave como MapReduce, bases de datos NoSQL, MongoDB y BigQuery. Proporciona ejemplos prácticos de cómo funcionan estas tecnologías almacenando y recuperando datos, y recomienda recursos para probar estas herramientas.
3. Empecemos desde cero … y uno ….
Para alcanzar a comprender lo que es big
data, empecemos por las bases, el bit es la
unidad mínima de almacenamiento
4. bit
1 bit = 0.0000000012 m = 12 atomos
posibles valores 0 1
En 1cm2 se pueden llegar a meter 1.5 Tb
1cm2 = 12,000,000,000,000 bits
5. nibble
1 nibble = 4 bits
16 combinaciones
Se usa para representar un
carácter hexadecimal
6. byte
1 byte = 8 bits
256 combinaciones
Es posible expresar cualquier carácter
alfabético en un byte.
Hagan la prueba guardando un archivo de
texto con una sola letra. Pesará 1 byte.
ASCII, UTF-8
7. WORD
Depende del procesador
En un procesador de 32 bits es de 32 bits …
en uno de 64 … es deeeee …….
¿Y eso para qué sirve?
El procesador solo procesa palabras enteras,
es decir por cada ciclo de reloj desplaza esa
información.
8. Más allá del kilo, mega, giga, tera ...
Claro que hay más allá del Tera, y es
importante que alguien que trabaje con Big
Data no se asuste de escuchar unidades
estratosféricas ...
kilo 1x103
mega 1x106
giga 1x109
tera 1x1012
¿Cuales siguen?
9. ok, si le atinaron
peta 1x1015
exa 1x1018
zetta 1x1021
yotta 1x1024
xona o hella ("hell of a lot [of],") 1x1027
weka 1x1030
vunda 1x1033
uda 1x1036
treda 1x1039
10. y siguen ...
sorta 1x1042
rinta 1x1045
quexa 1x1048
pepta 1x1051
ocha 1x1054
nena 1x1057
minga 1x1060
luma 1x1063
se acabaron los nombres pero ...
13. malas noticias ...
Pero … ¿ Qué creen ?
En todo el universo sólo hay
El número de átomos de todo el universo es
de 1082 por lo que no es necesario que se
aprendan lo del Googol :)
14. y jugando un rato ...
Si 12 átomos pueden almacenar un bit,
entonces todo el universo tiene una
capacidad de …
8.3 x 1018 lumabits ó
8.3 x 10-19 googolbits
Aunque bueno ese dato no nos sirve de nada
:’(
15. Ahora una prueba ...
1 kilobyte es igual a …
a) 1024 bytes
b) 1000 bytes
c) 1234 bytes :)
17. No hay que confundir los ...bytes con los
...bibytes
Los términos ...byte son potencias de 10
Los términos ...bibyte son potencias de 2
Además de que su nombre es distinto.
1 kilobyte = 1 KB = 1 x 103 = 1000 bytes
1 kibibyte = 1 KiB = 1 x 210 = 1024 bytes
...bytes y ...bibytes
19. ...bytes y ...bits
Es muy común confundir un GB con un Gb (ó
Gbit).
Si en su casa tienen conexión de 1Mbps
Quiere decir que fluyen
1,000,000 bits por segundo, es decir
1,000,000 / 8 = 125,000 bytes por segundo
Por lo que la velocidad máxima de descarga
será de:
125 KB/s
20. cifras, cifras y más cifras
Cada 5 minutos se genera 1 exabyte de datos
= 1,000,000,000,000,000,000 bytes
21. ¡ El GRAN acelerador de Hadrones !
Por muchos considerado el mayor invento de
la humanidad, “el que podría ocasionar que
el universo se colapse” ….
Genera ya por todos sus sensores
500 exabytes diarios de información
= 500,000,000,000,000,000,000 bytes
22. ¿Y los gobiernos ? ….
El gobierno de Estados Unidos almacena la
información de todos sus ciudadanos en el
NSA (National Security Agency) de Utah en
un data center con una capacidad de 5
Zettabytes
= 5,000,000,000,000,000,000,000 bytes
23. y.... ¿Qué hacemos con tanta
información?
Minarla ….
Así como los mineros encuentran piedras
preciosas entre taaanta tierra, en el caso de
los datos es lo mismo, intentar encontrar
patrones que ayuden a tomar decisiones es
un arte….
24. Precisamente esta charla es para iniciar a los
simples mortales en el Big Data, y que se
dieran cuenta del poder que tiene.
y…. ¿Qué hay para los simples
mortales?
25. y…. ¿Cómo empezamos?
Bueno primero es importante tener espacio de
almacenamiento. Recuerda que no todas las
computadoras soportan discos duros de más
de 2TB.
El MBR (Master Boot Record) tiene un límite
de 2TB y se necesita usar GPT (GUID
Partition Table) y debe soportar un tipo de
BIOS llamado UEFI (Unified Extensible
Firmware Interface).
26. y… ¿Cuánta información necesito?
No hay un mínimo de tamaño, bases de datos
de Megas, Gigas, Teras, etc pueden ser
evaluadas con herramientas de Big Data.
27. y… ¿Qué se usa?
Las bases de datos tradicionales tienen
algunos límites, por ejemplo:
MySQL soporta hasta 4GB en discos duros
FAT o hasta 2TB en discos duros Windows
NTFS, Linux ext3 y Mac HFS+
Por lo que se usan herramientas especiales.
28. y… ¿Cuáles sí soportan?
Los más grandes del mercado son estos, pero
existen alternativas Open Source como por
ejemplo Hadoop o Cassandra.
29. Bases de datos que usan las
grandes empresas
Facebook: RocksDB
Amazon: Dynamo
Google: BigTable
Foursquare: MongoDB
Twitter: Cassandra
Wikipedia: MariaDB
Ebay: BerkeleyDB
Yahoo: Oracle
Microsoft: SQL Server
31. Bases de datos relacionales
Permiten establecer interconexiones
(relaciones) entre los datos (que
están guardados en tablas), y a
través de dichas conexiones
relacionar los datos de ambas tablas
33. Bases de datos no relacionales
Los datos almacenados no requieren
estructuras fijas como tablas, no
garantizan completamente ACID
(atomicidad, coherencia, aislamiento
y durabilidad), y habitualmente
escalan bien horizontalmente.
35. NewSQL
Nace en el 2011 y trata de conseguir
el mismo rendimiento escalable de
sistemas no relacionales para el
procesamiento de transacciones en
línea y garantiza el ACID de un
sistema de base de datos tradicional
37. NoSQL
No usan SQL como el principal
lenguaje de consultas. Las
principales compañías de Internet se
dieron cuenta que el rendimiento era
más importantes que cuidar la
coherencia.
39. Key Value
Relacionan una llave con un valor, este es el
principio fundamental que logra que
consultas se ejecuten instantáneamente en
bases de datos de muy muy alta escala.
Buscar en bases de datos de quintillones de
registros es instantáneo gracias a esto.
40. Funcionan mediante arreglos
En la programación hay una estructura de
datos muy común que se llaman arreglos,
que consiste en guardar varios valores en
una variable y se mandan llamar por su
posición.
41. Ejemplo de un arreglo
var arreglo = [];
arreglo[0] = “Hola”;
arreglo[1] = “Amiga”;
arreglo[2] = “Sentada”;
arreglo[3] = “Atrás”;
43. Pasa lo mismo con textos
Pero se le suelen llamar mapas (éste es la
base de Big Data).
var mapa = {};
mapa[“que”] = “Adios”;
mapa[“mal”] = “Amigo”;
mapa[“ejem”] = “Dormido”;
mapa[“plo”] = “Adelante”;
44. Mandamos traer un registro
Si queremos traer el valor de la posición
“ejem” entonces sería así:
mapa[“ejem”]
Y nos devolverá:
“Dormido”
45. ¿Qué es lo que hace?
Inmediatamente ubica la posición de memoria
ya sea dependiendo de la posición o trae el
registro directamente de una tabla de Hash
que genera internamente, lo que lo hace
instantaneo y no necesita “buscar”, solo lo
trae.
46. Podemos guardar una tabla
Ahora podemos hacer esto
var tabla = {}
tabla[“user1”] =
{nombre:”Anastasio”,edad:120};
tabla[“user2”] = {nombre:”Basaltar”,edad:135};
tabla[“user3”] =
{nombre:”Malechor”,edad:165};
tabla[“user4”] =
{nombre:”Matusalen”,edad:15};
47. Y mandarla traer
Si queremos traer la información de “user2” lo
llamamos así
tabla[“user2”]
y nos trae sus datos
{nombre:”Basaltar”,edad:135}
48. O pedir algunos datos
O podemos pedir solo algún dato
tabla[“user2”][“nombre”]
Y regresa:
Basaltar
49. Así de sencillo funciona Big Data
De esta manera es como funciona el “Map -
Reduce” que es la base de Big Data.
Cuando profundizen en el tema veran que
hablan mucho de ello, eso que explicamos es
lo que es.
50. BigTable
Como mencionamos, las grandes empresas
como Google necesitan velocidad en sus
búsquedas y no podían perder tiempo
buscando en miles de tablas, por lo que todo
lo pusieron en una sola, con miles y miles de
columnas, de ahí nació BigTable.
Esta tablota no tiene porque estar en una sola
computadora, puede estar distribuida en una
granja de servidores.
51. Uy ¿Todo en una tabla?
Muchos profesores de Bases de datos
tradicionales me bajarían del escenario
porque rompe con los conceptos de
normalización ya que la misma información
se repite muuuchas veces.
Pero recuerden que en BigData no importa
que tanto espacio ocupan las tablas, lo
importante es que sea instantáneo.
53. Hagamos una consulta
Las búsquedas son por llave valor, ejemplo
{user_id:”dsf678sd6f”}
Y nos regresa:
[
{user_id:”dsf678sd6f”,user_name:”Germayoni”,bank_name:”Benemex”,bank_cash:”244”,
group_name:”teacher”,school_name:”UNEM”}
]
54. Ahora por otro registro
Las búsquedas son por llave valor, ejemplo
{group_name:”teacher”}
Y nos regresa 2 registros:
[
{user_id:”dsf5ds6fds”,user_name:”Fracasio”,bank_name:”Banarte”,bank_cash:”1”,group_name:”tea
cher”,school_name:”ITASM”},
{user_id:”dsf678sd6f”,user_name:”Germayoni”,bank_name:”Benemex”,bank_cash:”244”,group_nam
e:”teacher”,school_name:”UNEM”}
]
55. MongoDB
Cuenta con una versión estable desde el
2011. Es una de las principales plataformas
usadas para Big Data debido a la
escalabilidad, el uso de NoSQL y el eficiente
uso de llave-valor. Es gratuita y de código
abierto.
56. Funciona exactamente como el
ejemplo
Hagamos el ejemplo en mongo
db.table.find({user_id:”dsf678sd6f”})
Y nos regresa exactamente lo mismo
[
{user_id:”dsf678sd6f”,user_name:”Germayoni”,bank_name:”Benemex”,bank_cash:”244”,
group_name:”teacher”,school_name:”UNEM”}
]
57. Tutorial de MongoDB
Este tutorial te guiará paso a paso en el
manejo de la herramienta
http://docs.mongodb.org/manual/tutorial/gettin
g-started/
58. Cómo probarlo
Puedes descargar bases de datos públicas
muy muy grandes desde aquí
http://www.valleyprogramming.com/blog/big-
data-datasets-large-examples-boulder-
colorado-hadoop-mongodb
59. Prueba BigQuery de Google
BigQuery es una herramienta relacional de
gran escala que la puedes probar fácilmente
con bases de datos ya cargadas
https://developers.google.com/bigquery/
60. Gracias
Les dejo mis datos
google.com/+CarlosToxtli
facebook.com/carlos.toxtli
La presentación la publicaré en ambas redes.