10. Tipo de información
• Información [no]estructurada
• Interna vs externa
• Encyclopedia Britannica vs Wikipedia
miércoles 16 de marzo de 2011
11. BigData
Cuando las viejas técnicas ya no nos valen
captura - almacenamiento - transformación -
análisis - visualización
miércoles 16 de marzo de 2011
12. Con que “pagamos”
• Conceptos
• cambios en la infraestructura
• noSQL
• MapReduce
• mucho más ...
miércoles 16 de marzo de 2011
13. Infraestructura
• “El servidor” vs VMs de “usar y tirar”
• Backup: super-RAID+super-Backup
vs multiples copias
• Libertad de experimentar con nuevas
herramientas (macroscopes)
• Ancho de banda: HDD, Internet o Seur
miércoles 16 de marzo de 2011
14. Idea de MapReduce
http://blog.jteam.nl/2009/08/04/introduction-to-hadoop/
miércoles 16 de marzo de 2011
15. BD Relacional MapReduce
Tamaño Gigabytes (10^9) Petabytes (10^15)
Acceso Interactivo y Batch Batch
Rectura y escritura Pocas escrituras,
Actualizaciones
múltiple muchas lecturas
Estuctura Estática Dinámica
Integridad Alta Baja
Escalado Nolineal Lineal
Hadoop:The Definitive Guide, O’Reilly, 2010
miércoles 16 de marzo de 2011
41. Google Books
• 129 000 000 libros publicados
• 15 000 000 libros escaneados (1700-2010)
• 5 000 000 analizados con sus metadatos
miércoles 16 de marzo de 2011
48. Tendencias Siglo XX
elastic-mapreduce --create --alive --hive-interactive --hive-versions 0.7
elastic-mapreduce --list mi-flow-id
elastic-mapreduce --ssh mi-flow-id
$ hive
hive> set
hive.base.inputformat=org.apache.hadoop.hive.ql.io.HiveInputFormat;
hive> set mapred.min.split.size=134217728;
http://aws.amazon.com/articles/5249664154115844
miércoles 16 de marzo de 2011
49. CREATE EXTERNAL TABLE english_1grams (
gram string,
year int,
occurrences bigint,
pages bigint,
books bigint
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY 't'
STORED AS SEQUENCEFILE
LOCATION
's3://datasets.elasticmapreduce/ngrams/books/20090715/eng-all/1gram/';
miércoles 16 de marzo de 2011
50. CREATE TABLE normalized (
gram string,
year int,
occurrences bigint
);
INSERT OVERWRITE TABLE normalized
SELECT
lower(gram),
year,
occurrences
FROM
english_1grams
WHERE
year >= 1890 AND
gram REGEXP "^[A-Za-z+'-]+$";
miércoles 16 de marzo de 2011
51. CREATE TABLE by_decade (
gram string,
decade int,
ratio double
);
INSERT OVERWRITE TABLE by_decade
SELECT
a.gram,
b.decade,
sum(a.occurrences) / b.total
FROM
normalized a
JOIN (
SELECT
substr(year, 0, 3) as decade,
sum(occurrences) as total
FROM
normalized
GROUP BY
substr(year, 0, 3)
) b
ON
substr(a.year, 0, 3) = b.decade
GROUP BY
a.gram,
b.decade,
b.total;
miércoles 16 de marzo de 2011
52. SELECT
a.gram as gram,
a.decade as decade,
a.ratio as ratio,
a.ratio / b.ratio as increase
FROM
by_decade a
JOIN
by_decade b
ON
a.gram = b.gram and
a.decade - 1 = b.decade
WHERE
a.ratio > 0.000001 and
a.decade >= 190
DISTRIBUTE BY
decade
SORT BY
decade ASC,
increase DESC;
miércoles 16 de marzo de 2011