Мы находимся в разгаре революции Больших данных. Потрясающая стоимость аппаратного и программного обеспечения для хранения данных, ускоренная за счет облачных вычислений, позволила осуществлять сбор и хранение огромных объемов данных.
Анализ и изучение этих наборов данных позволяет проводить анализ на основе имеющихся данных, который может дополнить или даже заменить специальные бизнес-решения.
- Например, веб-компании отслеживают поведение пользователей для оптимизации своего бизнеса. Крупные научные эксперименты и моделирование собирают огромное количество данных, и ученые анализируют их для формирования или подтверждения гипотез.
- Коммерческие продукты СУБД не справляются с масштабом и неоднородностью собранных наборов данных, а их программирование и модель данных не очень хорошо вписываются в новые аналитические рабочие процессы.
Эти причины привели к пересмотру методов управления данными в масштабах, что привело к появлению новых артефактов программного обеспечения, разработанных научными и промышленными кругами.
Программная экосистема "Большие данные" включает в себя распределенные файловые системы.
Мы представляем Stratosphere, набор аналитических данных, который позволяет извлекать, анализировать и интегрировать наборы гетерогенных данных - от строго структурированных реляционных данных до неструктурированных текстовых данных и полуструктурированных данных.
Стратосферная система может выполнять извлечение и интеграцию информации, традиционный анализ хранилищ данных, обучение моделированию и анализ графиков с помощью одного процессора запросов, компилятора и оптимизатора.
Стратосфера объединяет уникальный набор функций, которые, по нашему мнению, являются необходимым сочетанием для поддержки различных анатомических приложений на больших данных.
- Во-первых, мы считаем, что аналитики данных более продуктивны при использовании декларативных языков высокого уровня, а не языков низкого уровня.
- Стратосфера включает в себя такой язык запросов. Кроме того, система может служить подходящей формой компиляционной платформы для нескольких других языков для различных доменов.
- Предлагая расширяемый промежуточный слой, и выставляя несколько слоев системного стека в качестве моделей программирования с базовым оптимизатором, языки запросов могут компилироваться в Стратосферу с меньшими усилиями (например, часто без применения собственного оптимизатора для конкретного языка), и эта компиляция может привести к лучшей производительности.
Мы представили Стратосферу – как глубокий программный стек для анализа больших данных.
В стратосфере используется высокоуровневый скриптовый язык "Метеор", который ориентирован на обеспечение экстенсивности. Используя Meteor и лежащую в его основе операторскую модель Sopremo, эксперты в области могут расширить функциональность системы за счет новых операторов в дополнение к уже предоставленным пакетам операторов для хранения данных, извлечения информации и интеграции информационных систем.
- В стратосфере реализована промежуточная модель UDF-ориентированного программирования, основанная на функциях второго порядка и абстракциях более высокого порядка для итеративных запросов.
- Эти программы оптимизированы с использованием оптимизатора на основе затрат, вдохновленного реляционными базами данных и адаптированного к программированию и модели данных без использования схемы и UDF-тяжелой.
- Наконец, механизм распределенного исполнения Nephele, Stratosphere, обеспечивает масштабируемое выполнение, планирование, передачу сетевых данных и отказоустойчивость. Стратосфера находится в зоне наилучшего равновесия между MapReduce и реляционными базами данных.
Она предлагает декларативную спецификацию программы; охватывает широкий спектр задач анализа данных, включая итеративные или рекурсивные задачи; работает непосредственно на распределенных файловых системах без загрузки данных по запросу; и предлагает масштабируемое выполнение на больших кластерах и в облаке.
Уроки, извлеченные в процессе строительства стратосферы, открыли несколько направлений для исследований.
- Во-вторых, мы видим большой потенциал в разработке, компиляции и оптимизации декларативных языков высокого уровня для различных аналитических областей, в частности для машинного обучения.
- Наконец, мы видим, что наш следующий основной поток исследований касается случаев использования, выходящих за рамки пакетной обработки данных и требующих быстрого приема и анализа данных с низкой задержкой.
- Такие системы, для того чтобы обеспечить богатую функциональность, должны эффективно управлять переменным состоянием, проявляющимся в виде определяемых пользователем операторов, работающих с потоками данных или в контексте инкрементальных итеративных алгоритмов.
Такое состояние должно быть закреплено в декларативном языке посредством соответствующих абстракций и эффективно управляться системой. Кроме того, рабочие нагрузки (долгосрочных) программ должны быть оптимизированы вместе.