Upload
cs-center
View
377
Download
7
Embed Size (px)
Citation preview
технологии хранения и обработкибольших объёмов данныхВводная лекция
Дмитрий Барашев12 февраля 2016 г.
Computer Science Center
Этот материал распространяется под лицензией
Creative Commons”Attribution - Share Alike” 3.0
http://creativecommons.org/licenses/by-sa/3.0/us/deed.ru
сверстано в онлайн LATEX редакторе
P
a
peeriapapeeria.com
отчетность
• Домашние работы + письменный экзамен• Каждое ДЗ и каждый вопрос на экзаменеимеют стоимость
• Итоговая оценка в интервале [2 . . . 5]ставится в зависимости от процентанабранных баллов
• Ориентировочные интервалы:
2 = [0 . . . 25%]
3 = (25 . . . 50%]
4 = (50 . . . 75%]
5 = (75 . . . 10%] 4/24
домашние задания
• Появляются после лекции или наследующий день
• Пишем код на Python, реже на Java• Сдача задания производится командойgit push
• Сдал после дедлайна – получил не более50% стоимости
• Задания выполняются индивидуально.
5/24
ориентировочные критерии оценок дз
1 балл хоть что-нибудь осмысленное,возможно даже и не работающее2 балла в принципе работает, но точноможно было бы сделатьэффективнее/лучше/понятнее3 балла в целом ок, есть замечания4-5 баллов хорошая работа, возможно, смелкими замечаниями
6/24
настойчивые пожелания к решениям дз
python task.py --lolСоблюдайте форматы:--input входных данных--output выходных данных--h и аргументов запуска
8/24
настойчивые пожелания к решениям дз
# Ниже написаны требования к комментариямprint "Чем больше в коде хороших комментариев, тем
лучше"↪→
9/24
настойчивые пожелания к решениям дз
l = "должны"m = "имена"this_is_a_part_of_the_output_string = "и не очень
длинными"↪→
print m + l + " быть понятными " +this_is_a_part_of_the_output_string↪→
10/24
мы не упражняемся в изысканных манерах
a = [1, 2, 3]b = [4, 5]
print map(lambda x, y: x * (y if y is notNone else x), *sorted([a, b],key=lambda x: len(x), reverse=True))
↪→
↪→
11/24
будьте проще
res = []# выясняем какой список длиннееlonger = a if len(a) > len(b) else bshorter = b if longer == a else a
# Считаем элементы результатаfor i in xrange(0, len(longer)):if i >= len(shorter):
res += [longer[i]**2]else:
res += [longer[i] * shorter[i]]print res
12/24
экзамен
• Экзамен письменный• Состоит из нескольких вопросов/задач• На задачу нужно дать ответ собъяснением
• Задания выполняются индивидуально.• Подробности и best practices ближе кконцу курса
13/24
почему не просто «big data»
• то ли «много данных»• то ли алгоритмы машинного обучения иинтеллектуального анализа данных
• то ли феномен изменения технологий сростом объёма данных
• то ли просто hype
15/24
наши задачи
• кластеризовать каталог из 10 млн товарныхпозиций
• хранить пользовательские данные с потокомобновлений гигабайт в секунду
• отдел маркетинга просит найти в терабайте логоввеб-сервера пользователей из Индии, сфамилией Кумар, бывших на сайте не более 5 раз,из них большую часть в марте, посещавшихстраницы, в адресе которых есть заданныйпромокод
Тыж программист
16/24
наши задачи
• кластеризовать каталог из 10 млн товарныхпозиций
• хранить пользовательские данные с потокомобновлений гигабайт в секунду
• отдел маркетинга просит найти в терабайте логоввеб-сервера пользователей из Индии, сфамилией Кумар, бывших на сайте не более 5 раз,из них большую часть в марте, посещавшихстраницы, в адресе которых есть заданныйпромокод
Тыж программист16/24
что будет и чего не будет
• Будем рассматривать разные вариантыхранения и обработки данных
• Будем довольно поверхностно изучатьтеорию используемых алгоритмов
• Не будем изучать Python и Java• Не будем углубляться в теориюмашинного обучения иинформационного поиска
17/24
«большие данные» это сколько?
• 10 гигабайт – это ничто• Терабайт – это скорее всегонемного• Петабайт – есть о чём поговорить• Эксабайт – вы биоинформатик илиастроном?
18/24
когда достаточно реляционной субд
• Данные хорошо структурированы,медленно растут
• Запросы высокоселективны, допускаютиспользование индексов
• В секунду входит/выходит не более XXмегабайт
• Количество пользователей предсказуемо
19/24
big data это когда вы
• обрабатываете петабайты данных• без (четкой табличной) структуры• постоянно и в больших объёмах растущие• с низкоселективными запросами• в которых лишь десятая часть имеет ценность• и та содержит ошибки• и вы не знаете как эта ценная часть выглядит• и трафик малопредсказуем
20/24
multiway merge sort
• Разбиваем входной массив на куски, меньшие илиравные объёму памяти
• Каждый кусок читаем в память, сортируем,результат записываем на диск
• Получаем некоторое количествоотсортированных подмассивов
23/24