25
технологии хранения и обработки больших объёмов данных Вводная лекция Дмитрий Барашев 12 февраля 2016 г. Computer Science Center

Технологии хранения и обработки больших объёмов данных, весна 2016: Введение в курс и предмет

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

сегодня в программе

Организационная информация

О чем курс

Начнём с сортировки

3/24

отчетность

• Домашние работы + письменный экзамен• Каждое ДЗ и каждый вопрос на экзаменеимеют стоимость

• Итоговая оценка в интервале [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

настойчивые пожелания к решениям дз

print "Код должен быть компилирующимся иработоспособным↪→

7/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

сегодня в программе

Организационная информация

О чем курс

Начнём с сортировки

14/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

сегодня в программе

Организационная информация

О чем курс

Начнём с сортировки

21/24

задача

Отсортировать данные, не помеща-ющиеся в оперативную память

22/24

multiway merge sort

• Разбиваем входной массив на куски, меньшие илиравные объёму памяти

• Каждый кусок читаем в память, сортируем,результат записываем на диск

• Получаем некоторое количествоотсортированных подмассивов

23/24

multiway merge sort ii

• Организуем в памяти место для итераторов повсем отсортированным подмассивам

• Выбираем итератор с наименьшим элементом,записываем элемент в результат, протягиваемвыбранный итератор дальше.

• Получаем отсортированный массив

24/24