Как Google BigQuery и Elastic MapReduce помогают Академии Хана реформировать образование
Академия Хана — самое необычное учебное заведение, какое только можно себе вообразить. Его основатель — Салман Хан, начинал с того, что публиковал на YouTube обучающие видео по математике. Каждый урок в доходчивой форме рассказывал и в деталях показывал, как работает тот или иной математический принцип. Вскоре ролики обрели популярность, и к Хану присоединились другие преподаватели-энтузиасты. Благодаря пожертвованиям (в том числе — со стороны Google, а также фонда Билла и Мелинды Гейтс) канал на YouTube вырос в целую академию, преподающую самые разные дисциплины. В Академии Хана используются самые новые методики и технологии — в том числе, и «большие данные».
В дополнение к архиву видео в «Академии» разрабатывают и интерактивные курсы, которые дают ученикам возможность пройти тестирование, а учителям и методистам — получать обратную связь и совершенствовать пособия. Сбор большого количества подробнейших данных играет здесь ключевую роль.
Ежедневно Академия Хана собирает около восьми миллионов показателей, связанных с выполнением упражнений и просмотром видеоуроков, ещё несколько миллионов — из обсуждений в сообществе, регистраций пользователей и других источников. Всё это не считая логов запросов к веб-серверу. Для обработки таких информационных массивов требуются специализированные средства, и работник «Академии» Мэтт Фаус с удовольствием
Наиболее требовательные к ресурсам системы Академии Хана работают на платформе Apache Hive. Hive — реализация хранилища данных, основанная на Apache Hadoop и изначально разработанная фирмой Facebook. К базам данных, основанным на Hive, можно обращаться и как к обычному хранилищу, устроенному по принципу Map/Reduce, и с помощью языка запросов HiveQL, напоминающему SQL. В качестве хостера в Академии Хана выбрали Amazon, а если точнее — сервис Elastic MapReduce.
HiveQL нужен в тех случаях, когда не обойдёшься без сложных запросов, включающих операторы UNION и JOIN, а также вложенные запросы. В результате оказывается возможной, например, такая конструкция: «На основе активности студентов показать, кто из репетиторов в прошлом году был наиболее эффективным». Эти же запросы лежат в основе алгоритмов искусственного интеллекта — они используются для того, чтобы определять состояние знаний учеников и рекомендовать им для изучения дополнительные материалы.
В этом году в «Академии» экспериментировали и с облаком Google: сервисами Google Map/Reduce и Pipeline, работающими на платформе App Engine. Это позволяет легко экспортировать бэкапы в Google Cloud Storage и искать по ним при помощи Google BigQuery. Что до Pipeline, то этот низкоуровневый фреймворк для распределённых вычислений выручает в тех случаях, когда нужно сделать с данными что-то не укладывающееся в семантику Map/Reduce.
Фаус отмечает, что эта связка отличается простотой в настройке и поразительной скоростью. Разработчики в Академии Хана предполагают, что со временем можно будет отказаться и от Hive, и от кластера Amazon в пользу технологий Google. Единственный недостаток BigQuery по сравнению с EMR — отсутствие возможности добавить собственную реализацию функций map или reduce.
Обилие данных и разнообразие технологий заставляет разработчиков самостоятельно добавлять необходимые связующие звенья. В частности, заставило создать собственный формат данных на основе JSON и настроить ежечасно запускаемый сервис на Amazon EC2, который в этом формате скачивает поступающую информацию. Затем активируется задача Hadoop, объединяющая отдельные записи в единый раздел и сохраняющая ежедневный бэкап в хранилище Amazon S3. Оттуда разделы можно монтировать как таблицы Hive специальным запросом, а затем при помощи MongoDB показывать на странице с «приборной панелью» и манипулировать с данными при помощи скриптов на JavaScript. В этом помогает библиотека Sleepy.Mongoose — она предоставляет данные MongoDB в ответ на запросы REST. Эта схема кажется замысловатой, но на деле даёт разработчикам возможность выбирать между компактной выдержкой, полученной через REST, или запуском инстанса Hive, на который можно возложить сложный запрос.
Новейшие технические средства — это одна из тех вещей, которые помогают Академии Хана быть на переднем краю технологий и служить примером того, как уже в ближайшем будущем может измениться образование. На сегодняшний день в библиотека «Академии» насчитывает более чем 4300 видеоуроков, а число проведённых занятий перевалило за 300 миллионов. Упражнения пока что внедрены только в курс математики, но по подсчётам на конец лета 2013 года число выполненных учениками упражнений подобралось к пяти сотням. В общем, не сложно убедиться, на что идут ресурсы кластеров, арендуемых у Amazon и Google. Данные у Академии Хана действительно большие.