Сервис хранения аннотированных разноформатных данных “Large Data Inventory” — различия между версиями
Строка 8: | Строка 8: | ||
|categorize=yes | |categorize=yes | ||
}} | }} | ||
+ | ===Что за проект?=== | ||
+ | Биоинформатические алгоритмы анализа данных пациента генерируют огромное количество различных файлов (порядка 50-100 Гб на каждого пациента). Для хранения таких объемов информации используются различные облачные хранилища, такие как Rackspace Cloud Files, Amazon S3 и тд. | ||
+ | Основная проблема - это понять принадлежность того или иного объекта в хранилищах: к какому пациенту относится, к какому dataset, когда и кто данный объект загрузил, какой биоинформатический инструмент сгенерировал файл (название, версия и прочие метаданные), какие данные (мутации, экспрессии и т.п.) и какой формат данных, как долго нужно хранить данный объект и так далее. | ||
+ | Важно отметить, что в хранилище помещаются данные пациентов из госпиталей, которая является PHI-информацией. Это означает, что необходим гибкий и надежный механизм разграничения прав доступа к распределенному хранилищу. | ||
+ | Помимо этого, необходимо обеспечивать консистентность данных, хранимых в системе - не должно быть фантомных объектов, которых на самом деле не существует, не должно оставаться файлов в реальном хранилище после удаления и тд. | ||
+ | Каждый объект, помещаемый в LDI (Large Data Inventory), снабжается минимально необходимым набором атрибутов и мета-данных. Атрибуты могут быть заданы как пользователем, так и встроенными в систему. Атрибуты и значения будут использоваться при выборке и отображении хранимым в системе объектов. Метаданные - некоторый системный набор атрибутов, например, кто загрузил объект, когда, какой размер объекта, mime-тип данных и т.п. | ||
+ | Необходимо разработать прототип компоненты, которая на основе облачного хранилища общего назначения предоставит RESTful API для интеграции в платформу, CLI для доступа пользователя к хранилищу. | ||
+ | ===Начальные требования=== | ||
+ | * Умение работать с англоязычной технической литературой | ||
+ | * Базовое знание Python | ||
+ | * Готовность изучать новые технологии | ||
+ | ===Чему вы научитесь=== | ||
+ | * Обеспечивать гибкий авторизованный доступ к данным в распределенной системе | ||
+ | * Реализовывать свой язык запросов и производить эффективный поиск по нему | ||
+ | * Реализовывать клиентское приложение для работы с системой | ||
+ | * Разворачивать самостоятельно и работать с существующими облачными решениями для хранения больших данных | ||
+ | ===Какие будут использоваться технологии=== | ||
+ | * Python, Golang | ||
+ | * Amazon S3 (Minio) | ||
+ | * MongoDB | ||
+ | * Yacc\Lex | ||
+ | ===Критерии оценивания=== | ||
+ | * 4 - Реализован сервис, предоставляющий RESTApi с возможностью добавления записи о файле и его поиска | ||
+ | * +2 - Реализован domain-specific language запросов | ||
+ | * +3 - Реализован CLI c возможностью загружать реальные данные | ||
+ | * +3 - Реализована авторизация |
Версия 13:14, 16 октября 2018
Ментор | Космачев Алексей |
Учебный семестр | Осень 2018 |
Учебный курс | 3-4-й курс |
Максимальное количество студентов, выбравших проект: 2-3 | |
Что за проект?
Биоинформатические алгоритмы анализа данных пациента генерируют огромное количество различных файлов (порядка 50-100 Гб на каждого пациента). Для хранения таких объемов информации используются различные облачные хранилища, такие как Rackspace Cloud Files, Amazon S3 и тд. Основная проблема - это понять принадлежность того или иного объекта в хранилищах: к какому пациенту относится, к какому dataset, когда и кто данный объект загрузил, какой биоинформатический инструмент сгенерировал файл (название, версия и прочие метаданные), какие данные (мутации, экспрессии и т.п.) и какой формат данных, как долго нужно хранить данный объект и так далее. Важно отметить, что в хранилище помещаются данные пациентов из госпиталей, которая является PHI-информацией. Это означает, что необходим гибкий и надежный механизм разграничения прав доступа к распределенному хранилищу. Помимо этого, необходимо обеспечивать консистентность данных, хранимых в системе - не должно быть фантомных объектов, которых на самом деле не существует, не должно оставаться файлов в реальном хранилище после удаления и тд. Каждый объект, помещаемый в LDI (Large Data Inventory), снабжается минимально необходимым набором атрибутов и мета-данных. Атрибуты могут быть заданы как пользователем, так и встроенными в систему. Атрибуты и значения будут использоваться при выборке и отображении хранимым в системе объектов. Метаданные - некоторый системный набор атрибутов, например, кто загрузил объект, когда, какой размер объекта, mime-тип данных и т.п. Необходимо разработать прототип компоненты, которая на основе облачного хранилища общего назначения предоставит RESTful API для интеграции в платформу, CLI для доступа пользователя к хранилищу.
Начальные требования
- Умение работать с англоязычной технической литературой
- Базовое знание Python
- Готовность изучать новые технологии
Чему вы научитесь
- Обеспечивать гибкий авторизованный доступ к данным в распределенной системе
- Реализовывать свой язык запросов и производить эффективный поиск по нему
- Реализовывать клиентское приложение для работы с системой
- Разворачивать самостоятельно и работать с существующими облачными решениями для хранения больших данных
Какие будут использоваться технологии
- Python, Golang
- Amazon S3 (Minio)
- MongoDB
- Yacc\Lex
Критерии оценивания
- 4 - Реализован сервис, предоставляющий RESTApi с возможностью добавления записи о файле и его поиска
- +2 - Реализован domain-specific language запросов
- +3 - Реализован CLI c возможностью загружать реальные данные
- +3 - Реализована авторизация