bigdataparaprincipiantes 140428183955-phpapp02-1

60
PARA PRINCIPIANTES

Upload: marta-navarro-gonzalez

Post on 14-Apr-2017

191 views

Category:

Health & Medicine


0 download

TRANSCRIPT

Page 1: Bigdataparaprincipiantes 140428183955-phpapp02-1

PARA PRINCIPIANTES

Page 2: Bigdataparaprincipiantes 140428183955-phpapp02-1

Presentación

Carlos Toxtli Hernández14 años de experienciaDesarrollador multiplataforma

Page 3: Bigdataparaprincipiantes 140428183955-phpapp02-1

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

Page 4: Bigdataparaprincipiantes 140428183955-phpapp02-1

bit

1 bit = 0.0000000012 m = 12 atomosposibles valores 0 1En 1cm2 se pueden llegar a meter 1.5 Tb1cm2 = 12,000,000,000,000 bits

Page 5: Bigdataparaprincipiantes 140428183955-phpapp02-1

nibble

1 nibble = 4 bits16 combinacionesSe usa para representar un carácter hexadecimal

Page 6: Bigdataparaprincipiantes 140428183955-phpapp02-1

byte

1 byte = 8 bits256 combinacionesEs 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

Page 7: Bigdataparaprincipiantes 140428183955-phpapp02-1

WORD

Depende del procesadorEn 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.

Page 8: Bigdataparaprincipiantes 140428183955-phpapp02-1

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?

Page 9: Bigdataparaprincipiantes 140428183955-phpapp02-1

ok, si le atinaron

peta 1x1015

exa 1x1018

zetta 1x1021

yotta 1x1024

xona o hella ("hell of a lot [of],") 1x1027

weka 1x1030

vunda1x1033

uda 1x1036

treda 1x1039

Page 10: Bigdataparaprincipiantes 140428183955-phpapp02-1

y siguen ...

sorta 1x1042

rinta 1x1045

quexa1x1048

pepta 1x1051

ocha 1x1054

nena 1x1057

minga1x1060

luma 1x1063

se acabaron los nombres pero ...

Page 11: Bigdataparaprincipiantes 140428183955-phpapp02-1

continúan los numerales

Undecillion 1x1066

Undecilliarde 1x1069

Googol 1x10100

Sexvigintillion 1x10156

Zentillion 1x10600

Googolplex 1x10Googol

Googolplexplex 1x10Googolplex

Googolplexplexplex 1x10Googolplexplex

Googolplexplexplexplex … ¿Cuánto es?

Page 12: Bigdataparaprincipiantes 140428183955-phpapp02-1

Y ahora ...

Googolplexplexplexplexplex … ???

Page 13: Bigdataparaprincipiantes 140428183955-phpapp02-1

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 :)

Page 14: Bigdataparaprincipiantes 140428183955-phpapp02-1

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 :’(

Page 15: Bigdataparaprincipiantes 140428183955-phpapp02-1

Ahora una prueba ...

1 kilobyte es igual a …a) 1024 bytesb) 1000 bytesc) 1234 bytes :)

Page 16: Bigdataparaprincipiantes 140428183955-phpapp02-1

¡ Acertaron !

1 kilobyte = 1000 bytes

Page 17: Bigdataparaprincipiantes 140428183955-phpapp02-1

No hay que confundir los ...bytes con los ...bibytes

Los términos ...byte son potencias de 10Los términos ...bibyte son potencias de 2Además de que su nombre es distinto.

1 kilobyte = 1 KB = 1 x 103 = 1000 bytes1 kibibyte = 1 KiB = 1 x 210 = 1024 bytes

...bytes y ...bibytes

Page 18: Bigdataparaprincipiantes 140428183955-phpapp02-1

tablita

Page 19: Bigdataparaprincipiantes 140428183955-phpapp02-1

...bytes y ...bits

Es muy común confundir un GB con un Gb (ó Gbit).

Si en su casa tienen conexión de 1MbpsQuiere decir que fluyen1,000,000 bits por segundo, es decir1,000,000 / 8 = 125,000 bytes por segundoPor lo que la velocidad máxima de descarga será de:

125 KB/s

Page 20: Bigdataparaprincipiantes 140428183955-phpapp02-1

cifras, cifras y más cifras

Cada 5 minutos se genera 1 exabyte de datos= 1,000,000,000,000,000,000 bytes

Page 21: Bigdataparaprincipiantes 140428183955-phpapp02-1

¡ 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 sensores500 exabytes diarios de información= 500,000,000,000,000,000,000 bytes

Page 22: Bigdataparaprincipiantes 140428183955-phpapp02-1

¿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

Page 23: Bigdataparaprincipiantes 140428183955-phpapp02-1

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….

Page 24: Bigdataparaprincipiantes 140428183955-phpapp02-1

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?

Page 25: Bigdataparaprincipiantes 140428183955-phpapp02-1

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).

Page 26: Bigdataparaprincipiantes 140428183955-phpapp02-1

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.

Page 27: Bigdataparaprincipiantes 140428183955-phpapp02-1

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.

Page 28: Bigdataparaprincipiantes 140428183955-phpapp02-1

y… ¿Cuáles sí soportan?

