Исследование производительности систем обработки больших векторных геоданных (проект) — различия между версиями
(Новая страница, с помощью формы Новый_проект) |
м (→Что это за проект?) |
||
(не показано 12 промежуточных версии этого же участника) | |||
Строка 3: | Строка 3: | ||
|mentor=AntonioRodriges | |mentor=AntonioRodriges | ||
|mentor_login={{URLENCODE:AntonioRodriges|WIKI}} | |mentor_login={{URLENCODE:AntonioRodriges|WIKI}} | ||
− | |semester=Осень | + | |semester=Осень 2018 |
|course=2 | |course=2 | ||
|summer=on | |summer=on | ||
− | |number_of_students= | + | |number_of_students=15 |
|categorize=yes | |categorize=yes | ||
}} | }} | ||
Строка 16: | Строка 16: | ||
[https://carto.com/blog/eighty-data-visualizations-examples-using-location-data-maps/ ссылка 2]. | [https://carto.com/blog/eighty-data-visualizations-examples-using-location-data-maps/ ссылка 2]. | ||
− | Векторные геоданные | + | Векторные геоданные - точка, линия, полигон, мультиполигон и другие виды объетов, которые имеют географическую привязку. |
Эти данные встречаются в картах Google, Yandex, Bing и любых подобных сервисах. | Эти данные встречаются в картах Google, Yandex, Bing и любых подобных сервисах. | ||
При обработке этих данных мы встречаемся с такими основными проблемами: | При обработке этих данных мы встречаемся с такими основными проблемами: | ||
Строка 28: | Строка 28: | ||
* '''Менеждер по страховым рискам''': какие постройки на берегу реки с наибольшей вероятностью пострадают от очередного большого наводнения? | * '''Менеждер по страховым рискам''': какие постройки на берегу реки с наибольшей вероятностью пострадают от очередного большого наводнения? | ||
* '''Специалист по транспорту''': как следует расширить сеть автодорог, чтобы до минимума сократить заторы? | * '''Специалист по транспорту''': как следует расширить сеть автодорог, чтобы до минимума сократить заторы? | ||
− | * и многие другие вопросы: | + | * и многие другие вопросы: 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/|Треки ураганов позволяют страховым компаниям спрогнозировать ущерб]] | ||
Исследование производительности систем обработки больших векторных геоданных заключается в следующем: | Исследование производительности систем обработки больших векторных геоданных заключается в следующем: | ||
Строка 38: | Строка 41: | ||
'''Цель работы''' -- познакомиться с геоданными, изучить системы и особенности работы с ними. Это позволит существенно улучшить Ваше резюме. Например, многие системы основаны на Apache Spark, который является одной из самых популярных и востребованных работодателями систем работы с Большими Данными. | '''Цель работы''' -- познакомиться с геоданными, изучить системы и особенности работы с ними. Это позволит существенно улучшить Ваше резюме. Например, многие системы основаны на Apache Spark, который является одной из самых популярных и востребованных работодателями систем работы с Большими Данными. | ||
− | ''' Свежая статья об исследовании систем обработки больших векторных геоданных''': | + | ''' Свежая статья об исследовании систем обработки больших векторных геоданных''': How Good Are Modern Spatial Analytics Systems? [http://www.vldb.org/pvldb/vol11/p1661-pandey.pdf PDF] |
− | Ментор этого проекта лично выступал на VLDB 2018 | + | Ментор этого проекта лично выступал на VLDB 2018 - одной из самых значимых в мире конференций по Большим Данным, Распределенным Системам, и Базам Данных: ChronosDB: Distributed, File Based, Geospatial Array DBMS [http://www.vldb.org/pvldb/vol11/p1247-zalipynis.pdf PDF]. Это единственный устный доклад от РФ за последние 10 лет. |
− | '''При командной работе задачи | + | '''При командной работе задачи распределяются так''': студент берет себе одну из систем. |
− | Перечень систем (не исчерпывающий): The Era of Big Spatial Data [http://www.vldb.org/pvldb/vol10/p1992-eldawy.pdf PDF] | + | Системы: |
+ | * 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] | ||
=== Чему вы научитесь? === | === Чему вы научитесь? === | ||
Строка 54: | Строка 71: | ||
=== Какие начальные требования? === | === Какие начальные требования? === | ||
* технический английский (для чтения статей) | * технический английский (для чтения статей) | ||
− | * язык программирования | + | * язык программирования - любой, новый осваивается по ходу работы в зависимости от системы либо облачного сервиса |
* желание разбираться с геопространственными данными, системами и алгоритмами их обработки, облачными сервисами | * желание разбираться с геопространственными данными, системами и алгоритмами их обработки, облачными сервисами | ||
=== Какие будут использоваться технологии? === | === Какие будут использоваться технологии? === | ||
Перечень технологий доступен на сайте курса [http://rgeo.wikience.org/index2017.html Разработка геоприложений] | Перечень технологий доступен на сайте курса [http://rgeo.wikience.org/index2017.html Разработка геоприложений] | ||
+ | |||
+ | Перечень систем (не исчерпывающий): The Era of Big Spatial Data [http://www.vldb.org/pvldb/vol10/p1992-eldawy.pdf PDF] | ||
=== Темы вводных занятий === | === Темы вводных занятий === | ||
Строка 68: | Строка 87: | ||
=== Направления развития === | === Направления развития === | ||
− | * исследование производительности новейших систем, напр. | + | * исследование производительности новейших систем, напр. Rheem http://da.qcri.org/rheem/ |
* исследование производительности машинного обучения с использованием геоданных | * исследование производительности машинного обучения с использованием геоданных | ||
* модификация систем для изменения поведения при ответе на запросы | * модификация систем для изменения поведения при ответе на запросы | ||
* комбинация в запросах не только векторных, но и растровых геоданных, данных других баз данных | * комбинация в запросах не только векторных, но и растровых геоданных, данных других баз данных | ||
* использование данных из различных источников (города, треки, ...) для исследования системы | * использование данных из различных источников (города, треки, ...) для исследования системы | ||
− | * публикация статьи по результатам исследований: напр., | + | * публикация статьи в следующем году по результатам исследований: напр., Суперкомпьютерные дни в России http://www.russianscdays.org/, AIST https://aistconf.org |
=== Критерии оценки === | === Критерии оценки === | ||
Строка 91: | Строка 110: | ||
8-10: | 8-10: | ||
* все пункты '''6-7''' | * все пункты '''6-7''' | ||
− | * уметь создавать компьютерный кластер в облаке c помощью API Azure/Amazon | + | * уметь создавать компьютерный кластер в облаке c помощью API Azure/Amazon (если это будет необходимо) |
* проверить работу системы на различных данных, их объемах и конфигурациях оборудования (кластера, если система распределенная) | * проверить работу системы на различных данных, их объемах и конфигурациях оборудования (кластера, если система распределенная) | ||
* подготовить UDF (User Defined Functions) для выполнения системой пользовательских запросов | * подготовить UDF (User Defined Functions) для выполнения системой пользовательских запросов |
Текущая версия на 12:27, 14 октября 2018
Ментор | AntonioRodriges |
Учебный семестр | Осень 2018 |
Учебный курс | 2-й курс |
Проект можно развивать на летней практике | |
Максимальное количество студентов, выбравших проект: 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 лет.
При командной работе задачи распределяются так: студент берет себе одну из систем.
Системы:
- 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 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 (по четной неделе)