Презентацию к лекции 19 Вы можете скачать здесь.
Введение
Сегодня мы рассмотрим технологии хранения для больших данных. Тема разделена на две части. В первой части мы проведем обзор различных технологий хранения, разберемся, что такое NoSQL-базы данных и чем они отличаются от обычных реляционных. Выясним, какие проблемы они решают и чем полезны аналитикам.
Во второй части поговорим о типах NoSQL-баз данных. Они сильно типизированы и делятся на классы, каждый из которых решает свои задачи. Цель первой части — познакомиться с основными понятиями и сделать широкий обзор технологий. Цель второй части — научиться выбирать тот тип NoSQL-баз, который оптимально поможет решать наши задачи.
Зачем нужны новые хранилища данных
Начнем с вопроса: зачем нам вообще нужны новые типы хранилищ? Обычно здесь говорят о росте объемов данных, но давайте посмотрим на требования бизнеса и пользователей.
Влияние пользователей и рынка. Пользователь привык к веб-сервисам, которые предоставляют большие объемы данных разных типов. Это уже давно не только текст, но и медиаконтент, а также информация, представленная самыми разными структурами. Приложения, которые обслуживают пользователей, должны быть масштабируемыми, так как рынок требует большого охвата аудитории. Выходом здесь становятся облачные технологии.
Бизнес также заинтересован в росте потребления контента: чем больше пользователь потребляет, тем это выгоднее. Поэтому сервисы сами придумывают, какого вида и структуры контент нужно предоставлять пользователю.
Роль виртуализации. Технология виртуализации играет ключевую роль. Ресурсы и усилия компаний на управление вычислительными мощностями и хранилищами ограничены, а рост объемов данных опережает рост этих ресурсов. Поэтому компании вынуждены использовать аутсорсинг, размещаться на виртуальных, а не физических серверах, чтобы продолжать отвечать на требования рынка.
Давление корпоративного сектора. Корпоративный сектор также диктует необходимость изменений в средствах хранения и обработки данных. С одной стороны, количество данных, которые компании генерируют и используют, возрастает в полтора-два с половиной раза. С другой стороны, время анализа этих данных должно сокращаться. Современный рынок требует онлайн-решений и работы в реальном времени. Это приводит к разрыву между возможностями старых инструментов и новыми требованиями, что вынуждает переходить на качественно новые технологии.
Место хранения в стеке технологий Big Data
В стандартном представлении о SMACK-стеке (комплекс технологий для работы с данными, включающий Storage, Mesos, Akka, Cassandra, Kafka) выделяют несколько слоев:
- Storage — технологии хранения данных.
- MapReduce — технология распределённых вычислений (подробно разберем ее позже).
- Query (SQL) — слой формирования запросов и получения результатов аналитики.
Однако я бы расширил это представление. В Big Data входит еще и понимание о самих данных: где они находятся, какой структурой обладают, с какой скоростью появляются, как быстро меняются их свойства во времени. Только после анализа этих аспектов формируются требования к технологиям хранения. То есть хранилище — это второй слой понимания темы после понимания самих данных.
Краткие итоги
Развитие веб-сервисов и облачных технологий сформировало среду, в которой традиционные подходы к управлению данными перестали быть достаточными. Материал показывает, что запрос на изменения исходит не столько от самого факта роста объемов информации, сколько от изменившихся ожиданий пользователей и бизнес-моделей. Пользователи требуют мгновенного доступа к разнородному контенту, а компании — возможности анализа в реальном времени для поддержки оперативных решений. Это создает фундаментальное противоречие: объемы данных растут быстрее, чем ресурсы на их обслуживание, а допустимое время реакции системы сокращается.
Практическое значение этих изменений для аналитиков и инженеров заключается в необходимости переосмысления архитектуры хранения. Реляционные базы данных, спроектированные для обеспечения строгой согласованности, сталкиваются с физическими пределами при попытке масштабирования для обслуживания высоконагруженных сервисов. Понимание этой проблемы подводит к выводу, что выбор технологии хранения нельзя делать изолированно от анализа природы самих данных: их структуры, скорости появления и сценариев использования. Такой подход требует от специалиста более широкого взгляда на экосистему данных, где важны не только инструменты обработки, но и предварительный семантический анализ.
В результате формируется логика выбора инструментов: сначала определяется сущность данных, затем под них подбирается класс хранилища, и только после этого задействуются механизмы распределённых вычислений, такие как MapReduce. Это смещает фокус профессиональной деятельности с администрирования готовых СУБД на проектирование гибких архитектур, способных адаптироваться к динамичным требованиям рынка. Именно способность комбинировать различные технологии под конкретные аналитические задачи становится ключевой компетенцией в области больших данных.
Введение
Тема: технологии хранения для больших данных. Часть 1 — обзор NoSQL-баз и их отличий от обычных. Часть 2 — изучение типов NoSQL-баз и принципов их выбора для разных задач.
Зачем нужны новые хранилища данных
Переход к новым технологиям вызван не только ростом объемов данных.
- Пользователи: Привыкли к веб-сервисам с разнородным контентом (текст, медиа, разные структуры). Приложения должны быть масштабируемыми для охвата аудитории, что ведет к использованию облачных технологий.
- Бизнес: Заинтересован в росте потребления контента. Сервисы сами создают новые виды и структуры данных для пользователя.
- Виртуализация: Ресурсы компаний ограничены, а объемы данных растут быстрее. Виртуализация и аутсорсинг позволяют масштабироваться без пропорционального роста затрат на «железо».
- Корпоративный сектор: Объем данных растет в 1.5–2.5 раза, но время анализа должно сокращаться. Требуются онлайн-решения в реальном времени, что создает разрыв, который старые технологии не могут преодолеть.
Место хранения в Big Data
Стандартный SMACK-стек включает:
- Storage: Хранение данных.
- MapReduce: Распределенные вычисления.
- Query (SQL): Формирование запросов и получение аналитики.
Важное расширение: Перед выбором хранилища необходимо понимание самих данных:
- Где они находятся?
- Какая у них структура?
- С какой скоростью появляются?
- Как быстро меняется их структура?
Только после анализа этих свойств формируются требования к технологиям хранения. Хранилище — это второй слой после понимания данных.
1. Переход к новым хранилищам обусловлен требованиями рынка и пользователей, а не только ростом объемов данных.
2. Пользователи ожидают от сервисов работы с разнородным контентом (текст, медиа, разные структуры) в реальном времени.
3. Бизнес стимулирует рост потребления контента, что увеличивает нагрузку на системы хранения.
4. Масштабирование приложений и облачные технологии являются естественным ответом на требования рынка.
5. Виртуализация позволяет компаниям масштабироваться без пропорционального роста затрат на физическую инфраструктуру.
6. Корпоративные аналитики сталкиваются с противоречием: данные растут, а время на анализ должно сокращаться.
7. Современный рынок требует перехода к онлайн-аналитике и решениям в реальном времени.
8. В стеке технологий Big Data выделяют слои: хранение (Storage), распределённые вычисления (MapReduce) и запросы (Query).
9. Анализ самих данных (структура, скорость появления, изменчивость) должен предшествовать выбору технологии хранения.
10. Хранилище — это вторичный слой, который определяется свойствами и пониманием данных.
11. NoSQL-базы данных призваны решать задачи, с которыми не справляются традиционные РСУБД в контексте больших данных.
12. Правильный выбор типа NoSQL-хранилища критичен для эффективного решения аналитических задач.
1. Какие факторы, помимо роста объемов данных, стимулируют развитие новых технологий хранения?
2. Как изменение поведения пользователей влияет на требования к системам хранения?
3. Почему облачные технологии и виртуализация стали необходимы для масштабирования сервисов?
4. Какое противоречие возникает в корпоративном секторе при работе с данными?
5. Из каких основных слоев состоит SMACK-стек и за что отвечает каждый из них?
6. Почему понимание самих данных важнее, чем выбор конкретного инструмента хранения?
7. Что включает в себя понятие «понимание данных» перед выбором технологии хранения?
8. Какие ограничения реляционных баз данных вы можете назвать для задач больших данных?
9. В чем суть термина NoSQL и какие проблемы он призван решать?
10. Каково место технологии MapReduce в общей архитектуре работы с большими данными?
11. Чем отличаются классы NoSQL-баз данных друг от друга и почему это важно?
12. Какие задачи, связанные с данными, станут наиболее актуальными в ближайшем будущем после решения проблем хранения?