Исследование производительности систем обработки больших векторных геоданных — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Новая страница, с помощью формы Новый_командный_проект)
 
Строка 2: Строка 2:
 
|name=Редактирование Исследование производительности систем обработки больших векторных геоданных
 
|name=Редактирование Исследование производительности систем обработки больших векторных геоданных
 
|company=НИУ ВШЭ
 
|company=НИУ ВШЭ
|semester=Осень 2017
+
|semester=Осень 2018
|course=3
+
|course=3-4
 
|number_of_students=15
 
|number_of_students=15
 
|categorize=yes
 
|categorize=yes
Строка 9: Строка 9:
  
 
=== Что это за проект? ===
 
=== Что это за проект? ===
в
+
Геопространственные данные (геоданные) это такие данные, у которых есть географическая привязка.
 +
В современном мире, около 80% всех данных содержат географическую привязку:
 +
[https://www.forbes.com/sites/truebridge/2016/05/06/how-imaging-technologies-are-changing-the-world-part-2/ ссылка 1],
 +
[https://carto.com/blog/eighty-data-visualizations-examples-using-location-data-maps/ ссылка 2].
  
=== Чему научатся студенты? Что самое интересное в проекте? ===
+
Векторные геоданные - точка, линия, полигон, мультиполигон и другие виды объетов, которые имеют географическую привязку.
ы
+
Эти данные встречаются в картах Google, Yandex, Bing и любых подобных сервисах.
 +
При обработке этих данных мы встречаемся с такими основными проблемами:
 +
* большие данные: этих данных очень много (представьте себе только одну Москву с миллионами объектов)
 +
* особый workload: обработка запросов к геоданным не является тривиальной (нужны индексы, специальные алгоритмы и подходы)
 +
* облачные системы: для обработки больших данных нужно использовать компьютерные кластеры и распределенные системы
  
=== Организация работы (Как студенты будут работать в команде?) ===
+
Системы обработки больших векторных геоданных могут отвечать на такие вопросы:
ы
+
* '''Пользователь мобильной связи''': где находится ближайшая автозаправочная станция? Могу ли я по дороге домой купить корм для домашних животных?
 +
* '''Командующий армией''': произошли ли значительные передвижения войск противника по сравнению со вчерашним вечером?
 +
* '''Менеждер по страховым рискам''': какие постройки на берегу реки с наибольшей вероятностью пострадают от очередного большого наводнения?
 +
* '''Специалист по транспорту''': как следует расширить сеть автодорог, чтобы до минимума сократить заторы?
 +
* и многие другие вопросы: Spatial Databases: A Tour http://www.spatial.cs.umn.edu/Book/
  
=== Компоненеты (Из каких частей состоит проект?) ===
+
Например, треки ураганов позволяют страховым компаниям [https://eigenrisk.com/news/real-time-event-response/ спрогнозировать ущерб]:
ы
+
[[Файл:NCEP_CFSR_AND_IBTRACKS_HURRICANE_KATRINA_28August2005.png|центр|600px|link=http://www.wikience.org/|Треки ураганов позволяют страховым компаниям спрогнозировать ущерб]]
  
=== Какие будут использоваться технологии? ===
+
Исследование производительности систем обработки больших векторных геоданных заключается в следующем:
ы
+
* развернуть систему обработки данных в облаке либо на локальной машине
 +
* импортировать данные в систему
 +
* разработать запросы для системы с учетом ее особенностей (это поможет сделать ментор), чтобы выявить сильные и слабые стороны системы (с какими задачами система справляется лучше, а с какими хуже)
 +
* выполнить исследование системы: запустить запросы на системе с разным количеством узлов кластера, разным объемов данных, модифицировать запросы, чтобы улучшить или ухудшить производительность системы, найти данные на которых система работает лучше/хуже и т.п.
 +
 
 +
'''Цель работы''' -- познакомиться с геоданными, изучить системы и особенности работы с ними. Это позволит существенно улучшить Ваше резюме. Например, многие системы основаны на Apache Spark, который является одной из самых популярных и востребованных работодателями систем работы с Большими Данными.
 +
 
 +
''' Свежая статья об исследовании систем обработки больших векторных геоданных''': How Good Are Modern Spatial Analytics Systems? [http://www.vldb.org/pvldb/vol11/p1661-pandey.pdf PDF]
 +
 
 +
Ментор этого проекта лично выступал на VLDB 2018 - одной из самых значимых в мире конференций по Большим Данным, Распределенным Системам, и Базам Данных: ChronosDB: Distributed, File Based, Geospatial Array DBMS [http://www.vldb.org/pvldb/vol11/p1247-zalipynis.pdf PDF]. Это единственный устный доклад от РФ за последние 10 лет.
 +
 
 +
'''При командной работе задачи распределяются так''': студент берет себе одну из систем.
 +
 
 +
Системы:
 +
* GeoMesa https://www.geomesa.org/
 +
* GeoTrellis https://geotrellis.io/
 +
* PostgreSQL/PostGIS https://postgis.net/
 +
* GIS Tools for Hadoop http://esri.github.io/gis-tools-for-hadoop/
 +
* Spatial Hadoop http://spatialhadoop.cs.umn.edu/
 +
* Hadoop-GIS http://bmidb.cs.stonybrook.edu/hadoopgis/index
 +
* GeoSpark https://github.com/DataSystemsLab/GeoSpark
 +
* Magellan https://github.com/harsha2010/magellan
 +
* Asterix-DB https://asterixdb.apache.org/
 +
* MongoDB https://www.mongodb.com/
 +
* Couchbase https://www.couchbase.com/
 +
* ваши предложения (почти любая современная база данных поддерживает векторные геоданные)
 +
 
 +
Перечень остальных подходов и систем (не исчерпывающий): The Era of Big Spatial Data [http://www.vldb.org/pvldb/vol10/p1992-eldawy.pdf PDF]
 +
 
 +
=== Чему вы научитесь? ===
 +
* работе с облачными сервисами Azure либо Amazon
 +
* работе с системами обработки векторных геоданных
 +
* основам новых языков программирования: некоторые (не все) системы используют Python/Scala/... для своего API, их знание не является обязательным для работы над проектом, они легко осваиваются по ходу работы
 +
* принципам работы алгоритмов обработки векторных геоданных
  
 
=== Какие начальные требования? ===
 
=== Какие начальные требования? ===
ы
+
* технический английский (для чтения статей)
 +
* язык программирования - любой, новый осваивается по ходу работы в зависимости от системы либо облачного сервиса
 +
* желание разбираться с геопространственными данными, системами и алгоритмами их обработки, облачными сервисами
 +
 
 +
=== Какие будут использоваться технологии? ===
 +
Перечень технологий доступен на сайте курса [http://rgeo.wikience.org/index2017.html Разработка геоприложений]
 +
 
 +
Перечень систем (не исчерпывающий): The Era of Big Spatial Data [http://www.vldb.org/pvldb/vol10/p1992-eldawy.pdf PDF]
  
 
=== Темы вводных занятий ===
 
=== Темы вводных занятий ===
ы
+
Мы возьмем некоторые темы из курса [http://rgeo.wikience.org/index2017.html Разработка геоприложений]
 +
 
 +
* что такое геопространственные данные, какие они бывают и какие особенности работы с ними
 +
* системы для обработки больших геопространственных данных
 +
* виды запросов и их особенности для обработки векторных геоданных
 +
 
 +
=== Направления развития ===
 +
* исследование производительности новейших систем, напр. Rheem http://da.qcri.org/rheem/
 +
* исследование производительности машинного обучения с использованием геоданных
 +
* модификация систем для изменения поведения при ответе на запросы
 +
* комбинация в запросах не только векторных, но и растровых геоданных, данных других баз данных
 +
* использование данных из различных источников (города, треки, ...) для исследования системы
 +
* публикация статьи в следующем году по результатам исследований: напр., Суперкомпьютерные дни в России http://www.russianscdays.org/, AIST https://aistconf.org
  
 
=== Критерии оценки ===
 
=== Критерии оценки ===
ы
+
4-5:
 +
* подготовить тестовые геоданные
 +
* реализовать импорт геоданных в выбранную систему
 +
* составить 10 одноэтапных (выполняющих какую-то одну пространственную операцию) запросов к системе
 +
* уметь с помощью API системы выполнять к ней запросы
 +
* построить диаграммы, графики и другие необходимые отчетные материлы иллюстрации производительности системы
 +
 
 +
6-7:
 +
* все пункты '''4-5''', кроме запросов
 +
* уметь разворачивать систему на компьютерном кластере в облаке Azure/Amazon (если бесплатная версия системы это позволяет)
 +
* составить 10 (можно больше) сложных запросов к системе (запрос должен проверять сразу несколько аспектов работы системы)
 +
* уметь измерять время выполнения различных этапов работы системы (напр., подготовка данных, shuffling между узлами кластера, ...)
 +
 
 +
8-10:
 +
* все пункты '''6-7'''
 +
* уметь создавать компьютерный кластер в облаке c помощью API Azure/Amazon (если это будет необходимо)
 +
* проверить работу системы на различных данных, их объемах и конфигурациях оборудования (кластера, если система распределенная)
 +
* подготовить UDF (User Defined Functions) для выполнения системой пользовательских запросов
 +
* научиться задавать расположение исходных данных на узлах кластера с помощью API системы
 +
* самостоятельно предлагать запросы, которые позволят выявить слабые и сильные стороны системы (на 10 баллов)
  
=== Похожие проекты ===
+
Дополнительные баллы можно также получить при выполнении пунктов из раздела "Направления развития"
ы
+
  
=== Контактная информация ===
+
=== Ориентировочное расписание занятий ===
ы
+
По договоренности. Ориентировочно ВТ 16.40-18.10 (по четной неделе)

Версия 11:00, 20 октября 2018

Компания НИУ ВШЭ
Учебный семестр Осень 2018
Учебный курс 3-4-й курс
Максимальное количество студентов, выбравших проект: 15



Что это за проект?

Геопространственные данные (геоданные) это такие данные, у которых есть географическая привязка. В современном мире, около 80% всех данных содержат географическую привязку: ссылка 1, ссылка 2.

Векторные геоданные - точка, линия, полигон, мультиполигон и другие виды объетов, которые имеют географическую привязку. Эти данные встречаются в картах Google, Yandex, Bing и любых подобных сервисах. При обработке этих данных мы встречаемся с такими основными проблемами:

  • большие данные: этих данных очень много (представьте себе только одну Москву с миллионами объектов)
  • особый workload: обработка запросов к геоданным не является тривиальной (нужны индексы, специальные алгоритмы и подходы)
  • облачные системы: для обработки больших данных нужно использовать компьютерные кластеры и распределенные системы

Системы обработки больших векторных геоданных могут отвечать на такие вопросы:

  • Пользователь мобильной связи: где находится ближайшая автозаправочная станция? Могу ли я по дороге домой купить корм для домашних животных?
  • Командующий армией: произошли ли значительные передвижения войск противника по сравнению со вчерашним вечером?
  • Менеждер по страховым рискам: какие постройки на берегу реки с наибольшей вероятностью пострадают от очередного большого наводнения?
  • Специалист по транспорту: как следует расширить сеть автодорог, чтобы до минимума сократить заторы?
  • и многие другие вопросы: Spatial Databases: A Tour http://www.spatial.cs.umn.edu/Book/

Например, треки ураганов позволяют страховым компаниям спрогнозировать ущерб:

Треки ураганов позволяют страховым компаниям спрогнозировать ущерб

Исследование производительности систем обработки больших векторных геоданных заключается в следующем:

  • развернуть систему обработки данных в облаке либо на локальной машине
  • импортировать данные в систему
  • разработать запросы для системы с учетом ее особенностей (это поможет сделать ментор), чтобы выявить сильные и слабые стороны системы (с какими задачами система справляется лучше, а с какими хуже)
  • выполнить исследование системы: запустить запросы на системе с разным количеством узлов кластера, разным объемов данных, модифицировать запросы, чтобы улучшить или ухудшить производительность системы, найти данные на которых система работает лучше/хуже и т.п.

Цель работы -- познакомиться с геоданными, изучить системы и особенности работы с ними. Это позволит существенно улучшить Ваше резюме. Например, многие системы основаны на Apache Spark, который является одной из самых популярных и востребованных работодателями систем работы с Большими Данными.

Свежая статья об исследовании систем обработки больших векторных геоданных: How Good Are Modern Spatial Analytics Systems? PDF

Ментор этого проекта лично выступал на VLDB 2018 - одной из самых значимых в мире конференций по Большим Данным, Распределенным Системам, и Базам Данных: ChronosDB: Distributed, File Based, Geospatial Array DBMS PDF. Это единственный устный доклад от РФ за последние 10 лет.

При командной работе задачи распределяются так: студент берет себе одну из систем.

Системы:

Перечень остальных подходов и систем (не исчерпывающий): The Era of Big Spatial Data PDF

Чему вы научитесь?

  • работе с облачными сервисами Azure либо Amazon
  • работе с системами обработки векторных геоданных
  • основам новых языков программирования: некоторые (не все) системы используют Python/Scala/... для своего API, их знание не является обязательным для работы над проектом, они легко осваиваются по ходу работы
  • принципам работы алгоритмов обработки векторных геоданных

Какие начальные требования?

  • технический английский (для чтения статей)
  • язык программирования - любой, новый осваивается по ходу работы в зависимости от системы либо облачного сервиса
  • желание разбираться с геопространственными данными, системами и алгоритмами их обработки, облачными сервисами

Какие будут использоваться технологии?

Перечень технологий доступен на сайте курса Разработка геоприложений

Перечень систем (не исчерпывающий): The Era of Big Spatial Data PDF

Темы вводных занятий

Мы возьмем некоторые темы из курса Разработка геоприложений

  • что такое геопространственные данные, какие они бывают и какие особенности работы с ними
  • системы для обработки больших геопространственных данных
  • виды запросов и их особенности для обработки векторных геоданных

Направления развития

  • исследование производительности новейших систем, напр. Rheem http://da.qcri.org/rheem/
  • исследование производительности машинного обучения с использованием геоданных
  • модификация систем для изменения поведения при ответе на запросы
  • комбинация в запросах не только векторных, но и растровых геоданных, данных других баз данных
  • использование данных из различных источников (города, треки, ...) для исследования системы
  • публикация статьи в следующем году по результатам исследований: напр., Суперкомпьютерные дни в России http://www.russianscdays.org/, AIST https://aistconf.org

Критерии оценки

4-5:

  • подготовить тестовые геоданные
  • реализовать импорт геоданных в выбранную систему
  • составить 10 одноэтапных (выполняющих какую-то одну пространственную операцию) запросов к системе
  • уметь с помощью API системы выполнять к ней запросы
  • построить диаграммы, графики и другие необходимые отчетные материлы иллюстрации производительности системы

6-7:

  • все пункты 4-5, кроме запросов
  • уметь разворачивать систему на компьютерном кластере в облаке Azure/Amazon (если бесплатная версия системы это позволяет)
  • составить 10 (можно больше) сложных запросов к системе (запрос должен проверять сразу несколько аспектов работы системы)
  • уметь измерять время выполнения различных этапов работы системы (напр., подготовка данных, shuffling между узлами кластера, ...)

8-10:

  • все пункты 6-7
  • уметь создавать компьютерный кластер в облаке c помощью API Azure/Amazon (если это будет необходимо)
  • проверить работу системы на различных данных, их объемах и конфигурациях оборудования (кластера, если система распределенная)
  • подготовить UDF (User Defined Functions) для выполнения системой пользовательских запросов
  • научиться задавать расположение исходных данных на узлах кластера с помощью API системы
  • самостоятельно предлагать запросы, которые позволят выявить слабые и сильные стороны системы (на 10 баллов)

Дополнительные баллы можно также получить при выполнении пунктов из раздела "Направления развития"

Ориентировочное расписание занятий

По договоренности. Ориентировочно ВТ 16.40-18.10 (по четной неделе)