Los más grandes del mercado son estos, pero existen alternativas Open Source como por ejemplo Hadoop o Cassandra.

Page 29: Bigdataparaprincipiantes 140428183955-phpapp02-1

Bases de datos que usan las grandes empresas

Facebook: RocksDBAmazon: DynamoGoogle: BigTableFoursquare: MongoDBTwitter: CassandraWikipedia: MariaDBEbay: BerkeleyDBYahoo: OracleMicrosoft: SQL Server

Page 30: Bigdataparaprincipiantes 140428183955-phpapp02-1

Tecnologías de Big Data

Page 31: Bigdataparaprincipiantes 140428183955-phpapp02-1

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

Page 32: Bigdataparaprincipiantes 140428183955-phpapp02-1

Tecnologías de Big Data

Page 33: Bigdataparaprincipiantes 140428183955-phpapp02-1

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.

Page 34: Bigdataparaprincipiantes 140428183955-phpapp02-1

Tecnologías de Big Data

Page 35: Bigdataparaprincipiantes 140428183955-phpapp02-1

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

Page 36: Bigdataparaprincipiantes 140428183955-phpapp02-1

Tecnologías de Big Data

Page 37: Bigdataparaprincipiantes 140428183955-phpapp02-1

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.

Page 38: Bigdataparaprincipiantes 140428183955-phpapp02-1

Tecnologías de Big Data

Page 39: Bigdataparaprincipiantes 140428183955-phpapp02-1

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.

Page 40: Bigdataparaprincipiantes 140428183955-phpapp02-1

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.

Page 41: Bigdataparaprincipiantes 140428183955-phpapp02-1

Ejemplo de un arreglo

var arreglo = [];arreglo[0] = “Hola”;arreglo[1] = “Amiga”;arreglo[2] = “Sentada”;arreglo[3] = “Atrás”;

Page 42: Bigdataparaprincipiantes 140428183955-phpapp02-1

Extraigamos información

Si requerimos en valor de la casilla 1 hacemos lo siguiente:

arreglo[1]

Y nos devuelve “Amiga”

Page 43: Bigdataparaprincipiantes 140428183955-phpapp02-1

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”;

Page 44: Bigdataparaprincipiantes 140428183955-phpapp02-1

Mandamos traer un registro

Si queremos traer el valor de la posición “ejem” entonces sería así:

mapa[“ejem”]

Y nos devolverá:

“Dormido”

Page 45: Bigdataparaprincipiantes 140428183955-phpapp02-1

¿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.

Page 46: Bigdataparaprincipiantes 140428183955-phpapp02-1

Podemos guardar una tabla

Ahora podemos hacer estovar 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};

Page 47: Bigdataparaprincipiantes 140428183955-phpapp02-1

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}

Page 48: Bigdataparaprincipiantes 140428183955-phpapp02-1

O pedir algunos datos

O podemos pedir solo algún datotabla[“user2”][“nombre”]

Y regresa:Basaltar

Page 49: Bigdataparaprincipiantes 140428183955-phpapp02-1

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.

Page 50: Bigdataparaprincipiantes 140428183955-phpapp02-1

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.

Page 51: Bigdataparaprincipiantes 140428183955-phpapp02-1

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.

Page 52: Bigdataparaprincipiantes 140428183955-phpapp02-1

Ejemplouser_id user_name bank_name bank_cash group_name school_name

dsf5ds6fds Fracasio Banarte 1 teacher ITASM

sdfsdf7678 Arnolfo Benemex 40 student UNEM

879s7dfsd Juanelo Banarte 20 student UNEM

hjgsdf653a Petronilo Banarte 100 student ITASM

6sdf58sd5f Proculo Scotte 250 staff ITASM

75dsfsdfs7 Agapito Benemex 80 student UNEM

sdfsd76sf5 Panfilo Scotte 133 student ITASM

dsf678sd6f Germayoni Benemex 244 teacher UNEM

usdf8sf6s8f Anivdelarev Scotte 412 staff UNEM

d6s6fs7df6 Delfino Benemex 44 student ITASM

sdf6s78f6s Ruperto Scotte 2 student UNEM

Page 53: Bigdataparaprincipiantes 140428183955-phpapp02-1

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”}]

Page 54: Bigdataparaprincipiantes 140428183955-phpapp02-1

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_na

me:”teacher”,school_name:”UNEM”}]

Page 55: Bigdataparaprincipiantes 140428183955-phpapp02-1

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.

Page 56: Bigdataparaprincipiantes 140428183955-phpapp02-1

Funciona exactamente como el ejemplo

Hagamos el ejemplo en mongodb.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”}]

Page 57: Bigdataparaprincipiantes 140428183955-phpapp02-1

Tutorial de MongoDB

Este tutorial te guiará paso a paso en el manejo de la herramienta

http://docs.mongodb.org/manual/tutorial/getting-started/

Page 59: Bigdataparaprincipiantes 140428183955-phpapp02-1

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/

Page 60: Bigdataparaprincipiantes 140428183955-phpapp02-1

Gracias

Les dejo mis datos

google.com/+CarlosToxtlifacebook.com/carlos.toxtli

La presentación la publicaré en ambas redes.