Технологии хранения и обработки больших объёмов данных

Санкт-Петербург, весна 2016

Описание

Что будем делать

Курс предназначен программистам, желающим познакомиться с теоретическими и практическими аспектам технологий, связанных с хранением, обработкой, анализом больших объёмов данных и использованием их в приложениях. В основном будут рассматриваться технологии, ставшие массовыми относительно недавно, такие как распределённые файловые системы и NoSQL СУБД, но будут также затронуты возможности, предоставляемые привычными реляционных СУБД.

Входные пожелания

В материалах курса и домашних заданиях используются языки Python и Java, поэтому от слушателей требуется понимание элементарных конструкций этих языков и способность писать несложные программы, а также знание алгоритмов вообще. Знание реляционных СУБД и языка SQL тоже существенно облегчит восприятие некоторых тем курса. Опыт в использовании системы контроля версий, а именно Git и GitHub, существенно облегчит проверку домашних заданий

Как будем оценивать

В процессе курса требуется выполнять домашние задания, а в конце курса будет письменный экзамен-тест. У каждого домашнего задания и каждого экзаменационного задания есть своя максимальная стоимость, и вы получаете за решение какую-то часть этой стоимости. Процентное отношение суммы заработанных вами баллов к сумме максимально возможных определяет какую оценку за курс вы получите:

  • [0..25]% : курс не сдан
  • (25..50]% : удовлетворительно
  • (50..75]% : хорошо
  • (75..100]% : отлично

Суммарные максимальные стоимости домашних работ и экзамена примерно равны, поэтому экстремальные случаи примерно такие (возможны вариации):

  • сдал все домашние задания на максимально возможный результат и на экзамен не пришел -- получил удовлетворительно
  • не делал ни одного домашнего задания, пришел на экзамен и набрал максимально возможный результат -- получил удовлетворительно
  • делал домашние задания на хорошо/отлично, на экзамене решил 3/4 всех задач -- получил отлично.

Опыты предыдущих лет показывают, что получить оценку отлично очень сложно.

Домашние задания

Домашние задания предполагают написание работоспособного читабельного кода на языках Python и/или Java. Условия появляются после лекции, решения должны быть присланы до установленного срока. Решение, присланное после срока, получает 50% от своей истинной оценки.

Видео

Видео лекций предыдущего прочтения курса можно смотреть на страницах лекций или на канале CS центра на YouTube.

Контакты

Вопросы задавайте, пожалуйста, по электронной почте bigdata@barashev.net

Преподаватели

Список лекций

Введение в курс и предмет

Что такое Big Data и почему курс назван по-другому, что будет и чего не будет.

Распределённые файловые системы

Как надежно хранить петабайты.

Часть I: GlusterFS. Часть II: Map-reduce

GlusterFS завершает разговор про распределённые файловые системы. Дальше развлекаемся с технологией Map-Reduce

Информационный поиск

Говорим о том, как искать в больших объёмах текста

Информационный поиск II

Продолжаем разговор про информационный поиск

Pregel, Spark, алгоритмы на графах

Эволюция алгоритмов map-reduce. Подсчет page rank с использованием графовой модели вычислений, продукт Apache Spark и его возможности

Транзакции в распределённых системах

Денис Рысцов расскажет о реализации разного вида транзакций в распределённых системах

Алгоритм RAFT.

Закончим разговор об алгоритмах консенсуса

NoSQL СУБД. Google Bigtable

NoSQL базы данных вообще и Google Bigtable в частности.

Amazon Dynamo и Google Spanner. Всадники армагеддона и атомные часы

Некоторые нерассмотренные еще нами технологии.